Datenbank Ausgabe mit LIMIT begrenzen

solala123

Erfahrenes Mitglied
Hallo,
ich möchte meine Datenbank Ausgabe mit LIMIT begrenzen, aber es funktioniert nicht.

LIMIT 0, 5 --> es sollen ab Datensatz 0 weitere 5 Datensätze ausgegeben werden.

sobald ich LIMIT einbaue, erfolgt keine Abfrage der Datenbank mehr und es kommt die Meldung "Ungültige Abfrage"

Warum ich begrenzen möchte ist folgendes. ich will später eine Seitenweise Begrenzung machen und das funktioniert nur mit LIMIT.


PHP:
require_once ('konfiguration-ResBar.php');


 
$garten      = $_POST['garten'];
$kueche      = $_POST['kueche'];
$plz         = $_POST['plz'];
$ort         = $_POST['ort'];
$behindert   = $_POST['behindert'];
$nacht       = $_POST['nacht']; 
$freigabe    = $_POST['freigabe'];
 
 
 
 
if( empty($_POST['ort'])  && empty($_POST['plz']) )
	{ echo 'Ort oder Plz. muss ausgefüllt werden';   exit;  }

 
//=========================== Anfang der Abfragen ======================================================================

	$sql  = (empty($_POST['garten']))    ? '' : " AND garten    = '".$_POST['garten']      ."'";
	$sql .= (empty($_POST['ort']))       ? '' : " AND ort       = '".$_POST['ort']         ."'";
	$sql .= (empty($_POST['kueche']))    ? '' : " AND kueche    = '".$_POST['kueche']      ."'";
	$sql .= (empty($_POST['plz']))       ? '' : " AND plz       = '".$_POST['plz']         ."'";
	$sql .= (empty($_POST['behindert'])) ? '' : " AND behindert = '".$_POST['behindert']   ."'";
	$sql .= (empty($_POST['nacht']))     ? '' : " AND nacht     = '".$_POST['nacht']       ."'"; 
	$sql .= (empty($_POST['freigabe']))  ? '' : " AND freigabe  = '".$_POST['freigabe']    ."'"; 
	
	$sql = substr($sql, 5);
	$sql = ($sql == '') ? ""  : " WHERE LIMIT 0, 3".$sql;   // habe es hier mal versucht ging nicht
  
//============================= Ende der Abfragen ======================================================================
 
 
$query  =   sprintf("SELECT * FROM ResBar LIMIT 0, 3 " .$sql,    // habe es hier mal versucht ging nicht
	
	mysqli_real_escape_string($db_link, $garten),
	mysqli_real_escape_string($db_link, $kueche),
	mysqli_real_escape_string($db_link, $plz),
	mysqli_real_escape_string($db_link, $ort),
	mysqli_real_escape_string($db_link, $behindert),
	mysqli_real_escape_string($db_link, $nacht),
	mysqli_real_escape_string($db_link, $freigabe)
);  
 
 
$db_erg = mysqli_query( $db_link, $query );
if ( ! $db_erg )
{ die('Ungültige Abfrage: ' . mysqli_error());  }

// Abfragen wieviele Zeilen ausgegeben werden
$num_rows = mysqli_num_rows($db_erg); 
// Ausgabe der Zeilen
// echo "$num_rows Zeilen\n";


 
 echo "<table width='100%' class='altrowstable' id='alternatecolor' >
  <tbody>
  
      <td background='images/leiste-schatten-ausgabetabelle.gif' width='5%' >  Bild                 </td>
      <td background='images/leiste-schatten-ausgabetabelle.gif'>  Lokalname                        </td>
      <td background='images/leiste-schatten-ausgabetabelle.gif'>  Küche                            </td>
.
.
.
.

Vielen Dank
Gruß
Rainer
 
Hallo,

Die Syntax mit LIMIT sieht so aus:

SQL:
SELECT spalte1, spalte2 FROM tabelle WHERE spalte3 = 'abc' AND spalte4 = 123 LIMIT 0, 5;

Das LIMIT muss also hinter alle WHERE-Bedingungen ist selbst aber keine, darf damit also nicht mitten rein.
 
Zurück