Erste 2 Datensätze auslassen

ultrakollega

Erfahrenes Mitglied
Hi!

Also, folgende SQL Abfrage:

PHP:
$sql = "select auswahl from Kunden";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  echo $row["auswahl"];
}

Angenommen in der Table Kunden sind 8 Datensätze. Ich will
aber das die Datensätze mit der ID 1 und 2 nicht ausgegeben
werden, im Prinzip dann nur die restlichen 6.

Wie könnte das aussehen?

mfg

ultra
 
Eine Möglichkeit wäre LIMIT

Die LIMIT-Klausel wird benutzt, um die Anzahl von Zeilen, die vom SELECT-Statement zurückgegeben werden, zu beschränken. LIMIT erwartet ein oder zwei numerische Argumente. Wenn zwei Argumente angegeben sind, legt das erste den Offset der ersten Zeile fest, die zurückgegeben wird, und das zweite gibt die maximale Anzahl von Zeilen an, die zurückgegeben werden. Der Offset der anfänglichen Zeile ist 0 (nicht 1):


mysql> select * from tabelle LIMIT 5,10; # Zeilen 6 bis 15 zurückgeben

Wenn ein Argument angegeben wird, stellt es die maximale Anzahl von Zeilen dar, die zurückgegeben werden:


mysql> select * from tabelle LIMIT 5; # Die ersten 5 Zeilen zurückgeben

Mit anderen Worten ist LIMIT n äquivalent zu LIMIT 0,n.
Quelle: http://www.mysql.com/doc/de/SELECT.html
 
...

Danke, hab mittlerweile ne Lösung gefunden, ist vielleicht
nicht die intelligenteste aber sie funktioniert:

PHP:
$sql = "select auswahl from kunden order by id ASC";
$result = mysql_query($sql);

while($row = mysql_fetch_array($result, MYSQL_ASSOC)){
  if($row["id"] != "1" AND ($row["id"] != "2")) {
	  echo $row["produkt"]."<br><br>";
  }
}

Die ID 1 und 2 stehen noch zur Verfügung und das sollte
gewährleistet sein ...

greez

ultra
 
das geht zwar auch aber der query ist weitaus langsamer als wenn du mit limit arbeitest... wenn du mit limit arbeitest holt es dir wirklich nur die zwei einträge aus dem table, bei deiner variante muss es alle einträge aus diesem table laden aber nur zwei davon anzeigen... also das heisst wenn du 10 einträge im table hast muss es 8 einträge laden die vollkommen unnötig sind.

also benutz lieber das mit LIMIT

greetingz
 
@Samuel: Anders rum :-) Er lädt 10 Einträge, zeigt aber nur 8 an. Und wenn du da einen Geschwindigkeitsunterschied merkst, dann mal herzlichen Glückwunsch ;)

Wenn es wirklich nur darum geht, die Einträge mit den ID's 1 und 2 nicht anzuzeigen, würde ich es so machen:

PHP:
$sql = "SELECT auswahl FROM kunden WHERE id != '1' AND id != '2' ORDER BY id ASC";
...oder so...
PHP:
$sql = "SELECT auswahl FROM kunden WHERE id NOT IN ('1', '2') ORDER BY id ASC";
 
Zurück