MyBB.de Forum
[Anfänger] Array in mehrere varialben Schreiben - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html)
+--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html)
+--- Thema: [Anfänger] Array in mehrere varialben Schreiben (/thread-25851.html)



[Anfänger] Array in mehrere varialben Schreiben - Speil - 15.06.2012

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ß


RE: [Anfänger] Array in mehrere varialben Schreiben - frostschutz - 15.06.2012

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.


RE: [Anfänger] Array in mehrere varialben Schreiben - Speil - 15.06.2012

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?


RE: [Anfänger] Array in mehrere varialben Schreiben - King Louis - 15.06.2012

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.


RE: [Anfänger] Array in mehrere varialben Schreiben - StefanT - 15.06.2012

MySQL kennt dafür "uid IN (1,2,3,4,5,...)".


RE: [Anfänger] Array in mehrere varialben Schreiben - Speil - 15.06.2012

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