template

Index :: PHP/MySQL :: SQL: Typische Queries

Nachdem die Datenbank mittels ...
include('glob.inc.php');
mysql_connect(DB_HOST, DB_USER, DB_PASS);
mysql_select_db(DB_NAME);
... geöffnet wurde, wird es Zeit für einige Abfragen. Wir setzen eine Tabelle 'benutzer' mit den Feldern 'UID' (Int, Primärschlüssel, Autoincrement), 'Vorname' (Varchar(20)), 'Nachname' (Varchar(20)) und 'PersNr' (Int) voraus. Zuerst wollen wir wissen, wieviele Benutzer bereits angelegt sind:
$row = mysql_fetch_row(mysql_query("SELECT COUNT(*) FROM benutzer"));
echo "Es sind ", $row[0], " Benutzer in der Liste.";
Nun prüfen wir, ob ein User Tucholski schon erfasst wurde:
$search = "Tucholski";
$query = "SELECT COUNT(*) FROM benutzer WHERE Nachname='$search' LIMIT 1";
$row = mysql_fetch_row(mysql_query($query));
echo "User '", $search, "' ist ", $row[0]?"schon":"nicht", " in der Liste.";  // Antwort bauen
Falls er noch nicht drin war, kommt er jetzt hinein; wir weisen ihm die Personal-Nummer 999 zu:
$vname = "Kurt";
$nname = "Tucholski";
$persnr = "999";
$query = "INSERT INTO benutzer SET Vorname='$vname', Nachname='$nname', PersNr=$persnr";
mysql_query($query);
Alternativ hätten wir auch folgende Variante wählen können:
$query = "INSERT INTO benutzer(Vorname,Nachname,PersNr) VALUES('$vname','$nname',$persnr)";
mysql_query($query);
Da fällt uns ein, daß sein Vorname korrekterweise 'Kurt G.' lauten sollte. Also aktualisieren wir den Datensatz und selektieren in der WHERE-Klausel sicherheitshalber den Nachnamen UND die PersonalNr, falls zwischenzeitlich weitere Tucholskis erfasst wurden:
$vname = "Kurt G.";
$nname = "Tucholski";
$persnr = "999";
$query = "UPDATE benutzer SET Vorname='$vname' WHERE Nachname='$nname' AND PersNr=$persnr LIMIT 1";
mysql_query($query);
Abschließend möchten wir noch wissen, welche UID er besitzt:
$nname = "Tucholski";
$persnr = "999";
$query = "SELECT UID FROM benutzer WHERE Nachname='$nname' AND PersNr=$persnr LIMIT 1";
mysql_query($query);
echo "User '", $nname, "' (mit der PersonalNr ", $persnr, ") hat die UID ", $row[0];  // Antwort bauen

Index :: PHP/MySQL


template