[MYSQL/PHP] Stumped.

Soldato
Joined
26 Nov 2003
Posts
4,656
Location
Brentwood
Hey guys having trouble modifying a database, its fine when creating one.

Edit Page.
Code:
</head>
<body>
<div id="container">
<div id="head">
</div>
<h1>Control Panel</h1>
<div id="menu">
<? include 'menu.php' ?>
</div>
<div id="content"><h2>Stallions > Edit</h2>
<p><?
$id=$_GET['id'];

include 'dbinfo.inc.php';

$query="SELECT * FROM stallions WHERE id='$id'";
$result=mysql_query($query);
$num=mysql_numrows($result);
mysql_close();

$i=0;
while ($i < $num) {
$id=mysql_result($result,$i,"id");
$name=mysql_result($result,$i,"name");
$info=mysql_result($result,$i,"info");
$gender=mysql_result($result,$i,"gender");
$breed=mysql_result($result,$i,"breed");
$colour=mysql_result($result,$i,"colour");
$dateofbirth=mysql_result($result,$i,"dateofbirth");
$height=mysql_result($result,$i,"height");
$generation=mysql_result($result,$i,"generation");
$image=mysql_result($result,$i,"image");
++$i;
}
?><form action="stallionupdate.php" method="post">
<input type="hidden" name="ud_id" value="<? echo $id; ?>">
<p><? echo "$name's " ?>
Image<br /><select name="ud_image" value="ud_image">
<?
if ($handle = opendir('files')) {
   while (false !== ($file = readdir($handle))) {
       if ($file != "." && $file != "..") {
           echo "<option>$file</option>";
       }
   }
   closedir($handle);
}
?>
</select></p>
<p>Name:<br /> <input type="text" name="ud_name" value="<? echo $name; ?>"></p>
<p>Info:<br /><input type="text" name="ud_info" value="<? echo $info; ?>"></p>
<p>Gender:<br /><input type="text" name="ud_gender" value="<? echo $gender; ?>"></p>
<p>Height:<br /><input type="text" name="ud_height" value="<? echo $height; ?>"></p>
<p>Breed:<br /><input type="text" name="ud_breed" value="<? echo $breed; ?>"></p>
<p>Colour:<br /><input type="text" name="ud_colour" value="<? echo $colour; ?>"></p>
<p>Date of Birth:<br /><input type="text" name="ud_dateofbirth" value="<? echo $dateofbirth; ?>"></p>


<p>Generation:<br /><textarea rows="10" cols="50" name="ud_generation" value="<? echo $generation; ?>"><? echo $generation; ?></textarea></p>
<p><input type="Submit" value="Update"></p>
</form>

</p>
</div>
</div>

</body>
</html>

Updating page
Code:
<body>
<div id="container">
<div id="head">
</div>
<h1>Control Panel</h1>
<div id="menu">
<? include 'menu.php' ?>
</div>
<div id="content">
<h2>Stallions > Edit > Edited!</h2>
<p>
<?
$ud_image=$_POST['ud_image'];
$ud_name=$_POST['ud_name'];
$ud_gender=$_POST['ud_gender'];
$ud_breed=$_POST['ud_breed'];
$ud_colour=$_POST['ud_colour'];
$ud_dateofbirth=$_POST['ud_dateofbirth'];
$ud_height=$_POST['ud_height'];
$ud_generation=nl2br($_POST['ud_generation']);
$ud_info=nl2br($_POST['ud_info']);


include 'dbinfo.inc.php';

$query="UPDATE stallions SET name = $ud_name image = $ud_image info = $ud_info generation = $ud_generation gender = $ud_gender breed = $ud_breed colour = $ud_colour dateofbirth = $ud_dateofbirth height = $ud_height WHERE id = $ud_id";
mysql_query($query);
echo "Stallions Updated<br />
<a href='stallions.php'>Back</a>";
mysql_close();

?>
</p>
</div>
</div>

</body>
</html>

Any ideas? Just doesn't seem to update the database. Maybe I've over looked something.
 
try checking the return result of your mysql_query(), and if it errored, output mysql_error() to the page so you can see it.

I think its down to your update syntax, never seen an update like that before, they're usually done with comma's seperating the column names :

UPDATE stallions SET name = $ud_name, image = $ud_image, info = $ud_info, generation = $ud_generation, gender = $ud_gender, breed = $ud_breed, colour = $ud_colour, dateofbirth = $ud_dateofbirth, height = $ud_height WHERE id = $ud_id

You should probably consider escaping the values at some point, too, unless you are certain that they will never contain characters that may be interpreted as SQL (spaces, quotes, backticks, etc).
 
Back
Top Bottom