wake-up-neo.com

Suchformular erstellen in PHP eine Datenbank durchsuchen?

Ich versuche gerade, ein Projekt abzuschließen, bei dem die Spezifikationen ein Suchformular zum Durchsuchen einer Verpackungsdatenbank verwenden sollen. Die Datenbank verfügt über viele Variablen, die sich aus Größen, Namen, Typen und Fleisch ergeben. Ich muss ein Suchformular erstellen, in dem Benutzer mithilfe verschiedener Suchvorgänge suchen können (z. B. nach einem Deckelfach mit einer Länge von 50 cm). 

Ich habe den ganzen Tag damit verbracht, etwas PHP zu erstellen, der nach Informationen in einer von mir erstellten Testdatenbank suchen kann. Ich hatte eine Vielzahl von Fehlern, die von mysql_fetch_array-Fehlern bis zu booleschen Fehlern reichen. Derzeit ist mein letzter Fehler, dass meine Tabelle nicht existiert. Obwohl ich Daten eingeben kann (HTML- und PHP-Seiten, auf denen ich Daten eingeben kann), weiß ich nicht, was dies verursacht, und ich habe jetzt ein paar Mal neu angefangen. 

Kann mir jemand eine Idee oder Tipps geben, was ich aktuell tun muss? Hier sind nur meine kleinen Tests im Moment, bevor ich zur eigentlichen SQL-Datenbank wechsle. 

Anlegen einer Datenbank:  

 <body>
  <?php
     $con = mysql_connect("localhost", "root", "");
      if (!$con)
     {
      die('Could not connect: ' . mysql_error());
     }
      if (mysql_query("CREATE DATABASE db_test", $con))
     {
  echo "Database created";
     }
      else
    {
  echo "Error creating database: " . mysql_error();
    }


  mysql_select_db("db_test", $con);
  $sql = "CREATE TABLE Liam
   ( 
  Code varchar (30),
  Description varchar (30),
  Category varchar (30),
  CutSize varchar (30),
   )";

 mysql_query($sql, $con);
     mysql_close($con);
 ?> 
   </body>

HTML-Suchformularseite:  

<body>

      <form action="form.php" method="post">
        Search: <input type="text" name="term" /><br />
      <input type="submit" name="submit" value="Submit" />
      </form>

</body>

Der PHP - Code, den ich verwende, um Informationen aus der Datenbank zu sammeln (Ich habe dies einige Male umgeschrieben. Dieser Code zeigt auch "table.liam ist nicht vorhanden" an.)

  <body>
   <?php
 $con = mysql_connect ("localhost", "root", "");
 mysql_select_db ("db_test", $con);

  if (!$con)
    { 
    die ("Could not connect: " . mysql_error());
    } 
    $sql = mysql_query("SELECT * FROM Liam WHERE Description LIKE '%term%'") or die
        (mysql_error());

       while ($row = mysql_fetch_array($sql)){
    echo 'Primary key: ' .$row['PRIMARYKEY'];
    echo '<br /> Code: ' .$row['Code'];
    echo '<br /> Description: '.$row['Description'];
    echo '<br /> Category: '.$row['Category'];
    echo '<br /> Cut Size: '.$row['CutSize']; 
  }

  mysql_close($con)
   ?>
     </body>

Wenn jemand einen Einblick hat oder mir dabei helfen kann, wäre ich sehr dankbar! Danke im Voraus.

9
LiamHorizon

probieren Sie es aus, lassen Sie mich wissen, was passiert.

Bilden:

<form action="form.php" method="post"> 
Search: <input type="text" name="term" /><br /> 
<input type="submit" value="Submit" /> 
</form> 

Form.php:

$term = mysql_real_escape_string($_REQUEST['term']);    

$sql = "SELECT * FROM liam WHERE Description LIKE '%".$term."%'";
$r_query = mysql_query($sql);

while ($row = mysql_fetch_array($r_query)){ 
echo 'Primary key: ' .$row['PRIMARYKEY']; 
echo '<br /> Code: ' .$row['Code']; 
echo '<br /> Description: '.$row['Description']; 
echo '<br /> Category: '.$row['Category']; 
echo '<br /> Cut Size: '.$row['CutSize'];  
} 

Edit: Aufgeräumt etwas mehr.

Final Cut (meine Testdatei):

<?php
$db_hostname = 'localhost';
$db_username = 'demo';
$db_password = 'demo';
$db_database = 'demo';

// Database Connection String
$con = mysql_connect($db_hostname,$db_username,$db_password);
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db($db_database, $con);
?>

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <title></title>
    </head>
    <body>
<form action="" method="post">  
Search: <input type="text" name="term" /><br />  
<input type="submit" value="Submit" />  
</form>  
<?php
if (!empty($_REQUEST['term'])) {

$term = mysql_real_escape_string($_REQUEST['term']);     

$sql = "SELECT * FROM liam WHERE Description LIKE '%".$term."%'"; 
$r_query = mysql_query($sql); 

while ($row = mysql_fetch_array($r_query)){  
echo 'Primary key: ' .$row['PRIMARYKEY'];  
echo '<br /> Code: ' .$row['Code'];  
echo '<br /> Description: '.$row['Description'];  
echo '<br /> Category: '.$row['Category'];  
echo '<br /> Cut Size: '.$row['CutSize'];   
}  

}
?>
    </body>
</html>
9
rackemup420

Sie erhalten Fehler, 'Table Liam existiert nicht', weil der Name der Tabelle Liam ist, was nicht mit liam identisch ist. Bei MySQL-Tabellennamen wird zwischen Groß- und Kleinschreibung unterschieden.

3
pjmorse

Sind Sie sicher, dass die angegebene Datenbank und Tabelle vorhanden ist? Haben Sie versucht, Ihre Datenbank mit einem beliebigen Datenbank-Client anzuzeigen? Beispiel: Befehlszeilen-MySQL-Client im Lieferumfang des MySQL-Servers. Wenn Sie ein Neuling sind, gibt es Dutzende von GUI- und Webinterface-Clients (HeidiSQL, MySQL Workbench, phpMyAdmin und viele mehr). Prüfen Sie also zunächst, ob Ihr Tabellenerstellungsskript erfolgreich war und was es erstellt hat.

BTW, warum haben Sie ein Skript zum Erstellen der Datenbankstruktur? Normalerweise ist dies eine einmalige Operation. Schreiben Sie das Skript, um dies zu tun, ist dies nicht mehr erforderlich. Dies ist nur nützlich, wenn Sie die Datenbankstruktur ständig neu erstellen und bearbeiten müssen.

0
Dawid Ferenczy