Jump to content

small problem with my update form


shenagsandnags

Recommended Posts

been trying to get a code up and working for a update database form, couldnt really get any working i found from google and then after a bit of help from here i got a crazy idea and stopped dead and my tracks and switched gears.  so i thought, why not just use the form i used to insert my database and change it around a little.  same concept, how should this not be possible ?

 

for reference here are my tables and structure

 

Movies

ID(PK)  Title  Category(FK)    URL

0          Name        1                http://www.

 

Categories

ID(PK)    Category

1            Drama

 

note: i know i should change Category from movies to CategoryID for less confusion. to make long story short when i tried i got errors, to much time to go back over everything so i will just stick with what i got for now.

 

 

 

ok so my insert form inserts a movie title,category and url into my movies table. the dropdown for category is populated with a list of categories in my categories table, the way the code is writen it shows the actual category name instead of the id inside the dropdown. the form goes like:

 

Title: textfield1

Category:dropdown

URL:textfield2

 

so what i did was took the code from it,  replaced title textfield1 with the same dropdown for category and just edited the select and echo to pull and show movie titles. i also added a WHERE to it so i can only select titles in a certian category.

 

so it should look like,

 

Title: dropdown

Category:dropdown

 

so here is the code below (ignore leftovers from URL or anything else i plan on taken them out pending the outcome)

 

<html>
      <form id="form1" name="Update" method="post" action="ad3.php">
   
      <label>
   
      Title: <input type="text" name="Title" id="Title" />
   
      </label>
   
      <br />
   
<select name='dropdownt' id='dropdownt'>
<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect to DB: ' . mysql_error() );
}

mysql_select_db ("5", $con);
$query = "SELECT Title FROM movies WHERE Category='1'";
$result = mysql_query($query) OR DIE ("There was an error" .mysql_error());
while($row=mysql_fetch_array($result)) 
    { 
             

echo " <option value=\"{$row['Title']}\">{$row['Title']}</option>";
    } 

php?>

</select>

<select name='dropdown' id='dropdown'>
<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect to DB: ' . mysql_error() );
}

mysql_select_db ("5", $con);
$query = "SELECT ID, Category from categories";
$result = mysql_query($query) OR DIE ("There was an error" .mysql_error());
while($row=mysql_fetch_array($result)) 
    { 
             

echo " <option value=\"{$row['ID']}\">{$row['Category']}</option>";
    } 

php?>

</select>

   
      <input name="" type="submit" value="send" />

      </form>
</html>

 

one thing that i could not figure out (due to my lack of php knownledge) is that after my SELECT i have the

echo " <option value=\"{$row['Title']}\">{$row['Title']}</option>";

  before i had edited this code there was ID where the first 'Title' is. after trying to take one part of that out i got a error so i just left it.

 

 

so what i thought i would do for the process page (ad3.php) i would just turn the INSERT into a UPDATE.

 

<?php
$con = mysql_connect("localhost", "root", "");
if (!$con)
{
die('Could not connect to DB: ' . mysql_error() );
}

mysql_select_db ("5", $con);

$sql="UPDATE movies SET Category = '$_POST[dropdown]', Title = '$_POST[dropdownt]' LIMIT 1";

if (!mysql_query($sql,$con))
{
die ('Error: ' . mysql_error());
}

echo "<a href=\"form2.php\">Record added. Click here to make a new entry</a>";

 

the surprising thing (to me anyways) is that it actually worked!    well.. ALMOST

 

it should work by letting me select a certian title thats in a certian category and change its current category into a different one and then submit. after a few hours i finaly got it to do what i need BUT the problem i am having is that when looking into my phpmyadmin, it just changes the name and category to the first record in my movies table which is id "0". one of the too.  i almost done it on my own.. almost... :(

 

sorry for the extended post but i didnt want to leave anyone confused.  so my question is, did i forget to add anything, take anything out, miss a change i needed to make ? maybe its the echos after my SELECT in my form >

 

Link to comment
Share on other sites

You are not seeing the forest through the trees of all your esoterica.  Of course it only updates one row, because your query syntax is badly flawed.  The only reason you don't update ALL the rows in your table with the same values is that you have added the LIMIT 1.  What you are missing is a WHERE clause.  What your UPDATE state should be is:

 

$sql="UPDATE movies SET Category = '$_POST[dropdown]' WHERE id = $_POST[dropdownt]";

 

Now the only way this is going to work is for you to actually understand and fix that dropdown, which needs to have both the movie id (for the dropdown value) AND the title.  Why didn't that work you asked?  Because your query didn't include the id in the select list.

 

You had

$query = "SELECT Title FROM movies WHERE Category='1'";

 

That query should be:

 

$query = "SELECT id, Title FROM movies WHERE Category='1'";

 

And below you go back to building an actually useful dropdown, where you display the title but set the value to be the id of the movie row, so the query knows what row to update.

 

echo " {$row['Title']}";

 

 

 

 

 

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.