mySQL - Alle Zeilen ab Zeile-X mit Wert-Y selektieren

raybrackho

Mitglied
Hey leute,

kleines Problem. Ich möchte gerne aus meiner Datenbank die neuesten Bestellungen abfragen.

Hierfür möchte ich erstmal alle Bestellungen auslesen, dann mit SELECT MAX die letzte (id) in einer .txt Datei speichern und beim nächsten Aufruf diesen Wert wieder auslesen und als Startpunkt nehmen.

Soweit funktioniert auch alles, lediglich das auslesen ab einem bestimmten Wert klappt nicht.
Code:
//Letzte Bestellung aus .txt auslesen und in Variable speichern
$fp = fopen("bestellnr.txt","r");
if ($fp)
{
while(!feof($fp))
{
$abbestellnr = fgets($fp);
}
fclose($fp);
} 

mysql_query("SELECT shipping_firstname, shipping_lastname, shipping_address_1, shipping_address_2, shipping_postcode, shipping_city, shipping_country FROM `{$table}` WHERE order_id >=`{$abbestellnr}` LIMIT 10000");

Ich fürchte mal, dass meine Abfragesyntax schonmal grundsätzlich falsch ist.
Kann mir jemand zur Hand gehen?
Danke
 
Also wie es aussieht hapert es nur an der Variable $abbestellnr.
Wenn ich diese durch eine einfache Zahl ersetze, dann funktioniert alles.

Liegt es vielleicht daran, dass durch das auslesen aus der .txt Datei die Variable automatisch ein STRING ist? Dann müsste ich daraus erstmal ein INT machen, oder? Und wenn ja, wie?
 
Nachdem ich den SQL-Code mal lesbar geschrieben habe, sah ich es schnell. Beim Wert im WHERE darfst du keine ` verwenden. `sind für Feld/Tabellennamen. Wenn order_by ein Zahlenfeld ist, dann ists ohne Zeichen, ansonsten mit '

SQL:
SELECT 
	shipping_firstname, 
	shipping_lastname, 
	shipping_address_1, 
	shipping_address_2, 
	shipping_postcode, 
	shipping_city, 
	shipping_country 
FROM 
	`{$table}` 
WHERE 
	order_id >={$abbestellnr}
LIMIT 10000
--Alternativ, falls order_id ein String-Feld ist
	order_id >='{$abbestellnr}'
 
Zuletzt bearbeitet von einem Moderator:
Mich wundert gerade die {} - Klammern. Ich gehe mal davon aus, das es Variablen sind.

probier mal diese Syntax:

PHP:
$query = ("SELECT * FROM ".$table." WHERE order_id >=' ".$abbbestellung." ');

Bei * kannst du deine Spalten nehmen. War nur zu faul zum abtippen

Aber so btw Deien Whileschlife ist echt komisch. Blick da nicht so recht durch :)

ich geh mal dvon aus das du phpmyadmin nutzen kannst. Wenn ja kannst du ja mal den Code in dem SQL-Feld eingeben und sehen, ob er funktioniert

yaslaw war schneller :D
 
Mich wundert gerade die {} - Klammern. Ich gehe mal davon aus, das es Variablen sind.
Jupp - und hier eine Begründung
Probier mal den folgenden Code und du wirst verstehen
PHP:
$foo = 'foo';
echo "Hallo $foobar<br />";
echo "Hallo {$foo}bar<br />";
Zudem kann innerhalb von {} direkt auf Array-Elemente oder Objekt-Properties zugegriffen werden
PHP:
$array = array('id_0'=>'foo', 'id_1'=>'bar');
$object = (object) $array;
echo "Hallo {$array['id_0']}{$object->id_1}<br />";
//geht sogar mit " anstelle von ' für den Indexname
echo "Hallo {$array["id_0"]}{$object->id_1}<br />";
//und somit kann der Index des Arrays wieder aus einem zusammengesetzten String bestehen
$id = 0;
echo "Hallo {$array["id_{$id}"]}{$object->id_1}<br />";
Und wenn man sich die {} einfach angewöhnt (den falsch sind sie nie), muss man sich keine Gedanken mehr machen, damit solche Fehler wie im ersten Besipiel passeiren.
Zudem ists mMn besser lesbar, aber das ist Geschmacksache
 
Zurück