simon: problem mit array zur variablenausgabe

Ich hab folgende schleife geschrieben um bilder die in
einem array gespeichert sind auszugeben...

for($i=0;$i<$cnt-1;$i++)
{
  if( $daten[$i][0] != "")
  {
    echo "<d> \n";
    echo "  <a href="javascript:open_img('".$daten[$i][0]."_kl.jpg',193,400);">".$daten[$i][0]."</a> \n";
    echo "  <a href="config.php?del=1&id=".$i."">Löschen</a> \n";
    echo "  <pre> \n";
    echo "    Bildunterschrift: ".$daten[$i][1].      " \n";
    echo "    Bildtext:        ".$daten[$i][2].      " \n";
    echo "    Kategorie:        ".$cat[$daten[$i][3]]." \n";
    echo "  </pre> \n";
    echo "</d>  \n\n";
  }
}

Die ausgabe sieht nun so aus...

bild2 Löschen

Bildunterschrift: comment2.1
    Bildtext:        comment2.2
    Kategorie:        *1

bild1 Löschen

Bildunterschrift: comment3.1
    Bildtext:        comment3.2
    Kategorie:        Cat2

Nun die frage wie kommt es das nur beim letzten eintrag
die kategorie angezeigt wird???
(*1 hier sollte eigentlich Catx stehen.)

Online unter: www.moks-artvan.de/gal/config.php
Script:      www.moks-artvan.de/gal/config.txt

  1. Nun die frage wie kommt es das nur beim letzten eintrag
    die kategorie angezeigt wird???
    (*1 hier sollte eigentlich Catx stehen.)

    hm, vermutlich versuchst du gerade, sowas wie ne bildergalerie zu bauen, richtig?

    hm, also bis dato konnte ich nur herausfinden, dass die übergebenen daten von deiner pictures.dat-datei als strings und nicht etwa als values aka integer-zahlenwerte eingelesen werden.

    ein versuch mit strval($daten[$i][3]) schlug leider fehl.
    vielleicht findet sich nachher noch was.

    cu, w0lf.

    1. ein versuch mit strval($daten[$i][3]) schlug leider fehl.
      vielleicht findet sich nachher noch was.

      also bei mir funktioniert's jetzt.

      folgende dinge habe ich ersetzt:

      • statt der do-while-schleife am anfang gibts jetzt eine for-schleife in der form: for($cnt = 0; $cnt < sizeof($picfile); $cnt++)

      • statt dem $daten[$cnt] = $bild = ... durchpipen hab ich selbiges entfernt

      • $daten[$i][3] ist eine STRING-, keine INTEGER-variable - deswegen hab ich das php-handbuch ein bisserl zu rate gezogen, und deswegen wird $daten[$i] erst in eine extra variable ($v) entleert und dann mit 0 addiert: $v[3] += 0;

      • dadurch ist $v[3] dann automatisch eine integer-variable (dank php)

      das komplette script mit allen änderungen (aber auch hässlichen debug-tests) findest du hier:

      http://www.f2w.de/prjs/selfhtml_array_prob2.phps

      die angesprochene hilfreiche seite im php-handbuch gibts hier:

      http://de.php.net/manual/de/language.types.type-juggling.php

      cu, w0lf.

      1. Hi,

        • $daten[$i][3] ist eine STRING-, keine INTEGER-variable - deswegen hab ich das php-handbuch ein bisserl zu rate gezogen, und deswegen wird $daten[$i] erst in eine extra variable ($v) entleert und dann mit 0 addiert: $v[3] += 0;

        Hast Du mal "(int)$var" versucht, um explizit den Varaiablentyp Integer festzulegen?

        Gruesse  Joachim

        1. Vielen dank, ich teste gleich mal ob alles so funktioniert wie ichs
          brauche...
          Und vielen dank nochmal für die optimierung der schleifen zum einlesen der dateien.