mysql_fetch_???



  • Moin zusammen,

    habe kurz ne Frage.

    Normalerweise benutze ich "mysql_fetch_assoc" oder "mysql_fetch_array" um meine Daten in einer Variablen zu speichern.

    Nun gibt es aber n Problem... urplötzlich funktionierte das nicht mehr (bei einer Abfrage). Ich musste nun etwas rum basteln:

    order1="SELECTresNameFROMtblresources";order1="SELECT resName FROM tbl_resources"; result_tmp =mysql_query(order,order,dbHdn);
    resNames=array();for(resNames = array(); for(i=1;i<=14;i<=14;i++)
    {
    resNames[i]=mysql_fetch_row($result_tmp);
    }

    Nun kann ich zwar meine Daten auslesen aber natürlich ist das unschön, da mein Array doppelt verschachtelt ist. z.B.: "[12]=>[0]=>String", aber alles andere liefert mir nur genau einen Datensatz (obwohl im result_tmp mehr drin sind!)

    Ich habe da eine kleine vermutung aber sicher bin ich mir ned: Ist es möglich das ich schon zuviele Arrays und Variablen habe? Gibt es eine Limite für die Grösse und Anzahl von Arrays? Oder hab ich irgendwas falsch gemacht(die andern Arrays funktionieren ja eigentlich alle nach dem assoc Schema... ohne Probleme)

    btw. alles was mit der DB zu tun hat ist okay. nur die mysql_fetch-Dinger funzen ned.

    Danke...



  • Du verwendest ja auch mysql_fetch_row anstatt mysql_fetch_array Oo
    Außerdem schreibst du nach $order1 und verwendest $order 😉

    Was genau möchtest du denn tun?



  • sry, das mit dem Order hab ich nur hier im Forum nicht nachgeführt, wollte nicht verwirren und nun ists noch schlimmer 🙂 Einfach ignorieren...

    Nur noch mysql_fetch_row liefert mir daten (wie die beschriebene Lösung)

    Aber eigentlich müsste das doch mit mysql_fetch_array gehen.
    Tut es aber nicht.
    Es wird mir nur das erste Element in die Variable gespeichert und das wars. Obwohl die Resultat-Tabelle in meinem Falle 14 Einträge hat.



  • Du scheinst da etwas zu verwechseln. mysql_fetch_array holt alle Spalten der nächsten Zeile aus der Ergebnistabelle. Deine Ergebnistabelle hat 14 Zeilen mit je einer Spalte, also muss mysql_fetch_array auch 14 Mal aufgerufen werden.



  • $result = mysql_query($abfrage) or die ("Fehler".mysql_errno($db)." : ".mysql_error($db)."<br>");
    while($row = mysql_fetch_array($result, MYSQL_ASSOC))
    {
    	for($i=0;$i<count($row);$i++)
    	{
    		echo "<a href='index.php'>".$row[mysql_field_name($result,$i)]."</a><br>------------------------------------------<br>";
    	}
    }
    

    Ich hoffe du kannst etwas mit dem Codeschnipsel anfangen 😉



  • Ahhha... das wars also. Ich hab gedacht dass fetch_array alle Tupel auf einmal abholt nicht nur die Attribute eines Eintrages.
    Und ja, ich kann was mit dem Code-Schnippel anfangen (copy-paste :))

    Okay, danke an alle für den Hinweis.


Anmelden zum Antworten