Explode mit MySQL Datenbank will nicht

  • Themenstarter Themenstarter DEDEX7200Pro
  • Beginndatum Beginndatum
D

DEDEX7200Pro

Hallo Leute, ich verwende gerade diesen Script

PHP:
<?php
mysql_connect("localhost", "admin" , "******");
mysql_select_db("database");

$sql="SELECT * FROM tabelle";  
$erg = mysql_query($sql);
while ($row = mysql_fetch_array($erg)) {
$id = $row['id']."||";
print_r (explode("||", $id));
}

mysql_close();
?>

Wenn ich echo $id mache, dann kommt bei mir folgendes raus:
Code:
id1||id2||id3
Da ich des einzeln gerne in ein array hätte, wollte ich dies mit explode machen. Da dies mit meinen Script nicht klappte, habe ich mal print_r verwendet.

Mein Ergebnis:
Code:
Array ( [0] => id1) Array ( [0] => id2 ) Array ( [0] => id3 )

Ich möchte aber, dass dies so aussieht:

Code:
Array ( [1] => id1  [2] => id2  [3] => id3 )

Was muss ich machen?
 
Schreibe das Script doch ohne den Umweg über explode:

PHP:
<?php
mysql_connect("localhost", "admin" , "******");
mysql_select_db("database");

$sql="SELECT * FROM tabelle";  
$erg = mysql_query($sql);
$results = array();
while ($row = mysql_fetch_array($erg)) {
  $results[] = $row["id"];
}
var_dump($results);
mysql_close();
?>
 
Das echo von $id kenn bei deinem Code nicht sein. Du hängst dahinter '||' an.
Es müsste also so ausehen
Code:
id1||id2||id3||

Aber bist du sicher dass das Feld id eine liste beinhaltet?
Die ausgabe sieht eher aus als on $row['id'] jeweisl eine ID beinhaltet. Dein print_r() ist innerhalb der Schleife und gibt darum pro Durchgang einen Array aus.

Also, was genau steht in $row['id']
 
hey, ich hab jetzt meine lösung gefunden:

<?php
mysql_connect("localhost", "admin" , "******");
mysql_select_db("database");

$query = mysql_query(" SELECT id, idsFROM tabelle ");
while ($row = mysql_fetch_array($query,MYSQL_ASSOC)) {
$array[$row['id']] = $row['ids'];
}

mysql_close();
?>
 
Wofür nutzt du denn die Felder id und ids? Außerdem muss zwischen ids und FROM noch ein Leerzeichen ;) MYSQL_ASSOC ist übringens nicht notwendig, da der Parameter standardmäßig auf MYSQL_BOTH steht, sodass du auf assoziative arrays zugreifen kannst.
 
explode gibt nen Array zurück...

z.b.

PHP:
$string = "1||2||3";
$string = explode("||", $string);

echo $string[0] . " : " . $string[1] . " : " . $string[2]; // ergibt dann 1 : 2 : 3

Sollte eigentlich funktionieren. jedenfalls gehts bei mir. Auch mit mysql Datenbankausgaben

LG Manuel
 
Zuletzt bearbeitet:
Zurück