...
$BB = $_GET['wn'];
$sql = "select * from wohnungen where Wohnungsnr = $BB ";
$link = mysql_connect($host,$user,$password);
mysql_select_db($database);
$result = mysql_query($sql) OR die(mysql_error());
while($data = mysql_fetch_assoc($result)) {
if (!isset($data['Internet_query'])or($data['Internet_query']=='nein')){
include('error.php');
} else {$pdf =& new Cezpdf();
...
Hi,
also ich habe für Deinen Code folgende Verbesserungsvorschläge:
1. $BB = ... muß nicht sein. Warum nutzt Du nicht gleich die $_GET-Variabel im QUERY? Meint:
$sql = "SELECT * FROM wohnungen WHERE Wohnungsnr = " . $_GET["wn"];
2. Dann solltest du Dir überelgen, ob Du die Connection zum DB-Server nicht grundsätzlich ganz am Anfang Deiner scripte via include() aufbaust, um diese in allen weiteren Anwenungen zur Verfügung zu haben.
3. Der Teil "OR die(mysql_error());" ist nicht so gut, da der Benutzer eigentlich nicht mit irgendwelchen SQL-Fehlermeldungen konfrontiert werden muß. Stell Dir vor, Deine Sekretärin arbeitet mit Deinem System und bekommt plötzlich eine wüste (für sie) kryptische Fehlermeldung. Die kippt doch tot vom Stuhl!
Besser wäre
if($result = @mysql_query($sql)) {
//weiter im Text
} else {
// verständliche Fehlerausgabe (Sekretärinnentauglich)
}
4. Zu Deiner eigentlichen Frage: Um die Anzahl der gefundenen Datensätze zu ermitteln, nutzt Du @mysql_num_result():
$num_result = @mysql_num_rows($result);
if($num_result > 0) {
// Weiter im Text...
} else {
// Keine gefundenen Wohnungen
}
Hier bietet es sich dann auch an, statt einer while-Klausel über eine for-Schleife die Datensätze zu durchlaufen:
for($i=0; $i<$num_result; $i++) {
@mysql_data_seek($result, $i); // Setzt den Zeiger auf die Zeile $i
$inhalte = @mysql_fetch_array($result, MYSQL_ASSOC); // erzeugt ein assoziatives Array, in dem die Spaltennamen der Tabelle später zur Verfügung stehen.
}
Der Vorteil der FOR-Schleife ist der, dass Du über die Variabel $i immer eine Indizierung im HTML-Quelltext schaffen kannst, ohne einen exklusiven Zahler mitschleppen zu müssen. Aber das Thema wäre hier zu weitgreifend.
Übrigens: Das @-Zeichen vor den Funktionsaufrufen verhindert, dass PHP Fehlermeldungen direkt im HTML-Code ausgibt.
Grüße TConnect
Users browsing this forum: No registered users and 10 guests