Page 1 of 1

Help with database book example...

Posted: Wed Aug 31, 2005 1:52 pm
by Buggies
Hello folks new to PHP and this forums. Thanks for any help on this.

I'm reading a book called "PHP and MySQL Web Development", and I'm stuck on an example that doesn't not seem to work... on my machine or on an F2O.org free account. Here is the code:

Code: Select all

<html>
<head>
  <title>Book-O-Rama Search Results</title>
</head>
<body>
<h1>Book-O-Rama Search Results</h1>
<?php
  // create short variable names
  $searchtype=$_POST['searchtype'];
  $searchterm=$_POST['searchterm'];

  $searchterm= trim($searchterm);

  if (!$searchtype || !$searchterm)
  {
     echo 'You have not entered search details.  Please go back and try again.';
     echo '</body></html>';
         exit;
  }
  
  if (!get_magic_quotes_gpc())
  {
    $searchtype = addslashes($searchtype);
    $searchterm = addslashes($searchterm);
  }

  @ $db = new mysqli('localhost', 'bookorama', 'bookorama123', 'books');

  if (mysqli_connect_errno()) 
  {
     echo 'Error: Could not connect to database.  Please try again later.';
     echo '</body></html>';
         exit;
  }

  $query = "select * from books where ".$searchtype." like '%".$searchterm."%'";
  $result = $db->query($query);

  $num_results = $result->num_rows;

  echo '<p>Number of books found: '.$num_results.'</p>';

  for ($i=0; $i <$num_results; $i++)
  {
     $row = $result->fetch_assoc();
     echo '<p><strong>'.($i+1).'. Title: ';
     echo htmlspecialchars(stripslashes($row['title']));
     echo '</strong><br />Author: ';
     echo stripslashes($row['author']);
     echo '<br />ISBN: ';
     echo stripslashes($row['isbn']);
     echo '<br />Price: ';
     echo stripslashes($row['price']);
     echo '</p>';
  }
  
  $result->free();
  $db->close();

?>
</body>
</html>
It prints out the <h1>Book-O-Rama Search Results</h1>, and then it doesn't seems to spit anything else back... not even the closing body or html tags. Can anyone help me on this? This might have something to do with another issue I had here: viewtopic.php?t=37583

Posted: Wed Aug 31, 2005 2:22 pm
by feyd
check your error logs.

Posted: Wed Aug 31, 2005 4:55 pm
by Buggies
PHP Fatal error: Cannot instantiate non-existent class: mysqli
Same problem. I'm stumped now. Doesn't work on my server... or f2o server. This book blows. I don't know what to do now :?:

Posted: Wed Aug 31, 2005 5:17 pm
by feyd
well, the example isn't doing anything the old mysql extension couldn't do, so you could convert it back to mysql. The mysqli and mysql extensions have very similar set up's so you should be able to figure it out pretty quickly. Post back if you need a bit of help..

Posted: Wed Aug 31, 2005 5:41 pm
by nielsene
Wouldn't you need a require_once( "/path/to/file/mysqli.php") style statement somewhere before the new statement?

Posted: Wed Aug 31, 2005 5:47 pm
by feyd
mysqli is a built-in object created by the mysqli extension, so nope. :)

Posted: Wed Aug 31, 2005 5:54 pm
by nielsene
Well then the extension isn't loaded.

Posted: Wed Aug 31, 2005 6:20 pm
by feyd
exactly, which is the same conclusion of his thread in "web servers." :?

Posted: Wed Aug 31, 2005 6:33 pm
by Buggies
Problem solved!
Thanks for the help!