IDs in Array schreiben, per Post senden und anschließend abfragen

qsrs

Erfahrenes Mitglied
Hallo,

ich lese eine DB-Tabelle aus und gebe die Werte tabellarisch aus. Eine Checkbox wird pro Datensatz ebenfalls ausgegeben. Der Checkbox möchte ich die ID zuweisen, so dass ich beim Senden mit Post im zweiten Script die IDs für eine weitere Abfrage verwenden kann. Die Checkbox sieht dann so aus:
PHP:
<input name=\"select[]\" type=\"checkbox\" id=\"select[]\" value=\"".$array[$i][id]."\">
Jetzt werden die Daten per Post an das zweite Script übergeben, welches dann so aussieht:
PHP:
 for ($i = 0; $i < count ($select); $i++) {
$sql3 = "SELECT * FROM `$dbtable5` WHERE `id` = '".$id[$select[$i]]."'"; 
$query3 = mysql_query ($sql3, $dbconnect);
$array3 = mysql_fetch_array ($query3);
$path .= "files/".$array3[$maincategory]."/".$array3[$subcategory]."/".$array3[$file_name].",";
}
Die Werte in $path sind jedoch leer.

Was mache ich falsch?
 
  1. Machst Du viel zu viele Abfragen.
  2. Ist $select ein Array, welches alle nötigen IDs enthält.
  3. Hast Du $path vermutlich nicht vor der Schleife deklariert.
  4. Vielleicht stehen in $id nicht die richtigen Zahlen.
  5. Oder Dein Query ist falsch oder liefert nicht die gewünschten Felder.
  6. Verwendest Du bei der Formularausgabe die Konstante id, welche vermutlich nicht deklariert wurde. Besser ist, Du verwendest den String 'id'.
  7. Kann Dir keiner sagen, ob in $array[$is]['id'] die richtigen Daten stehen.
PHP:
$sql3 = "SELECT * FROM `$dbtable5` WHERE `id` IN ("
    .implode(',',$select[$i])
    .")";
$query3 = mysql_query ($sql3, $dbconnect);
$path='';
while ($array3 = mysql_fetch_array ($query3)) {
    $path .= "files/"
        .$array3['maincategory']
        ."/"
        .$array3['subcategory']
        ."/"
        .$array3['file_name']
        .",";
}

Gruß hpvw

EDIT: Auf Grund des folgenden Posts von duckhunter habe ich die $maincategory etc. auch mal korrigiert. :-(
 
Zuletzt bearbeitet:
Hallo

erstmal hast du einige Fehler, auf Arrays mit mysql_fetch_array
(dein Code: $array3[$maincategory]) greift man so zu: $array3["maincategory"].

Hab dir mal deinen Code etwas verändert, kannst es ausprobieren bei mir hat's geklappt

PHP:
<?if(!isset($submit)){?>
<form action="test.php" method="post">
<?
$sql = "SELECT * FROM `$dbtable5`";
$result = mysql_query($sql);
while($row = mysql_fetch_array($result)){?>
   <input name="select[]" type="checkbox" id="select[]" value="<? echo $row["ID"]; ?>"><? echo $row["filename"]; ?><br />
<?}?>
<input type="submit" name="submit" value="Submit"/>

<?
}
else{
	for ($i = 0; $i < count($select); $i++) {
  $sql3 = "SELECT * FROM `$dbtable5` WHERE `id` = '".$select[$i]."'";
  $query3 = mysql_query ($sql3 );
  $array3 = mysql_fetch_array ($query3);
  $path = "files/".$array3["maincategory"]."/".$array3["subcategory"]."/".$array3["filename"];
	echo $path."<br>";
  } 
}
?>

Hinweis: hab grad gesehen dass bei mir "filename" heißt und bei dir file_name
 
Zuletzt bearbeitet:
Vielen Dank an euch beide. Das geht natürlich nicht: ".$array3[$maincategory]." - habe ich völlig übersehen.
 
Zurück