mysql_fetch_array mehrfach auf resultset

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

  • mysql_fetch_array mehrfach auf resultset

    hi,

    Ich moechte in einem news system die newsueberschriften unter den jeweiligen sektionsnamen anzeigen lassen,
    dazu habe ich 2 ineinander verschachtelte while schleifen,
    die erste gibt die in der datenbank gefundenen sektionsnamen aus und die zweite dann die news titel der news dessen sektionsid mit der der sektion uebereinstimmt ...
    dazu muss ich die zweite while schleife aber mehrmals ausfuehren, naemlich innerhalb jeder sektion,
    nun ist beim ersten durchlauf der zweiten schleife while($row_news=mysql_fetch_array($news)) aber schon der offset oder pointer oder sonstwas des mysql_fetch_array auf null gesetzt und ich kann diese aktion nicht wiederholen (jedenfalls kommen keine results mehr)...
    fetch_array in eine variable vor der ersten while schleife stecken und neuladen von $row_news damit in der zweiten while schleife hat immer in einer endlosschleife geendet
    ich hoffe ihr experten koennt mir eine lösung vorschlagen, danke schonmal,

    ich hoffe man versteht was ich meine...

    hier noch zur kompletten verwirrung ein bisschen codeschnipsel:

    <table width="20%" border="0">
    <tr bgcolor="AAAAAA">
    <?
    while ($row_sect = mysql_fetch_array($sect))
    {
    echo "\n".
    "<th>" . $row_sect["section"] . "</th>";

    while ($row_news=mysql_fetch_array($news))
    {
    if ($row_news["fsectid"]==$row_sect["sectid"])
    {
    echo "<tr>".
    "<td><a href=news.php=?nid=". $row_news["nid"]. ">" . $row_news["title_news"] . "</a></td></tr>";
    }

    }

    }echo "</tr>";
    ?>
    </table>

  • #2
    wenn du es schon so machen musst/willst, dann sollte das eher so aussehen:

    PHP-Code:
    <table width="20%" border="0">
    <tr bgcolor="AAAAAA">
    <?
    while ($row_sect = mysql_fetch_array($sect))
    {
    echo "\n".
    "<th>" . $row_sect[section] . "</th>";

    $news= mysql_query("select bla from blabla where fsectid='$row_sect[sectid]'");
    if(mysql_num_rows($news) >0)
    {
    while ($row_news=mysql_fetch_array($news))
    {
    echo "<tr><td><a href=news.php=?nid=". $row_news[nid]. ">" . $row_news[title_news] . "</a></td></tr>";
    }
    }
    }
    // ??? echo "</tr>";
    ?>
    </table>
    gruss wurzel
    Kissolino.com

    Kommentar


    • #3
      PHP-Code:
      $sect mysql_query ...
      $newsmysql_query ...

      while(
      $row=mysql_fetch_array($sect)){
         while(
      $row2=mysql_fetch_array($news)) {
            
      // ...
         
      }
         
      // array zurücksetzen
         
      mysql_data_seek($news,0);

      TBT

      Die zwei wichtigsten Regeln für eine berufliche Karriere:
      1. Verrate niemals alles was du weißt!


      PHP 2 AllPatrizier II Browsergame

      Kommentar


      • #4
        thanx,
        funktioniert jetze,
        muss jetz nur noch mit den table flags alles in eine vernuenftige form bringen...

        @wurzel
        was heisst hier machen will,muss ???

        sind durch diese art irgendwelche groben schwachpunkte erkennbar ?? kein guter programmierstil ?? und wenn ja warum nich ??

        also danke nochmal
        ciao

        Kommentar


        • #5
          @TBT
          sehr geschmeidig, darauf wär ich nie gekommen

          @bender_79
          ... mir war von vornherein klar, dass es eine bessere lösung gibt als
          meine ... nur ich hatte sie nicht parat ... mein, lösungsvorschlag
          funktioniert, ist aber nicht so resourcenschonend

          gruss wurzel
          Kissolino.com

          Kommentar

          Lädt...
          X