[PHP5] MySQL Array in Php ausgeben

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

  • [PHP5] MySQL Array in Php ausgeben

    Hi!

    Hab mal wieder ein kleines bis mittleres Problem.

    Ich möchte in der Datenbank meine News-Einträge speichern (funkt auch) und diese dann vollständig nach datum sortiert ausgeben.

    dazu der Code:
    PHP-Code:
    //Erstellen der Abfrage
    $db_newsabfrage mysql_query("SELECT * FROM hp_news ORDER BY Date DESC");
    //Umwandlung in ein Array
    $t_newsabfrage mysql_fetch_array($db_newsabfrageMYSQL_ASSOC) or die("Anfrage fehlgeschlagen: " mysql_error()); 
    mittels
    PHP-Code:
    echo $t_newsabfrage["Date"] . "<br />"
    funktioniert es nun einwandfrei das Datum zu extrahieren. Nachdem ich aber mehrere Datensätze haben werde, möchte ich das Alle Felder ausgegeben werden (was mittels jeweiliger direkter Addressierung auch funktioniert)

    zur Ausgabe hab ich folgenden Befehl verwendet:
    PHP-Code:
    //Zeilenanzahl ermitteln:
    $nrows mysql_num_rows($db_newsabfrage);
    //anzahl zur kontrolle ausgeben:
    echo "anzahl reihen: " $nrows "! <br />";
    //if schleiffe die anz. überprüft und dann die entsprechenden werte ausgibt. 
    if ($nrows != 0)
    {for (
    $j 0$j $nrows$j++){
    $row mysql_fetch_array($db_newsabfrageMYSQL_ASSOC);
          
    $ni $row["NewsID"];
          
    $da $row["Date"];
          
    $ti $row["Titel"];
          
    $te $row["Text"];
          echo 
    "$ni$da$ti$te <br>";
    }} 
    Und da liegt der hund.. mit dem code wird mir gan einfach ein ",,,," ausgegeben... ich habs schon mit so ziemlich jeder version die ich irgendwo im netz finden konnte, die geringfügig anders war probiert.. das maximalergebnis das ich bekommen konnte war ",,,,"

    Ich persönlich seh den Fehler irgendwo in der for-schleife, da bis zur ausgabe der Reihen-Anzahl alles glatt läuft und diese 1 beträgt, also auch das if-statement korrekterweise 1 zeile ausgibt (wenn ich auf <= ändere sind es 2 zeilen, also geh ich davon aus dass es passt)

    ich bin für jegliche hilfestellung dankbar...
    Sitz hier schon seit stunden an dem problem und langsam wär ich über ne lösung glücklich... (wenn man sich vornimmt noch ein problem zu lösen und danach aufzuhören, kann man davon ausgehen dass das problem am längsten dauert...)

    greez
    liquid

    EDIT:
    Ich hab jetz in der DB einen 2ten datensatz angefügt.
    das ganze hat jetz zur folge, dass der erste Datensatz normal angezeigt wird, der 2te datensatz jedoch wie gewohnt mit ",,,,"(leer)
    Wenn ich den string mittels vorher erwähntem echo $t_newsabfrage ausgebe, wird asuschliesslich der letzte wert angegeben.

    Was mache ich falsch?
    ich will doch nur das Zeile1, dann Zeile 2, dann Zeile 3.. ausgegeben wird...

    greez
    liquid
    Zuletzt geändert von liquid; 14.12.2005, 15:58.

  • #2
    Hi, wieso nicht folgendes:
    PHP-Code:
    //Zeilenanzahl ermitteln:
    $nrows mysql_num_rows($db_newsabfrage);
    //anzahl zur kontrolle ausgeben:
    echo "anzahl reihen: " $nrows "! <br />";
    //if schleiffe die anz. überprüft und dann die entsprechenden werte ausgibt. 
    if ($nrows != 0)
    {
      while ( 
    $row mysql_fetch_assoc($db_newsabfrage) )
        {
            
    $ni $row["NewsID"];
            
    $da $row["Date"];
            
    $ti $row["Titel"];
            
    $te $row["Text"];
            echo 
    $ni.", ".$da.", ".$ti.", ".$te." <br>";
        }

    Kommentar


    • #3
      danke für den tipp, aber gibt leider auch nur eine zeile aus...

      greez
      liquid

      Kommentar


      • #4
        Wieso werd ich das Gefühl nicht los, dass du bereits vor der 'for'-schleife bzw. 'while'-Schleife schon mal ein $xxx = mysql_fetch_array(); drin hast?

        Mach das weg - der Zeiger rückt damit nämlich schon ums eins vor, du hast aber die Ausgabe erst in der Schleife
        Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
        Schön - etwas Geschichte kann ja nicht schaden.
        Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

        Kommentar


        • #5
          Original geschrieben von Quetschi
          Wieso werd ich das Gefühl nicht los, dass du bereits vor der 'for'-schleife bzw. 'while'-Schleife schon mal ein $xxx = mysql_fetch_array(); drin hast?
          Hellseherische Fähigkeiten? Trojaner auf meine platte?
          kA.. aber es hat gestimmt... An tagen wie diesen merke ich dass ich bei php noch einiges zu lernen hab...

          VIELEN DANK
          Es funktioniert...

          greez
          liquid

          ps: ich weiss grad nicht ob die schmach darüber einem so banalen fehler aufgesessen zu sein, oder die Freude daraus gelernt zu haben überwiegt... Dennoch DANKE DANKE DANKE

          Kommentar


          • #6
            Original geschrieben von liquid
            Hellseherische Fähigkeiten? Trojaner auf meine platte?
            Ersteres - hab heute ne nagelneue Glaskugel gekriegt, nachdem meine alte an diversen anderen Forenmitgliedern zu Grunde gegangen ist.
            Ihr habt ein Torturial durchgearbeitet, das auf den mysql_-Funktionen aufbaut?
            Schön - etwas Geschichte kann ja nicht schaden.
            Aber jetzt seht euch bitte php.net/pdo oder php.net/mysqli bevor ihr beginnt!

            Kommentar

            Lädt...
            X