MyBB.de Forum

Normale Version: [Anfänger] Array in mehrere varialben Schreiben
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi,

ich habe eine Seite, in der ich einen Teil des Usernamens eingebe und dann sollen alle IDs ausgespuckt werden:

SQL:
PHP-Code:
$username $_POST["username"];


$qry_usercompare "SELECT ".TABLE_PREFIX."users.*
FROM "
.TABLE_PREFIX."users
where "
.TABLE_PREFIX."users.username LIKE '%$username%'";
$result_usercompare mysql_query($qry_usercompare); 

Ausgabe:
PHP-Code:
echo "<form action=\"compare_uebereinstimmungen_result.php\" method=\"post\">";

while(
$usercompare_row mysql_fetch_object($result_usercompare))

echo 
"<input type=\"checkbox\" name=\"checkboxuser[]\" value=\"$usercompare_row->uid\"> $usercompare_row->uid";
}

echo 
"<input type=\"submit\" value=\"markierte User vergleichen\"></form>"

Jetzt kann man diverse IDs anhaken (Checkboxfelder) und kommt auf die Seite compare_uebereinstimmungen_result.php auf der ich das Array mit $_POST['checkboxuser'] abrufe.

Meine Frage:
Wie schreibe ich die Werte im Array jetzt am besten in einzelne Variablen, die ich dann in einem SELECT benutzen kann? Die Anzahl der Variablen ist ja immer unterschiedlich zur Menge der angehakten Checkboxen?

Gruß
Wenn du Variablen ungeprüft in Queries einbaust, dann ist das eine Sicherheitslücke. Schau dir mal escape string oder prepare an.

Wenn du dich nur für ein bestimmtes Feld interessierst solltest du auch nur dieses abfragen, also SELECT uid statt SELECT *.

Zitat:Wie schreibe ich die Werte im Array jetzt am besten in einzelne Variablen, die ich dann in einem SELECT benutzen kann? Die Anzahl der Variablen ist ja immer unterschiedlich zur Menge der angehakten Checkboxen?

Gar nicht. Wenn du ein Array bekommst arbeitest du mit dem Array selbst.
1. Select * ist nur zum testen, wenn alles läuft wird es durch die benötigten Felder ersetzt Wink

2. wie schreibe ich dann den Select das er "SELECT * FROM users WHERE uid = ARRAY(1 bis X)" macht und eben alle Datensätze ausgiebt die ich vorher angehakt hab?

King Louis

Am besten lässt du das ganze durch eine foreach Schleife laufen.

Falls das ganze übrigens in MyBB eingebunden werden soll, empfehle ich dir $db zu nutzen.
MySQL kennt dafür "uid IN (1,2,3,4,5,...)".
Danke Stefan, das wars Smile

Array $userid habe ich jetzt mit $out = implode(",", $userid) umgewandelt und in meinen SQL mit where ".TABLE_PREFIX."users.uid IN ($out) eingebaut