Variable Splitten

CuL

Grünschnabel
hi ich hab mal eine Frage zum Splitten von Variablen. Hab mir zwar andere Tutors durchgelesen aber net richtig verstanden :(

also mein Problem..

ich habe folgende Variable:
$var = "1; 2; 3; 4;";


nun möchte ich diese so splitten das ich eine Datenbankabfrage vornehmen kann, in der ich mir alle Zeilen ausgeben lasse, wo die Spalte id gleich einer der zahlen aus der Variable ist.

kann mir da irgendwer helfen?
 
Zuletzt bearbeitet:
Hi!

Guck dir mal die Funktion explode und die foreach-Schleife an.

Mit ersterem zerteilst du deinen String anhand des Semikolons und mit dem zweiten kannst du alle Elemente des neuen Arrays durchlaufen und entsprechend in deinen Query einfügen.

Mamphil
 
Hm also mit der Schleife komm ich irgendwie net zurecht.

ich hab jetzt folgendes:

$var = "1;2;3;"

$id = explode(";", $var);

aber das mit der Schleife versteh ich net so richtig, vielleicht liegts daran, dass ich net so überagend Englisch kann :(
 
Hi!

Dann wähle doch einfach im obigen Drop-Down-Menü "view the German version of this page" ;) Oder hier: http://de3.php.net/manual/de/control-structures.foreach.php

Du hast deinen MySQL-Query zum Beispiel in der Variable $sql:
PHP:
$var = '1;2;3;';
$id = explode(';', $var);
$sql = "SELECT * FROM `meineTabelle` WHERE 0=1";
foreach ($id as $singleId)
  $sql .= " || `id`='".$singleId."'";
Dann kannst du den Query durch mysql_query jagen...

Mamphil
 
hm sry aber irgendwie scheiter ich.

warum geht das:
foreach (array(1, 2, 3, 4, 5) as $v) {
echo "$v<br>";

aber das nicht:
$var ="1, 2, 3, 4, 5";
foreach (array($var) as $v) {
echo "$v<br>";
 
Hi!

Hast du mein Beispiel mal ausprobiert? Häng noch ein
PHP:
echo $sql;
dran - dann kriegst du auch eine Ausgabe ;)

Dein Fehler im zweiten Versuch (das, was nicht geht) ist, dass du statt explode einfach nur array geschrieben hast.

Probier mal das aus:
PHP:
$var='1,2,3,4,5,6,7,8';
foreach(explode(',', $var) as $id)
  echo $id.'<br>';

// oder
foreach(explode(',', $var) as $id) {
  echo $id.'<br>';
  }

Mamphil
 
Interessant...

Du weißt aber schon, wie man eigentlich solche Bezüge in einer Datenbank abbildet?
Dazu nimmt man eine "n:m"-Tabelle: Eine Spalte enthält die Id der einen Tabelle A, eine zweite die Id der zweiten Tabelle B. Darüber können jeder Id aus A beliebig viele Ids aus B zugeordnet werden und umgekehrt.

Mamphil
 
Zurück