Hallo,
ich bin dabei mir ein privates db-orientiertes Telefonbuch zu basteln, welches eine Suchfunktion beinhaltet.
Doch leider funktioniert die Suchfunktion nicht so, wie ich es gerne hätte.
Sobald ich die Seite aufrufe, erscheinen folgende Fehlermeldungen :
Zitat:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /members_only/telefon_suche.php on line 27
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /members_only/telefon_suche.php on line 43
|
in zeile 27 steht folgendes:
Zitat:
$anz = mysql_num_rows($res);
|
und in zeile 43:
Zitat:
$anz2 = mysql_num_rows($res2);
|
damit man den ganzen zusammenhang sieht poste ich noch den Quelltext der Suchfunktion:
PHP-Code:
<?php
require('../db.php');
function getUser($suchfeld, $page)
{
$page = (int) $page;
if ($page <= 0) $page=1;
if(!empty($suchfeld)) {
$suchfeld = trim($suchfeld);
$suchfeld = str_replace(" ","%",$suchfeld);
$suchfeld = "%".$suchfeld."%";
$suche = " SELECT
id, name, nummer, strasse, datum
FROM
".$table_prefix."telefon
WHERE
name LIKE '$suchfeld' OR
nummer LIKE '$suchfeld'";
} else {
$suche = " SELECT
id, name, nummer, strasse, datum
FROM
".$table_prefix."telefon";
}
$res = mysql_query($suche);
$anz = mysql_num_rows($res);
$itperpage = 3;
$maxpages_int = (int) ($anz/$itperpage);
$maxpages_float = $anz/$itperpage;
if ( $maxpages_float > $maxpages_int ) {
$maxpages = (int)(($anz/$itperpage)+1);
} else {
$maxpages = (int)(($anz/$itperpage));
}
if ($page > $maxpages) $page = $maxpages;
$suche2 = $suche." ORDER BY id ASC limit ".(($page-1)*$itperpage).",$itperpage";
$res2 = mysql_query($suche2);
$anz2 = mysql_num_rows($res2);
if($anz > 0) {
if(empty($suchfeld)) {
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' align='center'><tr>
<td><strong>$anz User in der Datenbank. Pro Seite werden $itperpage User
angezeigt.</strong></td></tr></table>";
} else {
if($anz > 1) { $wortlaut = "wurden"; } else { $wortlaut = "wurde"; }
$head = "
<table width='500' border='0' cellspacing='1' cellpadding='1' ><tr>
<td><strong>Mit Ihrer Suchabfrage $wortlaut $anz Treffer
gelandet.</strong></td></tr></table>";
}
$i = 0;
$navi_left = "";
$navi_right = "";
$telefonliste = "";
$show_navi = "";
// Start der WHILE Schleife
while ($row = mysql_fetch_array($res2, MYSQL_ASSOC)) {
// Hier wird die Zeilenhintergrundfarbe für jeden Datensatz festgelegt,
// dies dient der Übersicht
if($i%2==0) { $trcolor = "#FFFFFF"; } else { $trcolor = "#DADADA"; }
if ($page > 1){
$navi_left = "<strong><input type=button value=\"«\"
onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
}
if ($page < $maxpages){
$navi_right = "<strong><input type=button value=\"»\"
onClick=\"pageset($page+1)\" style=\"WIDTH:25px\"></strong>";
}
if(isset($_POST['suchfeld']) && !empty($_POST['suchfeld'])) {
$val_suchfeld = $_POST['suchfeld'];
} else {
$val_suchfeld = "";
}
$show_navi =
"
<form name='form1' method='post' action='?action=telefon_suche' style='margin:0px;padding:0px'>
<table width='500' border='0' cellspacing='1' cellpadding='1' align='center'>
<tr>
<td width='50%'>
<input type=button value=\"Seite\" style=\"WIDTH:50px\" onClick=\"pageset2()\">
<input name='page' type='text' id='page' value='$page' style=\"WIDTH:60px\">
von $maxpages $navi_left$navi_right
</td>
<td width='60%'><div align = 'right'>
Suchen: <input name='suchfeld' type='text' id='suchfeld' value = '$val_suchfeld'
style=\"WIDTH:120px;HEIGHT:16px\">
<input type=submit value=\"Finden\" style=\"WIDTH:45px\">
<input type=hidden name=page_no value=\"$page\">
</div></td>
</tr>
</table>
</form>
";
$telefonliste = $telefonliste .
"
<tr bgcolor = '$trcolor'>
<td width='100'><div align='center'>$row[id]</div></td>
<td width='100'><div align='left'>$row[name]</div></td>
<td width='100'><div align='left'>$row[nummer]</div></td>
<td width='100'><div align='left'>$row[strasse]</div></td>
<td width='100'><div align='left'>$row[datum]</div></td>
</tr>
";
$i++; // Zählschleife um 1 erhöhen
}// WHILE Schleife abschließen
} else {
$telefonliste = "
<tr>
<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
<a href='?action=telefon'>Zurck zur Userliste</a></div>
</td>
</tr>";
}
$fertig = "
<table width='500' border='0' cellspacing='1' cellpadding='1' align='center'>
<tr bgcolor='#36698A'>
<td width='100'><div align='center'><strong>ID</strong></div></td>
<td width='100'><div align='center'><strong>Name</strong></div></td>
<td width='100'><div align='center'><strong>Nummer</strong></div></td>
<td width='100'><div align='center'><strong>Strasse / Ort</strong></div></td>
<td width='100'><div align='center'><strong>Datum</strong></div></td>
</tr>
$userliste
</table>
";
return $head.$show_navi.$fertig;
} // Funktion schließen – FERTIG
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="Type" con; charset=UTF-8" >
<TITLE>Blaetterfunktion mit Navigator und Suchfunktion</TITLE>
<script language="JavaScript" type="text/javascript">
function pageset(wert)
{
document.form1.page_no.value = wert;
document.form1.submit();
}
function pageset2()
{
document.form1.page_no.value = document.form1.page.value;
document.form1.submit();
}
</script>
</head>
<body>
<?
// Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer
echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
?>
</body>
</html>
leider scheine ich taub auf den augen zu sein, da ich den fehler nicht finde.
Die verbindungsdaten kommen aus der db.php sowie auch die variable $table_prefix.
Vielleicht findet einer von euch den fehler.
Danke schon mal im vorraus