Unknown column 'Array' in 'where clause'

Zero2000

Erfahrenes Mitglied
Hallo

Bin gerade an einer spezialisierten Lagerverwaltung. Um jetzt z.B. einen Lieferschein zu erstellen, der alle relevanten Posten enthält, lasse ich mir alle Posten auf einer Seite anzeigen die mit dem heutigen Ausgangs-Datum versehen sind.
In der Liste hat jeder Posten eine checkbox mit value=$id und name=status[]

Wenn ich nun 2 oder 3 Posten übernehmen will klicke ich eben 2 oder 3 checkboxen an und gehe auf den button "Übernehmen"
Dadurch komme ich auf eine weitere Seite, in der mir ein Lieferschein angezeigt wird mit den übernommenen Posten.

Leider wird mir entweder nur ein Posten übergeben oder ich bekomme den Fehler: Unknown column 'Array' in 'where clause'

Meine Anfrage an die DB auf dem Lieferschein sieht so aus:
PHP:
$y = count($status);
   for($x=0;$x<$y;$x++)
   {
   $Result = mysql_query("SELECT * FROM ls_daten WHERE id = $status[$x]");
   }
Ich habe in einer anderen Datei diese Anfrage benutzt um Datensätze zu löschen und das ging ja. Er löschte alle die ich angeklickt habe.

Mh... Danke schonmal im vorraus für Eure Hilfe. Maik
 
Hi,

probier mal:
PHP:
'SELECT * FROM ls_daten WHERE id = '.$status[$x]

Ich würde wohl allerdings statt einer Reihe Abfragen hintereinander, mir eine zusammenbauen, die alle gewünschten ID-Werte abfragt:
PHP:
$filter = '';
for ($i=0; $i<count($status); $i++) {
    $filter.= $status[$i];
    if ($i <count($status - 1)) $filter.= ',';
}
$query = 'SELECT * FROM ls_daten WHERE id IN('.$filter.')';
(aus dem Stehgreif, daher u.U. fehlerhaft)

Was schneller ist, müsstest Du ausprobieren.

Gruß
.
 
Ich habe nun beide Methoden probiert, aber ich komme nicht weiter. Er sagt mir jedesmal Unknown column 'Array' in 'where clause'
Ich werde einfach die Dateien nochmal neu erstellen und erstmal einfach gestalten, also nur die Übergabe des Arrays an meine Abfrage.

Ich melde mich wie es ausgegangen ist.

MfG Maik
 
Die sql-Fehlermeldung Unknown column 'Array' in 'where clause' deutet eher daraufhin, dass du anhand einer Spalte "Array" auswählen lässt, die es in der abgefragten Tabelle gar nicht gibt. Also untersuche noch mal deine Where-Klausel.
 
Genauer gesagt: Die Fehlermeldung deutet darauf hin, dass mindestens eine der Variablen, die Du in die Abfrage einbaust, vom Typ Array ist.

Lass Dir wie gesagt die Anfrage doch einmal ausgeben und poste sie hier.

Gruß
.
 
In der Liste hat jeder Posten eine checkbox mit value=$id und name=status[]
Die Variable $status ist vom Typ array. In dem Array sammle ich ja die id's der Datensätze die mir auf der nächsten Seite angezeigt werden sollen.

Wie schon gesagt ich mache das selbe mit löschen von Datensätzen da klappts. Nur nicht mit dem Anzeigen.
 
Probier mal Folgendes:
PHP:
<?php

	$query = '
		SELECT
		        *
		  FROM
		        `ls_daten`
		  WHERE
		        `id` IN ("'. implode('", "', array_map('mysql_real_escape_string', $_REQUEST['status'])) .'")
		';
	$result = mysql_query($query)
		or die(mysql_error());

?>
Je nach Anfrage-Methode sollte das $_REQUEST noch durch $_POST oder $_GET ersetzt werden.
 
Dann versuch´s doch mal auf die einfache Variante: lies das Array und lasst dir vor dem SELECT erst mal ausgeben, wonach du in der WHERE-Klausel überhaupt suchst.
 
Zurück