I'm creating my first web application in PHP/MySQL, however, when I go to view the database contents, the data has been stored in the wrong columns. I've gone through my insertion code with a fine toothcomb and can see no errors which might cause this. I will post the code below, and you will see that I have some diagnostics built in, which show that the information (at least at that point) appears to be about to be stored in the correct columns.

I have 'checked', 'repaired' and 'flushed' the database using PHPMyAdmin and tried again. I have also restarted my PC several times too (although so far, it has always been very stable).

These are a list of some of the columns in my table called 'products' and along side them is the name of the columns data that is wrongly stored there:


NameModel - correct
Manufacturer - correct
Tagline - CONTAINS Ed_Main
Ed_Summary - CONTAINS Tagline
Ed_main - CONTAINS Ed_Summary

The rest of the columns are store correctly.

This is the diagnostic text that was output on the screen because of the diagnostic code in insert.php

Values
submit = Submit Query
namemodel = 1Name/Model
manufacturer = Manufacturer
tagline = Tagline
ed_summary = Ed Summary
ed_main = Main Editorial
features = Features
specs = Specs
options = Options
pic_thumb_100x100 = Thumbnail Picture
pic_1 = Picture 1
pic_2 = Picture 2
costprice = 1
retailprice = 2
supplierid = 3
curr_stock = 4
minstock = 5
maxstock = 6

The text to the left of the '=' sign is the Post HTTP header field name and to the right of the '=' is the contents of the form.

Looking at that, it is all good so far, as I typed in each text field some text to identify which field it should be in. EG. I typed 'Main Editorial' in the field called 'Ed_main' in the form that collects the data to insert.

However, when I check the actual contents of the database the data is stored in the wrong columns still.

Here is the full code of the page holding the form:

<html>
          <head>
               <title>Admin</title>
          </head>
     <body>

          <form action="insert.php" method="post">
               <input type="Submit" name="submit" />

               Name/Model: <input type="text" name="namemodel" /><br />
               Manufacturer: <input type="text" name="manufacturer" /><br />
               Tagline: <input type="text" name="tagline" /><br />
               Ed Summary: <textarea cols="20" rows="10" name="ed_summary"></textarea><br />
               Main Editorial: <textarea cols="60" rows="20" name="ed_main"></textarea><br />
               Features: <textarea cols="20" rows="20" name="features"></textarea><br />
               Specs: <textarea cols="20" rows="10" name="specs"></textarea><br />
               Options: <textarea cols="20" rows="10" name="options"></textarea><br />
               Thumbnail Picture: <input type="text" name="pic_thumb_100x100" /><br />
               Picture 1: <input type="text" name="pic_1" /><br />
               Picture 2: <input type="text" name="pic_2" /><br />
               Cost Price: <input type="text" name="costprice" /><br />
               Retail Price: <input type="text" name="retailprice" /><br />
               Supplier ID: <input type="text" name="supplierid" /><br />
               Current Stock: <input type="text" name="curr_stock" /><br />
               Minimum Stock: <input type="text" name="minstock" /><br />
               Maximum Stock: <input type="text" name="maxstock" /><br />

               <input type="Submit" name="submit" />
          </form>
     </body>
</html>

Here is the code for insert.php

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
     <head>
          <title>Untitled</title>
     </head>

     <body>
          <?php
               $username="removed for forum";
               $password="removed for forum";
               $database="myodbc_store";


               if ($username="removed for forum") {

                    // process form
                    echo "Values <br>";
               while (list($name, $value) = each($HTTP_POST_VARS)) {

                    echo "$name = $value<br>\n";

               }}

               $ProdID='';
               $NameModel=$_POST['namemodel'];
               $Manufacturer=$_POST['manufacturer'];
               $Tagline=$_POST['tagline'];
               $Ed_Summary=$_POST['ed_summary'];
               $Ed_Main=$_POST['ed_main'];
               $Features=$_POST['features'];
               $Specs=$_POST['specs'];
               $Options=$_POST['options'];
               $Pic_Thumb_100x100=$_POST['pic_thumb_100x100'];
               $Pic_1=$_POST['pic_1'];
               $Pic_2=$_POST['pic_2'];
               $CostPrice=$_POST['costprice'];
               $RetailPrice=$_POST['retailprice'];
               $SupplierID=$_POST['supplierid'];
               $Curr_Stock=$_POST['curr_stock'];
               $MinStock=$_POST['minstock'];
               $MaxStock=$_POST['maxstock'];
 
               $conn=odbc_connect($database,$username,$password);

               $query = "INSERT INTO products VALUES ('$ProdID', '$NameModel', '$Manufacturer', '$Tagline', '$Ed_Summary', '$Ed_Main', '$Features', '$Specs', '$Options', '$Pic_Thumb_100x100', '$Pic_1', '$Pic_2', '$CostPrice', '$RetailPrice', '$SupplierID', '$Curr_Stock', '$MinStock', '$MaxStock')";

               $resultset=odbc_exec($conn,$query) or die ("Error inserting data<BR>$query");

/* <!-- where:-
$sql is the variable containing the SQL to be applied
$cnn is the variable containing a valid MySQL resource
$resultset is the return from the function
 --> */
 
               odbc_close($conn);
?>

     </body>
</html>

I would really appreciate your help!

Thanks, pete

This is fixed now. Thanks.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.