prob mit Blätter Tut

Detlev

Mitglied
Hi,

hab mal ein Tut probiert, das auch ganz gut geht , aber wenn ich versuche das script in eine Navigation einzubinden, scheitert es an einer Fehlermeldung.


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."%";
		
		$sql = "	SELECT
						x_id, name, online
					FROM
						lan_x
					WHERE
						x_id  LIKE '$suchfeld' OR
						name LIKE '$suchfeld' OR
						online LIKE '$suchfeld'";
	} else {
		$sql = " SELECT
						x_id, name, online
					FROM
						lan_x";
	}
	
	$res = mysql_query($sql);
	$anz = mysql_num_rows($res);
	
	$itperpage = 10;
   	$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;
	
	$sql2 = $sql." ORDER BY x_id ASC limit ".(($page-1)*$itperpage).",$itperpage";
	$res2 = mysql_query($sql2);
	$anz2 = mysql_num_rows($res2);
	
	if($anz > 0) {
	
		if(empty($suchfeld)) {
		
			$head = "
				<table width='500' border='0' cellspacing='1' cellpadding='1'><tr>
				<td><strong>$anz Titel in der Datenbank. Pro Seite werden $itperpage Titel
				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;	// Eine Zählvariable für unterschiedliche Zeilenfarben
		$navi_left       = ""; // HTML - Teil der Navigation zum zurückblättern
		$navi_right      = ""; // HTML - Teil der Navigation zum weiterblättern
		$userliste       = ""; // HTML - Inhalt der Userliste
		$show_navi       = ""; // HTML – Beinhaltet die Navigation und das Suchfeld
		
		// 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=\"&laquo;\"
				onClick=\"pageset($page-1)\" style=\"WIDTH:25px\"></strong>";
			}	
		
			if ($page < $maxpages){ 
				$navi_right = "<strong><input type=button value=\"&raquo;\"
				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='index.php?show=search_x' style='margin:0px;padding:0px'>
					<table width='600' border='0' cellspacing='1' cellpadding='1'>
					<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:60px\">
						<input type=hidden name=page_no value=\"$page\">
					</div></td>
					</tr>
					</table>
					</form>
				";
				
				$userliste = $userliste .
										"
										<tr bgcolor = '$trcolor'>
										    <td width='100'><div align='left'>$row[x_id]</div></td>
											<td width='100'><div align='center'>$row[name]</div></td>
             							<td width='100'><div align='left'>$row[online]</div></td>
             						</tr>
										";
			$i++; // Zählschleife um 1 erhöhen
		}// WHILE Schleife abschließen
	
	} else {
		
		$userliste = "
						<tr>
                  	<td colspan='5'><div align='center'>Keine Ergebnisse fuer Ihre Suche!<br><br>
							<a href='index.php?action=xxx&show=search_x'>Zurck zur Userliste</a></div>
							</td>
                	</tr>";		
	}
	
	$fertig = "
				<table width='600' border='0' cellspacing='1' cellpadding='1'>
             <tr bgcolor='#36698A'>
             	<td width='100'><div align='center'><strong>x_id</strong></div></td>
             	<td width='100'><div align='center'><strong>Name</strong></div></td>
				<td width='100'><div align='center'><strong>Activitaet</strong></div></td>
    			</tr>
             $userliste
				</table>
				";
	
	return $head.$show_navi.$fertig;
	
} // Funktion schließen – FERTIG


// Datenbankverbindung herstellen
$server = "xxx";
$user   = "xxx";
$pass   = "xxx";
$dbase  = "xxx";


$conn = @mysql_connect($server, $user, $pass);

if($conn) {
   mysql_select_db($dbase, $conn);
} else {
   die("Fehler, Verbindung konnte nicht hergestellt werden!");
}

?>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Translation//EN">
<html>
<head>
<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>
<?
// !  191 ist hier !   Aufruf der Funktion getUser() mit Suchbegriff und Seitennummer  
	echo $show = getUser($_POST['suchfeld'],$_POST['page_no']);
?>
</body>
</html>

Wenn ich es so aufrufe:

index.php?action=xxx&show=search_x



kommt folgende Fehlermeldung:

Notice: Undefined index: suchfeld in projekt\1\x\search_x.php on line 192

Notice: Undefined index: page_no in projekt\1\x\search_x.php on line 192



was muß ich noch bei der Url anfügen damit das nicht passiert?


Danke
Detlev
 
Zuletzt bearbeitet:
Dein Script erwartet ein Feld namens "Suchfeld" und eins mit "page_no"

Mein Tipp: Versuche den Code zu verstehen und programmiere es richtig, mit dem, was du auch wirklich brauchst und kupfere nicht nur irgendwas ab.
 
Zurück