Was mach ich bei den Arrays falsch?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Was mach ich bei den Arrays falsch?

    Hi!
    Ich habe ein kleines Problemchen mit assoziativen arrays.
    Manchmal werden sie einfach nicht erkannt und ich muss mit dem Index auf die arrays zugreifen, aber hier erstmal etwas code:
    PHP-Code:
    ...
    $sql "SELECT id, ClanID, LigatypID, Zugelassen FROM $dbLigaanmeldungen ORDER BY id ASC";
    $result mysql_query($sql);

    while (
    $data mysql_fetch_array($resultMYSQL_NUM)) 
    {
       
    $ClanInfo GetClanInfo($data['ClanID']); // <- hier ist das Problem
       
    ...

    $data ist ja das array, das durch mysql_fetch_array erzeugt wurde. Normalerweise wird dann ein assoziatives array erstellt, dass die selben namen wir die Tabellenspalten hat, die man im SELECT definiert hat. Versuche ich jetzt auf $data['ClanID'] zuzugreifen, erhalte ich einen leeren String.

    Ich muss dann anstatt $data['ClanID'] $data[1] angeben, da ClanID das zweite Element in der SELECT abfrage ist. Es funktioniert zwar, aber ich finde es unübersichtlicher, wenn ich in zwei monaten nochmal über den Code schauen sollte. Was mache ich falsch?

  • #2
    aus dem Handbuch:

    "Verwenden Sie MYSQL_NUM erhalten Sie nur numerische Indizes"

    Kommentar


    • #3
      Achso, ich dachte man braucht den Parameter wenn man mehr als ein Ergebnis einer SQL abfrage erwartet, tja man lernt nie aus, danke!

      PS: Kann mir jemand sagen, wozu das gut sein soll?

      Kommentar


      • #4
        Wenn ich das $result als TABLE schreiben will, UND mit mysql_field_name und mysql_num_fields die Feldnamen als TH ausgeben. Tabellenkopf und Inhalt passen dann, weil gleicher Index.

        Man kann die Feldnamen auch aus $row holen, sofern die Anzahl $rows>=1 und muss die erste $row separat behandeln. Also nicht immer und komplizierter.

        Kommentar


        • #5
          @vierteln: Nach dreimaligem Lesen glaube ich zu wissen, was du meinst, habe aber so meine Zweifel, ob ThePro damit was anfangen kann.

          Kommentar


          • #6
            echo <table>
            echo <tr>
            for (i=0; i<mysql_num_fields($rs); i++) echo <th> mysql_field_name($rs,i)</th>

            while($row=mysql_fetch($rs,MYSQL_NUM))
            ..echo <tr>;
            ..for (i=0; i<mysql_num_fields($rs); i++) echo <td> $row(i)</td>

            echo </table>

            So habe ich es mir als Skizze gedacht. Es steht nicht in php-tags, weil die Syntax nicht stimmt. PS $rs = $result_set.

            Kommentar

            Lädt...
            X