sql_fetch_row - ergebnis als array speichern

Begonnen von sidewind, 06 März 2003, 14:04:42

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

sidewind

Hallo Leutz,

mal ne Frage von nem PHP Anfänger :-)

ich hab ne db abfrage mit sql_fetch_row.
mit ner while schleife inklusive list befehl werden die einzelnen werte ausgegeben:

bsp:
  while(list($topicid, $topics) = sql_fetch_row($toplist, $dbi)) {
   if ($topicid==$updatetopic) {
   $sel = "selected ";
}
    echo "<option $sel value=\"$topicid\">$topics</option>\n";
$sel = "";
    }

der code dürfe euch ja bekannt sein  ;)

jetzt bräuchte  ich aber genau die selben werte ($topicid, $topics) nochmal in der selben funktion . finde es aber schwachsinnig deswegen nochmal ne db abfrage zu starten. kann ich das ergebnis von fetch_row nicht einem array speichern diesen so oft auslesen wie ich es benötige?

habs schonmal versucht, komm aber einfach nicht dahinter..

habt ihr ein kurzes codesample?

danke schonmal im voraus!

Micro

Vor die Schleife setzen:
$i=0;

In die Schleife mit einbauen:

   $i++;
   $variable[$i] = array("topicid"=>$topicid,
                  "topics"=>$topics);


Nachfolgender Code zeigt Dir dann den Inhalt an
                  
echo "<pre>";
print_r($variable);
echo "</pre>";


[Editiert am 6/3/2003 von SiteAdmin Micro]

sidewind

Dank Dir Micro,

leider hab ich jetzt irgendwie ne Endlossschleife beim auslesen erzeugt,..

hier nochmal der code komplett:

 
$i = 0;
while(list($topicid, $topics) = sql_fetch_row($toplist, $dbi)) {
   $i++;
   $topic_array[$i] = array("topicid"=>$topicid,"topics"=>$topics);
}

while(list($topicid, $topics) = $topic_array[1] /** bzw $topic_array **/) {
   if ($topicid==$newstopicid) {
   $sel = "selected ";
}
    echo "<option $sel value=\"$topicid\">$topics</option>\n";
$sel = "";
    }


 

Ich bin einfach noch zu dumm für solche arrays...
weiss einer wie ich diesen dann wieder richtig in der while schleife auslese?

danke nochmal!

Micro

Zuerst, das $i++; muss NACH dem zusammensetzen des Arrays eingefügt werden. Tippfehler von mir.

Das auslesen der Arrays is einfacher als man glaubt und sogar viel besser:



for ($i=0; $i < sizeof($topic_array); $i++) {
   echo "<br>".$topic_array[$i]['topicid']." - ".$topic_array[$i]['topics'];
}

sidewind

Dank dir nochmal Micro.

Leider zeigt er mir im folgenden Code nur im Auswahlfenster (<select></select) nur Array[topics] an & nicht die gewünschten Werte

irgendwas fehlt anscheinend noch.
hiernochmal der bisherige code:

 
$toplist = sql_query("select topicid, topictext from ".$prefix."_topics order by topictext", $dbi);
$i = 0;
while(list($topicid, $topics) = sql_fetch_row($toplist, $dbi)) {
   $topic_array[$i] = array("topicid"=>$topicid,"topics"=>$topics);
   $i++;
}

for ($i=0; $i < sizeof($topic_array); $i++) {
if ($topic_array[$i]['topicid']==$newstopicid) {
    $sel = "selected ";}
echo "<option $sel value=\"$topic_array[$i]['topicid']\">$topic_array[$i]['topics']</option>\n";
$sel = "";
}


ich komm einfach nicht dahinter...  :)



[Editiert am 9/3/2003 von sidewind]

jubilee

Hallo !
Schon einmal so versucht ??
 

$toplist = sql_query("select topicid, topictext from ".$prefix."_topics order by topictext", $dbi);

$i = 0;

while(list($topicid, $topics) = sql_fetch_row($toplist, $dbi)) {

   $topic_array[$i] = array("topicid"=>$topicid,"topics"=>$topics);

   $i++;

}



for ($i=0; $i < sizeof($topic_array); $i++) {

if ($topic_array[$i]['topicid']==$newstopicid) {

    $sel = "selected ";}

echo "<option $sel value=".$topic_array[$i]['topicid'].">".$topic_array[$i]
['topics']."</option>\n";

$sel = "";
}

 
MfG
jubilee


[Editiert am 9/3/2003 von SiteAdmin jubilee]

[Editiert am 9/3/2003 von SiteAdmin jubilee]

Micro

immer(!) doppelte Anführungszeichen verwenden bei solchen Ausgaben

if ($topic_array[$i]['topicid']==$newstopicid) {
    $sel = "selected ";}
echo "<option $sel value=\"".$topic_array[$i]['topicid']."\">".$topic_array[$i]['topics']."</option>\n";
   $sel = "";
}