str_replace, mysql_fetch_* & Co

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

  • str_replace, mysql_fetch_* & Co

    Hallo zusammen,

    also, ich habe eine HTML Datei in der sich das Design der Seite befindet (quasi Site Template genannte site.html).

    Als Zweites habe ich eine replace.php

    PHP-Code:
    <?php
      $f 
    file('site.html');
      
    $source join($f);

      
    $source str_replace('~CONTENT~'$low_pagecontent$source);

      echo 
    $source;

    ?>
    Die mir quasi den inhalt belibiger php dateien ins Template pack und mir die gewünschten Daten in dem Design anzeigt.

    Als dirttes habe ich eine test.php

    PHP-Code:
    ...
            function 
    test($ListMyWishOut)
            {
            
    $ListMyWishOut ListMyWish($ListMyWishQuery);
                    while(
    $row8 mysql_fetch_assoc($ListMyWishOut))
                    {
                    echo 
    $row8[descr];
                    echo 
    '<br>';
                    }
    return 
    $ListMyWishOut;
    }

    $BLA test($ListMyWishOut);


    $low_pagecontent2 '' $BLA .' bla';

    $low_pagecontent $low_pagecontent2;
    include 
    "replace.php";
    ?> 
    jetzt sieht es so aus dass mir oben ausserhalb der Seite die daten vernünftig ausgegeben werden, wird verursacht du

    PHP-Code:
    $BLA test($ListMyWishOut); 
    sind insgesammt 6 Datensätze aus einer MySQL Tabelle.

    Die ausgabe aus dieser Zeile: =>
    PHP-Code:
     $low_pagecontent2 '' $BLA .' bla'
    gibt einfach nur Resource id #6 bla aus.

    Ich habe es zwar hinbekommen dass er mir auch Daten anzeigt und nicht Ressource id #X aber da hatte ich das Problem dass er mir nur die erste Zeile ausgegeben hat.

    Habe zwar einen Eintrag gefunden der so ein ähmliche Problem behandelt der Eintrag hat mir aber nicht weitergeholfen.

    Für Tipps Ratschläge usw. wäre ich dankbar!
    Zuletzt geändert von donniedarko; 28.06.2010, 18:02.

  • #2
    Wir haben hier Code-Tags: Nutze sie!
    [FONT="Helvetica"]twitter.com/unset[/FONT]

    Shitstorm Podcast – Wöchentliches Auskotzen

    Kommentar


    • #3
      Sorry mein Fehler!

      Habe es nun Korrigiert!

      Kommentar


      • #4
        Edit:

        du erhältst aus deiner Abfrage (ich nehm mal an, die steckt in dieer Funktion
        Code:
        ListMyWish($ListMyWishQuery);
        ein Array - dass du ja auch mit
        PHP-Code:
        while($row8 mysql_fetch_assoc($ListMyWishOut)) 
        abklapperst ...

        nur gibst du deine Funde direkt mittels echo aus..

        dann liefert deine Funktion das Array zurück - und du gibst mittels deiner Ausgabe-Funktion genau dieses Array weiter an die Replace - Datei.,.

        und die gibt korrekt aus ., 6 Einträge im Array ...

        vielleicht solltest du mal einen geeigneten Antwort-String zusammenbasteln und den zurückgeben in der Test-Funktion

        Vorschlag:
        PHP-Code:
        function test($ListMyWish) {
              
        $ListMyWishOut ListMyWish($ListMyWishQuery);
              
        $aus='<div align=center><table><tr><td>Eintrag# </td><td>Description</td></tr>';
              
        $k=1;
              while(
        $row8 mysql_fetch_assoc($ListMyWishOut))
              {
                    
        $aus.='<tr><td>'.$k++.'</td><td>'.$row8[descr].'</td></tr>';
              }
              
        $aus.='</table></div><br>';
              return Array(
        $aus,$ListMyWishOut);
        }


        ....

        $BLA test($ListMyWishOut);


        $low_pagecontent2 '' $BLA[0] .' bla';

        $low_pagecontent $low_pagecontent2;
        include 
        "replace.php"
        jetzt hast du zumindest eine Ausgabe aus laufender Nummer ($k) und der Beschreibung aus deiner Datenbank ...

        @Mods - nicht hauen, dass ich html-Tabelle für Ausgabe-Formatierung nutze .. das geht mit CSS und divs eleganter und schöner . ist mir klar - aber die Tabelle geht viel einfacher als Test
        Zuletzt geändert von eagle275; 28.06.2010, 18:39. Grund: post überarbeitet , mit Beispielfunktion erweitert
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Kommentar


        • #5
          das hier steckt hinter der Funktion ListMyWishQuery

          PHP-Code:
          function ListMyWish($ListMyWishQuery)
          {
                 
                  
          $ListMyWishSql "select * from mywish";

                  
          $ListMyWishQuery mysql_query ($ListMyWishSql);
                          if (!
          $ListMyWishQuery)
                          {
                          die(
          'Fehler Code 3' mysql_error());
                          }
          return 
          $ListMyWishQuery;


          Kannst du das evlt. etwas ausführlicher beschreiben was du damit meinst: "vielleicht solltest du mal einen geeigneten Antwort-String zusammenbasteln und den zurückgeben in der Test-Funktio"

          Kommentar


          • #6
            schau mal, ich hab meinen vorherigen Post um eine Abänderung deiner Test-Funktion erweitert ..

            Nimm es als Anregung - du kannst ja weitere Tabellenspalten bei der Zeile
            Code:
            $aus.="<tr><td>'.$k++.'</td><td>' .....
            einfach mit reinhängen,

            du musst nur das schließende Tag der Table-Row weiter nach hinten verschieben und weitere
            Code:
            <td>'.$row8[spaltex].'</td>
            dazwischenschieben - jeweils nach einem </td>
            Zuletzt geändert von eagle275; 28.06.2010, 18:41. Grund: tippfehler
            [font=Verdana]
            Wer LESEN kann, ist klar im Vorteil!
            [/font]

            Kommentar


            • #7
              Funktioniert, klasse!

              Versuche jetzt nur noch dass zu verstehen. Ist hier das Inkrement von $k der entscheidende knackpunkt? Ich meine (ohne es zu verhamlosen) es doch nur die Nummerierung am zeilen anfang.

              Oder erfüllt das Inkrement $k noch einen anderen zweck?

              Kommentar


              • #8
                nein .. $k++ sorgt lediglich dafür, dass in der Spalte Eintrag# die Zahl ausgegeben wird und anschließend $k um 1 hochgezählt wird für die nächste Zeile ..

                der eigentliche Punkt ist doch in deinem mysql_fetch_assoc enthalten ...

                das gibt die einzelnen Zeilen der Ergebnis-Tabelle (aus der Datenbank-Abfrage) zurück in einem Assoziativen Array ...

                du musst nun lediglich die Daten aus diesem Array (dankenswerterweise ja immer 1 Zeile) ausgeben ...

                also $row8[Spalte X] ,. als Beispiel hattest du ja die Spalte descr angegeben..

                Wenn du wissen willst, was da noch drinsteckt..

                Code:
                  foreach($row8 as $key=>$element) {
                   echo $key." -- ".$element;
                  }
                das gibt dir die Bestandteile einer Tabellenzeile aus .. die $key-Teile kannst du dann zum Zugriff auf die einzelnen Felder des Feldes $row8[key_wert] verwenden

                ansonsten muss deine Funktion ja nur noch ihren Text ($aus) an die aufrufende zurückgeben, damit der dann irgendwann mit dem str_replace in der Ausgabe landet


                der eigentliche Punkt ist deine Ausgabe mit str_replace kann mit der nackten Ergebnis-Tabelle der Datenbank nix anfangen - daher musst du die Antwort-Tabelle der Datenbank irgendwie in Html-Code übersetzen und dann weiterreichen
                Zuletzt geändert von eagle275; 28.06.2010, 19:30.
                [font=Verdana]
                Wer LESEN kann, ist klar im Vorteil!
                [/font]

                Kommentar


                • #9
                  ohje, viel lernen ich muss...

                  Danke noch mal!

                  Kommentar

                  Lädt...
                  X