Datenbanken
MySQL

Informatik Johann Penon

Einzelnen Datensatz ausgeben (select / where)


Um einen einzelnen Datensatz in einer Datenbank zu suchen und auf dem Bildschirm anzuzeigen, ist es zunächst notwendig die Werte des gewünschten Feldes und den Suchbegriff in einem Formular zu erfassen, um diese dann in einem weiteren Skripte auf dem Bildschirm anzuzeigen. Das Beispiel für ein solches Formular ist wieder auf eine Kundentabelle mit dem Schlüsselfeld "kunr" bezogen.

Wenn Sie die Skripte: "kunden_einzeln_ausgeben_formular.php" und "kunden_einzeln_ausgeben.php" verstehen, dann können Sie die folgenden Beschreibungen ignorieren.


<form action="kunden_einzeln_ausgeben.php"  method="post">

 <label for="suchfeld">Suchfeld</label>
 <select name="suchfeld" id="suchfeld" size="1">
    <option value='kunr'>Nummer</option>
    <option value='kuname'>Name</option>
    <option value='kuvorname'>Vorname</option>
    <option value='kustrasse'>Straße</option>
    <option value='kuplz'>Postleitzahl</option>
    <option value='kuort'>Ort</option>
 </select>
 <p><br />
  <label for="suchbegriff">Suchbegriff: </label>
  <input name="suchbegriff" id="suchbegriff" type="text" size="30" maxlength="30" /></p>

  <button name="abschicken" id="abschicken" type="submit">Weiter </button> 
  <button name="reset" id="reset" type="reset"> Zurücksetzen </button>
</form>
		    

Das Formular benutzt zur Eingabe des Datenfeldes ein Klappmenü mit allen Attributen der Tabelle und ein Textfeld zur Eingabe des Suchbegriffs. In diesem Beispiel ruft das Formular das PHP-Skript "kunden_einzeln_ausgeben.php" auf, welches den gefundenen Datensatz oder eine Fehlermeldung ausgibt.

Im Nachfolgeskript (in diesem Fall "kunden_einzeln_ausgeben.php") muss zunächst eine Verbindung zur Datenbank hergestellt werden. Dann werden das Suchfeld und der Suchbegriff vom vorhergehenden Formular ausdrücklich bernommen und der SQL-Befehl definiert und abgeschickt. Der Select-Befehl "SELECT * FROM kunden where $suchfeld = '$suchbegriff' " sucht damit alle Kunden bei denen der Suchbegriff mit dem Inhalt des gewählten Feldes übereinstimmt. Der Befehl "$num=mysql_Num_Rows($result)" schreibt die Anzahl der gefundenen Datensätze in die Variable $num.

$suchfeld=$_POST['suchfeld'];
$suchbegriff=$_POST["suchbegriff"];

$query = "SELECT * FROM kunden where $suchfeld = '$suchbegriff'";
$result = mysql_query($query);
$num = mysql_Num_Rows($result);
if ($num != 0):

Wenn ein Datensatz vorhanden ist, die Variable $num also ungleich 0 ist, wird der Datensatz auf dem Bildschirm ausgegeben, ansonsten gibt es eine Fehlermeldung. Das entsprechende Tabellenfeld wird mit dem Befehl <?php echo mysql_result($result, 0, "Feldname")?> auf dem Bildschirm ausgegeben. Die Zahl 0 steht dabei für die gewünschte Ausgabezeile. In der einfachen Version des Skriptes wird angenommen, dass nur eine Zeile existiert. Da PHP mit der Zahl 0 zu zählen beginnt, kennzeichnet die 0 die erste Zeile. Sollen mehrere Treffer angezeigt werden, so ist das Skript entsprechend zu ändern.

 Kundennummer: <?php echo mysql_result($result, 0, "kunr")?>
 Name: <?php echo mysql_result($result, 0, "kuname");?>
 Vorname: <?php echo mysql_result($result, 0, "kuvorname");?>

m : n und 1 : n Beziehungen

Um Daten aus mehreren Tabellen zusammenzuführen ist es lediglich notwendig, die SQL-Abfrage um die Verbindung der Tabellen zu ergänzen. Hier ein Beispiel für die Ausgabe eines PKWs.

  $query = "SELECT * FROM pkw, modelle where $suchfeld = '$suchbegriff' and pkw.moname = modelle.moname";


zum Seitenanfang springen

zum Seitenanfang springen