mada Posted January 19, 2007 Share Posted January 19, 2007 Same script as my previous post...Now trying to add a delete function.[code=edit.php]<?php include('mysql.php');//If cmd has not been initializedif(!isset($cmd)) { //display all the peopleextensions $result = mysql_query("select * from peopleextensions order by ID"); //run the while loop that grabs all the peopleextensions scripts while($r=mysql_fetch_array($result)) { //grab the Name and the ID of the peopleextensions $Name=$r["Name"];//take out the Name $ID=$r["ID"];//take out the ID //make the Name a link echo "<a href='edit.php?cmd=edit&ID=$ID'>$Name - Edit</a>"; echo "<br />"; }}?><?if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit"){ if (!isset($_POST["submit"])) { $ID = $_GET["ID"]; $sql = "SELECT * FROM peopleextensions 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"] ?>"> Name:<INPUT TYPE="TEXT" NAME="Name" VALUE="<?php echo $myrow["Name"] ?>" SIZE=30><br /> Area Code:<INPUT TYPE="TEXT" NAME="AreaCode" VALUE="<?php echo $myrow["AreaCode"] ?>" SIZE=30><br /> Number:<INPUT TYPE="TEXT" NAME="Number" VALUE="<?php echo $myrow["Number"] ?>" SIZE=30><br /> Role:<INPUT TYPE="TEXT" NAME="Role" VALUE="<?php echo $myrow["Role"] ?>" SIZE=30><br /> Department:<INPUT TYPE="TEXT" NAME="Department" VALUE="<?php echo $myrow["Department"] ?>" SIZE=30><br /> <input type="hidden" Name="cmd" value="edit"> <input type="submit" Name="submit" value="Save" /><br /> <input type="submit" value="Delete" Name="delete" /> </form><? } ?><? if ($_POST["submit"]) { $id = $_POST["ID"]; $Name = $_POST["Name"]; $AreaCode = $_POST["AreaCode"]; $Number = $_POST["Number"]; $Role = $_POST["Role"]; $Department = $_POST["Department"]; $sql = "UPDATE peopleextensions SET Name='$Name',AreaCode='$AreaCode',Number='$Number',Role='$Role',Department='$Department' WHERE ID=$ID"; //replace peopleextensions with your table Name above $result = mysql_query($sql); } if ($_POST["delete"]) { $id = $_POST["ID"]; mysql_query('DELETE FROM peopleextensions WHERE ID=$ID'); }if($result){echo "Update successful";echo "Thank you! Information updated.";echo "<br>";echo "<a href='index.php'>Home</a>";}// use else to execute the code if $result was falseelse{echo "Update failed, please try again";echo "<br>";echo "<a href='index.php'>Home</a>";} }?>[/code]Returns the error : [quote=error]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\httpd\html\helpdesk\AdamTestArea\phonebook\edit.php on line 31[/quote]I know it's related to [code] $result = mysql_query($sql); } if ($_POST["delete"]) { $id = $_POST["ID"]; mysql_query('DELETE FROM peopleextensions WHERE ID=$ID'); }[/code] but i'm not sure how to fix it as when I try the query in PHPMyAdmin it doesn't cause any problems. (I substitute $ID with a number) Link to comment https://forums.phpfreaks.com/topic/34893-another-question/ Share on other sites More sharing options...
trochia Posted January 19, 2007 Share Posted January 19, 2007 Maybe rename the Subject " Another question regarding ?? ":-) Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164489 Share on other sites More sharing options...
jumpenjuhosaphat Posted January 19, 2007 Share Posted January 19, 2007 Usually when I get this error it's either because one of my table field names is a mysql reserved keyword, or it's because I mis-typed the field name. Did you check that the capitalization is the same in your table as it is in your query? Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164490 Share on other sites More sharing options...
JJohnsenDK Posted January 19, 2007 Share Posted January 19, 2007 well first of all you call your $id variable with uppercase in your query:$result = mysql_query($sql); } if ($_POST["delete"]) { $id = $_POST["ID"]; mysql_query('DELETE FROM peopleextensions WHERE ID=$ID'); }It should be mysql_query('DELETE FROM peopleextensions WHERE ID='$id''); because you call the variable with lowercase. Also put it in '' like i did Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164491 Share on other sites More sharing options...
Jessica Posted January 19, 2007 Share Posted January 19, 2007 JJ: You mean "" - As it is now, it's sending the string $id. And actually you'd have an error there.It should be mysql_query("DELETE FROM peopleextensions WHERE ID='$id'"); Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164494 Share on other sites More sharing options...
mada Posted January 19, 2007 Author Share Posted January 19, 2007 JJ, + Jesisrose, your edits have made the script functional, however oddly enough the error message still appears. ???The script is currently as follows:-[code=edit.php]<?php include('mysql.php');//If cmd has not been initializedif(!isset($cmd)) { //display all the peopleextensions $result = mysql_query("select * from peopleextensions order by ID"); //run the while loop that grabs all the peopleextensions scripts while($r=mysql_fetch_array($result)) { //grab the Name and the ID of the peopleextensions $Name=$r["Name"];//take out the Name $id=$r["ID"];//take out the ID //make the Name a link echo "<a href='edit.php?cmd=edit&ID=$id'>$Name - Edit</a>"; echo "<br />"; }}?><?if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit"){ if (!isset($_POST["submit"])) { $id = $_GET["ID"]; $sql = "SELECT * FROM peopleextensions 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"] ?>"> Name:<INPUT TYPE="TEXT" NAME="Name" VALUE="<?php echo $myrow["Name"] ?>" SIZE=30><br /> Area Code:<INPUT TYPE="TEXT" NAME="AreaCode" VALUE="<?php echo $myrow["AreaCode"] ?>" SIZE=30><br /> Number:<INPUT TYPE="TEXT" NAME="Number" VALUE="<?php echo $myrow["Number"] ?>" SIZE=30><br /> Role:<INPUT TYPE="TEXT" NAME="Role" VALUE="<?php echo $myrow["Role"] ?>" SIZE=30><br /> Department:<INPUT TYPE="TEXT" NAME="Department" VALUE="<?php echo $myrow["Department"] ?>" SIZE=30><br /> <input type="hidden" Name="cmd" value="edit"> <input type="submit" Name="submit" value="Save" /><br /> <input type="submit" value="Delete" Name="delete" /> </form><? } ?><? if ($_POST["submit"]) { $id = $_POST["ID"]; $Name = $_POST["Name"]; $AreaCode = $_POST["AreaCode"]; $Number = $_POST["Number"]; $Role = $_POST["Role"]; $Department = $_POST["Department"]; $sql = "UPDATE peopleextensions SET Name='$Name',AreaCode='$AreaCode',Number='$Number',Role='$Role',Department='$Department' WHERE ID=$id"; //replace peopleextensions with your table Name above $result = mysql_query($sql); } if ($_POST["delete"]) { $id = $_POST["ID"]; mysql_query("DELETE FROM peopleextensions WHERE ID='$id'"); }if($result){echo "Update successful";echo "Thank you! Information updated.";echo "<br>";echo "<a href='index.php'>Home</a>";}// use else to execute the code if $result was falseelse{echo "Update failed, please try again";echo "<br>";echo "<a href='index.php'>Home</a>";} }?>[/code]The error displayed is:-[quote]Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in D:\httpd\html\helpdesk\AdamTestArea\phonebook\edit.php on line 31[/quote]Lines 22-32 read:-[code]<?if($_GET["cmd"]=="edit" || $_POST["cmd"]=="edit"){ if (!isset($_POST["submit"])) { $id = $_GET["ID"]; $sql = "SELECT * FROM peopleextensions WHERE ID=$id"; $result = mysql_query($sql); $myrow = mysql_fetch_array($result); ?>[/code][quote author=trochia link=topic=123151.msg508633#msg508633 date=1169221886]Maybe rename the Subject " Another question regarding ?? ":-)[/quote]If the system would allow me to edit the original topic title I would. Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164510 Share on other sites More sharing options...
dgiberson Posted January 19, 2007 Share Posted January 19, 2007 Most likely there is an issue with the query, echo $sql and try to run it in Query Browser/php MyAdmin whatever you use and see if it returns a recordset or not. Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164517 Share on other sites More sharing options...
mada Posted January 19, 2007 Author Share Posted January 19, 2007 [quote author=dgiberson link=topic=123151.msg508661#msg508661 date=1169224244]Most likely there is an issue with the query, echo $sql and try to run it in Query Browser/php MyAdmin whatever you use and see if it returns a recordset or not.[/quote]It turned out I forgot the ' ' either side of the variable in the sql query.Thanks for all of your help! Link to comment https://forums.phpfreaks.com/topic/34893-another-question/#findComment-164527 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.