anpera.net
http://anpera.homeip.net/phpbb3/

Problem beim ausgeben von SQL-abfrage in array();
http://anpera.homeip.net/phpbb3/viewtopic.php?f=34&t=5398
Seite 1 von 1

Autor:  daiisu [ So 24 Jun, 2012 10:13 ]
Betreff des Beitrags:  Problem beim ausgeben von SQL-abfrage in array();

Hallo,

ich bin seid langem mal wieder, in die Versuchung gekommen, etwas zu schreiben.
dabei habe ich das Problem, das die Daten die ich per SQL aus der Datenbank auslese, irgendwie nicht in den array(); eingearbeitet werden..

hier mal der kleine Code

PHP:
$sql2 = "SELECT id, name FROM tabelle ORDER BY id";
$res2 = db_query($sql2);

$loc = array();
$ic = 1;
while ($rowloc = db_fetch_assoc($res2)){
$loc[$ic] = $rowloc[name];
$ic++;
}
output("".$loc."");


und später sollte es dann in einem output wiedergegeben werden:

PHP:
output("".$loc[$row['loc']]."");



Mittlerweile habe ich schon so einiges Probiert und auch per google nach möglichen Lösungen gesucht, jedoch bin ich dabei nicht findig geworden.

Ich hoffe das ich hier wie früher auf tatkräftige, freundliche Hilfe treffe.

Lg, Daiisu~

Autor:  Shaddar [ So 24 Jun, 2012 10:34 ]
Betreff des Beitrags:  Re: Problem beim ausgeben von SQL-abfrage in array();

Ich hab deinen Code einfach mal ausprobiert und als Beispiel die Accountstabelle ausgelesen, funktioniert bei mir soweit alles ohne Probleme, die Werte werden korrekt in das Array geschrieben. Das einzigste Manko war die Ausgab.

$this->bbcode_second_pass_code('', '$sql2 = "SELECT acctid, name FROM accounts ORDER BY acctid";
$res2 = db_query($sql2);

$loc = array();
$ic = 1;
while ($rowloc = db_fetch_assoc($res2)) {
$loc[$ic] = $rowloc['name'];
$ic++; }
output(dump_item($loc));')

Autor:  daiisu [ So 24 Jun, 2012 11:01 ]
Betreff des Beitrags:  Re: Problem beim ausgeben von SQL-abfrage in array();

hmmm.... na ok, dann schonmal danke für die Überprüfung :)

Dann schau ich nochmal in die Datenbank ob die Tabelle irgendwo
vielleicht nich sauber is oder ich da drin was falsches erstellt habe ^^

Thx & Lg, Daiisu~

Autor:  Bathory [ So 24 Jun, 2012 20:34 ]
Betreff des Beitrags:  Re: Problem beim ausgeben von SQL-abfrage in array();

$this->bbcode_second_pass_code('', '
$loc = array();
[...]
output("".$loc."");')


Das gibt aus "Array".

Entweder du dumpst das array komplet (var_dump,print_r, usw.) oder du gibst es über eien Schleife aus :)

Autor:  MySql [ Fr 13 Jul, 2012 06:45 ]
Betreff des Beitrags:  Re: Problem beim ausgeben von SQL-abfrage in array();

Ich habe mir Deinen Code im ersten Beitrag mal angesehen und frage mich, wieso Du zwei Arrays initiierst? Mit db_fetch_assoc wird das erste Array erstellt und im Nachhinein lädst Du die Daten noch mal in ein weiteres Array ($loc). $loc ist hier demnach total überflüssig und kann somit 'gelöscht' werden. Anstelle von $loc kannst Du schreiben:

$this->bbcode_second_pass_code('', 'output($rowloc['name'].'`n');')

Bitte beachte, dass Du den Wert innerhalb der eckigen Klammern immer mit Single-Quotes versiehst, da im Hintergrund somit ein Fehler definiert wird der durch error_report allerdings nicht sichtbar ist.

Desweiteren kann dein Array auch gar nichts ausgeben, da Du dem Array-Index jeweils eine Zahl zuweißt, diesen aber mit dem entsprechendem 'loc' auslesen willst.

$this->bbcode_second_pass_code('', '$loc[$ic] = $rowloc[name];')

-

$this->bbcode_second_pass_code('', 'output("".$loc[$row['loc']]."");')

$row['loc'] müsste hier der entsprechende numerische Wert des Indexes sein. (1,2,3,4.. etc.)

Da Du die Anzahl der Indexe allerdings nicht aus der Luft greifen kannst, empfiehlt es sich hier die Funktion 'count' zu benutzen. (Wie der Name schon verrät, zählt (Counter) die Funktion count die Elemente eines Arrays.)

$this->bbcode_second_pass_code('', '$arr = array( 0 => 'ANPERA', 1 => 'Dragonprime', 2 => 'LotGD', 3 => 'Alice'); # Dein Chatbot ist nicht in Vergessenheit geraten, Anp.
$myCounter = count($arr);

echo $myCounter; # Oder echo count($arr);')

Ausgabe wäre 4. Da wir das Array aber mit einer null begonnen haben und die Werte auch ausgeben wollen, ziehen wir immer einen bestimmten Wert von den numerischen Indexen ab.

(Benutze oben genanntes Beispiel.)
$this->bbcode_second_pass_code('', '$i = 0;
for( $i = 0; $i < $myCounter; $i++ ){

echo $arr[$i-1].'<br />';

}')

Alternativ kannst Du das Array auch durch eine foreach Schleife ausgeben lassen.

$this->bbcode_second_pass_code('', 'foreach( $arr as $key => $val ) {

echo $key.' ist gleich '.$val.'<br />';

}')

Hab bestimmt nen Fehler reingehauen, so müde wie ich bin. :D

Seite 1 von 1 Alle Zeiten sind UTC + 1 Stunde
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/