Shoutbox

MySQL - Printable Version

-Shoutbox (https://shoutbox.menthix.net)
+-- Forum: MsgHelp Archive (/forumdisplay.php?fid=58)
+--- Forum: Skype & Technology (/forumdisplay.php?fid=9)
+---- Forum: Tech Talk (/forumdisplay.php?fid=17)
+----- Thread: MySQL (/showthread.php?tid=84417)

MySQL by Eddie on 06-20-2008 at 06:44 AM

Hello guys, i need some more web development help, I have been working on a database for my website and can get everything to work except the UPDATE. As this is something that will have to be edited when browsing i want it to be done using a form, here is the code i am currently using..

code:
<?
//connect to mysql
//change user and password to your mySQL name and password
mysql_connect("localhost","username","password");
//select which database you want to edit
mysql_select_db("database");
//If cmd has not been initialized
if(!isset($cmd))
{
//display all the news
$result = mysql_query("select * from news order by id");
//run the while loop that grabs all the news scripts
while($r=mysql_fetch_array($result))
{
//grab the title and the ID of the news
$title=$r["title"];//take out the title
$id=$r["id"];//take out the id
//make the title a link
echo "<a href='edit.php?cmd=edit&id=$id'>$title - Edit</a>";
echo "<br>";
}
}
?>
<?
if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit")
{
if (!isset($_POST["submit"]))
{
$id = $_GET["id"];
$sql = "SELECT * FROM news WHERE id=$id";
$result = mysql_query($sql);
$myrow = mysql_fetch_array($result);
?>
<form action="edit.php" method="post">
<input type=hidden name="id" value="<?php echo $myrow["id"] ?>">
Title <INPUT TYPE="TEXT" NAME="title" VALUE="<?php echo $myrow["title"] ?>" SIZE=30><br>
Message <TEXTAREA NAME="message" ROWS=10 COLS=30><? echo $myrow["message"] ?></TEXTAREA><br>
Who <INPUT TYPE="TEXT" NAME="who" VALUE="<?php echo $myrow["who"] ?>" SIZE=30><br>
<input type="hidden" name="cmd" value="edit">
<input type="submit" name="submit" value="submit">
</form>
<? } ?>
<?
if ($_POST["$submit"])
{
$title = $_POST["title"];
$message = $_POST["message"];
$who = $_POST["who"];
$sql = "UPDATE news SET title='$title',message='$message',who='$who' WHERE id=$id";
$result = mysql_query($sql);
echo "Thank you! Information updated.";
}
}
?>


the "database", "username" and "password" sections have been changed for privacy and security reasons.

Can anybody notice any faults that would stop that from working, or any reasons for it not working??

Also if you have any advice on a better method or tutorial for this issue please provide a link, thanks!
RE: MySQL by andrewdodd13 on 06-20-2008 at 07:40 AM

Make the following changes

mysql_connect("localhost","username","password");
mysql_select_db("database");

becomes

@mysql_connect(...) or die("Unable to connect to database.");
@mysql_select_db(...) or die("Unable to select correct database.");

Edit: where (...) is your parameters above.

Do this for all the queries as well, but you could leave out the @ on them. If you're using it on a local server you may also wish to do . mysql_error()); which prints out a nice error telling you the exact problem.

Of course, this might not be where the problem is. What doesn't work?


RE: MySQL by Eddie on 06-20-2008 at 07:44 AM

I get no MySQL errors after testing the page, but it simply does not edit the data entered through the form.


RE: MySQL by NanaFreak on 06-20-2008 at 08:01 AM

$sql = "UPDATE `news` SET `title`='$title', `message`='$message', `who`='$who' WHERE `id`=$id";

i think it may be an issue with it not understanding it properly... the `` help alot... you should learn to do this with your mysql queries...

EDIT: also i dont see you using a mysql_close(); anywhere... this probably wont be the issue but its good to close you connections


RE: MySQL by andrewdodd13 on 06-20-2008 at 03:29 PM

Further to the above, echo $sql as a debugging step, make sure it's correct.


RE: MySQL by Volv on 06-20-2008 at 03:34 PM

And escape your variables.