Announcement

Collapse
No announcement yet.

PHP count zählt falsch?!

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • PHP count zählt falsch?!

    hallo zusammen,

    ich habe folgendes problem:

    ich rufe daten aus einer datenbank mit mysql_fetch_array ab.
    erhalte eine zeile meiner tabelle mit 5 spalten, also 5 feldern.
    diese werte schreib ich in mein array.

    das array zähle ich mit count und gebe es mit einer schleife aus. an sich nichts dramatisches, ist ne simple sache und sieht so aus:

    Code:
    for($i = 0; $i < count($values); $i++)
         echo "$i: $values[$i] ------ <br>";
    count($values) gibt hierbei 10 zurück. logischerweise wird die schleife 10 mal durchlaufen. jedoch kommt es ab dem index 5 zu einem offset-fehler da es den index ja nicht gibt.

    mit foreach ausgegeben erscheint jeder eintrag doppelt. da haut das auch mit dem countergebnis von 10 hin. ich versteh bloß nicht wie es überhaupt dazu kommt, warum die "normale" for-schleife mir nur 5 werte ausgibt und wie ich das vermeiden kann?

    wäre für hilfe dankbar.

    bye, Christian.

  • #2
    mysql_fetch_array() ist eine erweiterte Version von mysql_fetch_row(). Die Daten werden sowohl unter numerischen Indizes des Ergebnis-Arrays abgelegt, als auch unter assoziativen Indizes. Als Schlüssel für die assoziativen Indizes werden die Feldnamen benutzt.
    Zuletzt editiert von Christian Marquardt; 11.02.2010, 07:42.
    Christian

    Comment


    • #3
      und wie erreiche ich nun, dass mir count einen richtigen wert ausgibt? den count-wert prinzipiell durch 2 teilen?!

      und wieso seh ich die ergebnisse nicht doppelt wenn ich es mit der normalen for-schleife ausgeb?

      Comment


      • #4
        und wieso seh ich die ergebnisse nicht doppelt wenn ich es mit der normalen for-schleife ausgeb?
        Weil ein nummerischer Wert kein assoziativer ist
        Christian

        Comment


        • #5
          Hallo,
          Originally posted by Chrischaaan View Post
          und wie erreiche ich nun, dass mir count einen richtigen wert ausgibt? den count-wert prinzipiell durch 2 teilen?!
          du hast nicht verstanden was Christian geschrieben hat oder!?
          mysql_fetch_array() liefert ein Array, in dem jedes Feld ZWEIMAL enthalten ist. Einmal indiziert über die numerische Feldposition und einmal assoziativ mit dem Feldnamen als Key. Wenn du also explizit nur ein indiziertes Array als Ergebnis benötigst, dann solltest du nicht mysql_fetch_array() sondern mysql_fetch_row() verwenden.

          Gruß Falk
          Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

          Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

          Comment

          Working...
          X