Hallo, Gast! (Registrieren)

Letzte Ankündigung: MyBB 1.8.38 veröffentlicht (30.04.24)


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste
[Anfänger] Array in mehrere varialben Schreiben
#1
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ß
Zitieren
#2
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.
Zitieren
#3
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?
Zitieren
#4
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.
Zitieren
#5
MySQL kennt dafür "uid IN (1,2,3,4,5,...)".
[Bild: banner.png]

Bitte die Foren-Regeln beachten und im Profil die verwendete MyBB-Version angeben.
Zitieren
#6
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
Zitieren


Möglicherweise verwandte Themen…
Thema Verfasser Antworten Ansichten Letzter Beitrag
  MySQL Abfrage mit Array-Fkt.? Jockl 3 2.285 16.06.2008, 15:49
Letzter Beitrag: Jockl