Datenbank objektorientiert einlesen, und 2 id's auslassen?


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Loddar1

Erfahrenes Mitglied
Mahlzeit,
Wenn ich meine Datenbank auslese, werden ja alle einträge ausgelesen.
Jetzt möchte ich aber die erste id und die letzte id nicht angezeigt bekommen, und kriege prompt eine Fehlermeldung.

Das Objektorientierte Programmieren macht mir doch noch ganz schöne schwierigkeiten.

Hier mal mein Code:
PHP:
$stmt = $mysqli->prepare('SELECT id, name, ziel FROM table ORDER BY id ASC'); // so funktioniert es normal
$stmt = $mysqli->prepare('SELECT id, name, ziel FROM table NOT id=1 ANDNOT id 56 ORDER BY id ASC'); // so dachte ich es funktioniert.
Datenbankverbindung habe ich weggelassen.
Kann mir einer helfen wie diese anfrage gestellt werden muß damit es funktioniert?

Hier nochmal der auslesecode:
PHP:
$stmt = $mysqli->prepare('SELECT id, name, ziel FROM table NOT id=1 ANDNOT id=56 ORDER BY id ASC');
$stmt -> execute();
$stmt -> store_result();
$stmt -> bind_result($id, $name, $ziel);

while ($stmt->fetch()) {
echo'meine Ausgabe';
}
Danke schon mal im voraus Loddar1
 

Bratkartoffel

gebratene Kartoffel
Premium-User
Hi,

deine Syntax ist etwas falsch.
SELECT (Felder) FROM (Tabelle) WHERE (Feld) (Operator) (Wert)

In deinem Fall willst du also eigentlich folgendes schreiben: (ungetestet)
SQL:
SELECT id, name, ziel FROM table WHERE id != 1 AND id != 56 ORDER BY id ASC;
Grüsse,
BK
 

Yaslaw

n/a
Moderator
SQL:
SELECT id, name, ziel FROM table NOT id=1 ANDNOT id 56 ORDER BY id ASC
Das hat nix mit Objekten zu tun sondern mit Fehlerhaftem Code. ANDNOT gibt es nicht. WHERE fehlt ebenfalls
Aber wenn du mehrere IDs prüfen willst, verwedne IN()
SQL:
SELECT id, name, ziel FROM table where NOT id IN (1, 56) ORDER BY id ASC
 

Loddar1

Erfahrenes Mitglied
Danke Yaslaw, habe es mal kontrolliert es ging where Not und dann ANDNOT
aber Deine Version ist genau das was ich gesucht habe.
Nochmals vielen Dank
Gruß Loddar1
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…