Thema: Verbindung aufnehmen, Datensätze abfragen


Datensätze abfragen und anzeigen

MySQL

In einem PHP-Programm können die Datensätze mit der Anweisung select ausgewählt und abgefragt werden.

  • Einfache Abfrage
  • Die folgende Befehlszeile gibt den gesamten Inhalt einer Tabelle aus.
        SELECT * FROM lab_tblpersonen;
    Sollen nur einzelne Spalten von der ganzen Tabelle angezeigt werden, muss der Operator * durch die Spaltennamen ersetzt werden.
        SELECT vorname, name, gehalt FROM lab_tblpersonen;
  • Einfache Abfrage mit DISTINCT
  • Mit der Option DISTINCT können Duplikate ausgefiltert werden.
        SELECT DISTINCT personalnummer FROM lab_tblpersonen;
  • Abfrage mit Bedingung
  • Der folgende Befehl gibt die komplette Zeile aus, bei der in der Spalte zulage 300 steht.
        SELECT * FROM lab_tblpersonen WHERE zulage = 300;
    Wenn Sie nach einem Wort wie Schmitz suchen, müssen Sie dieses in zwei Hochkommas setzen.
        SELECT * FROM lab_tblpersonen WHERE name = 'Schmitz';
    Um die Datensätze zwischen 3000 und 5000 auszugeben können Sie BETWEEN verwenden.
        SELECT * FROM lab_tblpersonen WHERE gehalt BETWEEN 3000 AND 5000;
  • Abfrage mit Platzhalter
  • Wenn Sie nicht genau wissen, an welcher Stelle das Wort Schmitz steht welches Sie suchen, können Sie den Platzhalter % verwenden. Der Platzhalter % steht für beliebig viele Zeichen. Weiterhin müssen Sie das = durch LIKE ersetzen.
        SELECT * FROM lab_tblpersonen WHERE name LIKE '%Schmitz%';
    Ein weiterer Platzhalter ist der Unterstrich. Dieser steht für genau ein Zeichen.
        SELECT * FROM lab_tblpersonen WHERE name LIKE 'S__z';
  • Verknüpfung von Bedingungen
  • Werden zwei Bedingungen mit einem AND verknüpft, müssen beide Bedingungen erfüllt werden.
        SELECT * FROM lab_tblpersonen WHERE gehalt > 3000 AND < 5000;
    Werden zwei Bedingungen mit einem OR verknüpft, muss mindestens eine Bedingung erfüllt sein.
        SELECT * FROM lab_tblpersonen WHERE gehalt = 3000 OR gehalt = 5000;
    Mit der Bedingung NOT kann man das Ergebnis einer Bedingung negieren.
        SELECT * FROM lab_tblpersonen WHERE gehalt < 5000 AND NOT gehalt = 3000;
    Werden mehrere Bedingungen miteinander verknüpft, müssen gegebenenfalls Teile der Abfrage in Klammern gesetzt werden.
        SELECT * FROM lab_tblpersonen WHERE gehalt < 3000 OR (name = 'Schmitz' AND gehalt = 5000);

Datensätze abfragen


<form action = "c52.php" method = "post">
  <div class="form-group">
        <label>Untergrenze</label>
        <input type="text" name="ug" placeholder="Enter Gehaltsuntergrenze"/>
    </div>
    <div class="form-group">
        <label>Obergrenze</label>
        <input type="text" name="og" placeholder="Enter Gehaltsobergrenze"/>
    </div>
    <div class="form-group">
        <button class="button dark" name="send">Send</button>
	</div>
</form>

<?php
if(isset($_POST['send'])){
   /* Verbindung mit MyQSL aufnehmen */
   mysql_connect("localhost", "YourUsername", "YourPassword");
   $dblink =mysql_select_db("YourDB");
   $sqlstr = "select * from lab_tblpersonen";
   $sqlstr .= " where gehalt >= " . $_POST["ug"] . " and gehalt <= " . $_POST["og"];
   $sqlstr .= " order by gehalt";
   $res = mysql_query($sqlstr) or die ("keine Verbindung mit der Datenbank ".mysql_error());
   $num = mysql_num_rows($res);
   if ($num==0) {
      echo "Keine passenden Datensätze gefunden!";
   } else {
      echo "<table class='table striped'>";
      echo "<thead>";
      echo "<tr><b><th>ID</th><th>Nachname</th>";
      echo "<th>Vorname</th> <th>Personalnummer</th>";
      echo "<th>Gehalt</th><th>Zulage</th><th>Geburtstag</th>";
      echo "</b></tr>";
      echo "</thead><tbody>";
      while ($dsatz = mysql_fetch_assoc($res)) {
         echo "<tr>";
         echo "<td>" . $dsatz["id"] . "</td>"; 
         echo "<td>" . $dsatz["name"] . "</td>"; 
         echo "<td>" . $dsatz["vorname"] . "</td>"; 
         echo "<td>" . $dsatz["personalnummer"] . "</td>"; 
         echo "<td>" . number_format($dsatz["gehalt"],2,",","."). "</td>"; 
         echo "<td>" . number_format($dsatz["zulage"],2,",","."). "</td>"; 
         echo "<td>" . $dsatz["geburtstag"] . "</td>"; 	         	  
         echo "</tr>";
      }	
      echo "</tbody>";
      echo "</table>";
   }
   mysql_free_result($res); 
   mysql_close($dblink);
}
?>

Datensätze abfragen