Das hier folgende Listing enthält gegenüber dem im Heft abgedruckten einige Ergänzungen:
<html><head><title>Suche in iX-Buchbesprechungen</title><link title="php" type="text/css" rel="stylesheet" href="php.css"></head><body><h2>Suche in iX-Buchbesprechungen</h2><?php // Formularausgabe, wenn $whatsit ("Suchen") nicht gesetzt if ($whatsit == "") { ?><form method="get" action="<?php echo $PHP_SELF;?>" enctype="application/x-www-form-urlencoded" name="Suchen"><table><tr><td>Schlagwort</td><td><input type="text" name="s_schlag" size="20" maxlength="50"></td></tr><tr><td>Autor</td><td><input type="text" name="s_autor" size="20" maxlength="50"></td></tr><tr><td>Verlag</td><td><input type="text" name="s_verlag" size="20" maxlength="50"></td></tr></table><input type="submit" name="whatsit" value="Suchen"></form><?php } elseif ( $whatsit == "Suchen") { // hier beginnt der Suchvorgang: DB-Verbindung aufbauen... $host="localhost"; $user="my_db_admin"; $password="my_db_passwd"; mysql_connect($host,$user,$password); mysql_select_db("biblio"); $my_query = "select distinct v.name, v.ort"; $my_query .= ", b.titel, b.untertitel, b.jahr, b.waehrung"; $my_query .= ", b.preis, b.bild, b.seiten, b.id, b.isbn"; $my_query .= ", rez.vorname, rez.nachname"; $my_query .= ", b.rez_monat, b.rez_jahr"; $my_query .= " from autoren a, buecher b, verlage v, rez_aut r,"; $my_query .= " rezensenten rez where "; $my_query .= " r.buch_id = b.id"; $my_query .= " and a.id = r.autor_id"; $my_query .= " and v.id = b.verlag_id"; $my_query .= " and b.rez_id = rez.id"; // Die drei folgenden if-Konstrukte lauten, wie im Heft, // etwas umstaendlicher: // $my_query .= " and upper(a.nachname) like '%"; // $my_query .= strtoupper($s_autor); // $my_query .= "%'"; // wobei hier a.nachname fuert alle drei Moeglichkeiten // steht. if ($s_autor) { $my_query .= " and upper(a.nachname) like '%" . strtoupper($s_autor) . "%'"; } if ($s_schlag) { $my_query .= " and upper(b.titel) like '%" . strtoupper($s_schlag) . "%'"; } if ($s_verlag) { $my_query .= " and upper(v.name) like '%" . strtoupper($s_verlag) . "%'"; } $my_res = mysql_query($my_query); $my_auth_num = mysql_affected_rows(); // wenn es kein Ergebnis gibt: if ($my_auth_num<1) { echo "<html><head>"; echo "<title>Nichts gefunden...</title>"; echo "</head>"; echo "<h3 align='center'><a href='"; echo $PHP_SELF . "'>Zurück zur Suche"; echo "</a></h3>"; } // wonach gesucht worden ist: $s_what = ""; if ($s_autor) { $s_what .= " " . $s_autor; } if ($s_schlag) { $s_what .= " " . $s_schlag; } if ($s_verlag) { $s_what .= " " . $s_verlag; } // Tabelle ausgeben echo "<table border='2' align='center' cellspacing='0' cellpadding='2'>"; echo "<caption><h1>Suchergebnis für " $s_what "</h1></caption>\n\n"; // Ergebnis auslesen while ($this_row = mysql_fetch_row($my_res)) { printf("<tr><td><img src='get_image.php3?ID="); echo $this_row[9]; printf("'></td><td>"); // wenn nach Autor/inn/en gesucht: if ($s_autor) { $my_querya_pre = "select id from autoren where "; $my_querya_pre .= "upper(nachname) like '%" . strtoupper($s_autor) . "%'"; $my_auth_id_res = mysql_query($my_querya_pre); while ($auth_row = mysql_fetch_row($my_auth_id_res)) { printf("%s %s ", $auth_row[1], $auth_row[2]); } } // Query nach den Autoren eines Buches, // wenn nicht nach Autor/inn/en gesucht: $my_querya = "select a.id, a.vorname, a.nachname from autoren a, rez_aut r "; $my_querya .= "where r.buch_id = " . $this_row[9]; $my_querya .= " and a.id = r.autor_id order by a.nachname"; $my_authres = mysql_query($my_querya); // Ausgabe der Autor/inn/en while ($auth_row = mysql_fetch_row($my_authres)) { printf("%s %s ", $auth_row[1], $auth_row[2]); } printf("<br><strong>%s</strong><br>\n", $this_row[2]); printf("%s<br>\n", $this_row[3]); printf("%s (%s) %s<br>\n", $this_row[1], $this_row[0], $this_row[4]); printf("%s Seiten<br>", $this_row[8]); printf("ISBN %s<br>", $this_row[10]); printf("%s %s<br><br>\n", $this_row[5], $this_row[6]); printf("<strong>Rezension:</strong>%s %s \n", $this_row[11], $this_row[12]); printf("in Heft %s/%s</td></tr>\n", $this_row[13], $this_row[14]); } echo "</table>"; mysql_close(); } ?><!-- Fusszeile --><p>Letzte Veränderung am<?php $today = date("d. m. Y"); echo "$today"; ?>von<a href="mailto:hb@ix.heise.de">hb</a></p></body></html>
Dieser Text ist der Zeitschriften-Ausgabe 06/2000 von iX entnommen.
iOS, Android, Windows Phone 7 und HTML5 - das neue Sonderheft von heise Developer führt Einsteiger und Profis in die Programmierung mobiler Geräte ein.