michaelsaintclaire Posted July 18, 2010 Share Posted July 18, 2010 Hello All, I have been trying to figure out why the <<<_END portion of the code is failing? I am not sure what exactly is causing the error, but the other parts of the code looks accurate. When I debug each line and I comment out the first <<<_END the errors disappear so it is something that part that I am missing. Can anyone help me please? <?php // sqltest.php require_once 'login.php'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); mysql_select_db($db_database, $db_server) or die("Unable to select database: " . mysql_error()); if (isset($_POST['author'])&& //checks for any inputs that might've been made isset($_POST['title'])&& isset($_POST['category'])&& isset($_POST['year'])&& isset($_POST['isbn'])) { $author = get_post('author'); $title = get_post('title'); $category = get_post('category'); $year = get_post('year'); $isbn = get_post('isbn'); if (isset($_POST['delete'])&& $isbn != "") { $query = "DELETE FROM classics WHERE isbn='$isbn'"; if (!mysql_query($query, $db_server)) echo "DELETE failed: $query<br />" . mysql_error() . "<br /><br />"; } else { $query = "INSERT INTO classics VALUES" . "('$author', '$title', '$category', '$year', '$isbn')";//This part inserts values if (!mysql_query($query, $db_server)) echo "INSERT failed: $query<br />" . mysql_error() . "<br /><br />"; } } echo <<<_END //This area is for inputing the data to the user and then submitting the value. <form action="sqltest.php" method="post"><pre> Author <input type="text" name="author" /> Title <input type="text" name="title" /> Category <input type="text" name="category" /> Year <input type="text" name="year" /> ISBN <input type="text" name="isbn" /> <input type="submit" value="ADD RECORD" /> </pre></form> _END; $query = "SELECT * FROM classics"; $result = mysql_query($query); if (!$result) die("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { $row = mysql_fetch_row($result); echo <<<_END //begins where the second html form starts <pre> Author $row[0] // this area will display the Author and Title and etc from each result Title $row[1] Category $row[2] Year $row[3] ISBN $row[4] </pre> <form action="sqltest.php" method="post"> <input type="hidden" name="delete" value="yes" /> <input type="hidden" name="isbn" value="$row[4]" /> <input type="submit" value="DELETE RECORD" /></form> _END; } mysql_close($db_server); function get_post($var) { return mysql_real_escape_string($_POST[$var]); } ?> Quote Link to comment Share on other sites More sharing options...
wildteen88 Posted July 18, 2010 Share Posted July 18, 2010 I think the problem is with the comments. You cannot have anything directly after <<<_END. Move your comments up a line //This area is for inputing the data to the user and then submitting the value. echo <<<_END ... _END; Also please wrap any code posted within code ( or ) tags Makes reading code easierh Quote Link to comment Share on other sites More sharing options...
michaelsaintclaire Posted July 18, 2010 Author Share Posted July 18, 2010 Thank you WildTeen88. That's what I figured too...I tried that just now and it still didn't work Is my formatting wong? <?php // sqltest.php require_once 'login.php'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if (!$db_server) die("Unable to connect to MySQL: " . mysql_error()); mysql_select_db($db_database, $db_server) or die("Unable to select database: " . mysql_error()); if (isset($_POST['author'])&& //checks for any inputs that might've been made isset($_POST['title'])&& isset($_POST['category'])&& isset($_POST['year'])&& isset($_POST['isbn'])) { $author = get_post('author'); $title = get_post('title'); $category = get_post('category'); $year = get_post('year'); $isbn = get_post('isbn'); if (isset($_POST['delete'])&& $isbn != "") { $query = "DELETE FROM classics WHERE isbn='$isbn'"; if (!mysql_query($query, $db_server)) echo "DELETE failed: $query<br />" . mysql_error() . "<br /><br />"; } else { $query = "INSERT INTO classics VALUES" . "('$author', '$title', '$category', '$year', '$isbn')"; if (!mysql_query($query, $db_server)) echo "INSERT failed: $query<br />" . mysql_error() . "<br /><br />"; } } //This area is for inputing the data to the user and then submitting the value. echo <<<_END <form action="sqltest.php" method="post"><pre> Author <input type="text" name="author" /> Title <input type="text" name="title" /> Category <input type="text" name="category" /> Year <input type="text" name="year" /> ISBN <input type="text" name="isbn" /> <input type="submit" value="ADD RECORD" /> </pre></form> _END; $query = "SELECT * FROM classics"; $result = mysql_query($query); if (!$result) die("Database access failed: " . mysql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { $row = mysql_fetch_row($result); echo <<<_END <pre> Author $row[0] Title $row[1] Category $row[2] Year $row[3] ISBN $row[4] </pre> <form action="sqltest.php" method="post"> <input type="hidden" name="delete" value="yes" /> <input type="hidden" name="isbn" value="$row[4]" /> <input type="submit" value="DELETE RECORD" /></form> _END; } mysql_close($db_server); function get_post($var) { return mysql_real_escape_string($_POST[$var]); } ?> Quote Link to comment Share on other sites More sharing options...
wildteen88 Posted July 18, 2010 Share Posted July 18, 2010 You have a couple of spaces after <<<_END. There must not be any characters after the heredoc delimiter (in your case <<<_END). Also please do not copy and paste your code without wrapping it within code ( or ) tags first. Quote Link to comment Share on other sites More sharing options...
michaelsaintclaire Posted July 18, 2010 Author Share Posted July 18, 2010 Wow thanks WildTeen88!! That worked thank you so much! I didn't even think to check that..if I was getting an error within a config file or .properties file in Unix I would have thought to do that...but I never would have thought that about PHP! I will keep this in mind going forward Cheers MATE! Quote Link to comment Share on other sites More sharing options...
ThibaudClement Posted October 5, 2013 Share Posted October 5, 2013 (edited) Hi,I am new to PHP and I am trying to learn the language thanks to the O'REILLY book "Learning PHP, MySQL, Javascript & CSS" by Robin Nixon.The code shown above by michaelsaintclaire is actually an example of this book and I have the exact same problem as he had, but the proposed answers did not fix the problem.As I am working on my own database, I have a slightly different code: <?php //sqltest.php require_once 'login.php'; $db_server = mysql_connect($db_hostname, $db_username, $db_password); if (!$db_server) die("Impossible de se connecter à MySQL : " . mysql_error()); mysql_select_db($db_database, $db_server) or die("Impossible de selectionner la base de donnees : " . mysql_error()); if (isset($_POST['delete']) && isset($_POST['id'])) { $id = get_post('id'); $query = "DELETE FROM publications WHERE id= '$id'"; if (!mysql_query($query, $db_server)) echo "La suppression a echoue : $query<br />" . mysql_error() . "<br /><br />"; } if (isset($_POST['auteur']) && isset($_POST['titre']) && isset($_POST['categorie']) && isset($_POST['message']) && isset($_POST['id'])) { $auteur = get_post('auteur'); $titre = get_post('titre'); $categorie = get_post('categorie'); $message = get_post('message'); $id = get_post('id'); $query = "INSERT INTO publications VALUES" . "('$auteur', '$titre', '$categorie', '$message', '$id')"; if (!mysql_query($query, $db_server)) echo "L\'insertion a echoue : $query<br />" . mysql_error() . "<br /><br />"; } echo <<<_END <form action="sqltest.php" method="post"> <pre> Auteur <input type="text" name="auteur" /> Titre <input type="text" name="titre" /> Categorie <input type="text" name="categorie" /> Message <input type="text" name="message" /> Id <input type="text" name="id" /> <input type = "submit" value="Ajouter un message" /> </pre></form> _END; $query = "SELECT * FROM publications"; $result = msql_query($query); if (!$result) die ("Acces impossible a la base de donnees : " . msql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { $row = mysql_fetch_row($result); echo <<<_END <pre> Auteur $row[0] Titre $row[1] Categorie $row[2] Message $row[3] ID $row[4] </pre> <form action="sqltest.php" method="post"> <input type="hidden" name="delete" value="yes" /> <input type="hidden" name="id" value="$row[4]" /> <inpute type="submit" value="Supprimer le message" /></form> _END; } msql_close($db_server); function get_post($var) { return mysql_real_escape_string($_POST[$var]); } ?> When I run the program, only the form is displayed.I know that the values entered into the form are actually recorded in the database, since I could see them appear through PHPMyAdmin.However, the content of the database is not displayed on the web page, accordingly to what the program is supposed to do.So, I guess the problem comes from this part of the code: $query = "SELECT * FROM publications"; $result = msql_query($query); if (!$result) die ("Acces impossible a la base de donnees : " . msql_error()); $rows = mysql_num_rows($result); for ($j = 0 ; $j < $rows ; ++$j) { $row = mysql_fetch_row($result); echo <<<_END <pre> Auteur $row[0] Titre $row[1] Categorie $row[2] Message $row[3] ID $row[4] </pre> <form action="sqltest.php" method="post"> <input type="hidden" name="delete" value="yes" /> <input type="hidden" name="id" value="$row[4]" /> <inpute type="submit" value="Supprimer le message" /></form> _END; } Do you have any idea of what I did wrong with this piece of code?Many thanks in advance,Thibaud Edited October 5, 2013 by ThibaudClement Quote Link to comment Share on other sites More sharing options...
kicken Posted October 5, 2013 Share Posted October 5, 2013 You're calling msql_query and msql_error rather than mysql_query and mysql_error. Also, you should post your own topics, not revive an old thread. Quote Link to comment Share on other sites More sharing options...
ThibaudClement Posted October 6, 2013 Share Posted October 6, 2013 Thank you very much kicked, your answer totally solved my problem.Sorry for reviving this old thread, I will definitely create new ones from now on. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.