Jump to content

Getting error around my <<<_END portioin of code


Recommended Posts

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]);

}

?>

 

 

Link to comment
https://forums.phpfreaks.com/topic/208099-getting-error-around-my/
Share on other sites

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

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]);

}

?>

 

 

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!

  • 3 years later...

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

 

Archived

This topic is now archived and is closed to further replies.

×
×
  • 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.