PHP, MYSQL - Ausgabe in echo will nicht



  • ja



  • wwhile ($row = mysql_fetch_assoc($result)) {
       $name1 = $row["name"];
       $link1 = $row["link"];
       $bild1 = $row["bild"];
       $beschreibung1 = $row["beschreibung"];
    }
    

    Wenn ich gleich unter

    mysql_free_result...

    echo $name;
    

    schreibe kommt der Wert der kommen soll.
    Doch wenn ich es hier rein mache geht es nicht:

    global $theme_width,$settings;
    
    	echo "<table align='center' border='0' cellpadding='0' cellspacing='0' width='$theme_width'>";
    	echo "<tr><td width='950' height='178'><img style='float:left;' src='images/header.gif' />
    <div class='topstory' style='background-image: url(".$bild1.")'><h4>".$name1.
    "</h4><h3><a href='".$link1."'>".$name."</a></h3><p>".
    $beschreibung1."</p><p><a href='".$link1."'>Weiter lesen &gt;&gt;</a></p></div></td>";
    	echo "<center><table with='928' height='3'><td with='928' height='3'></td></center>";
          echo "<center><table align='center' style='border-collapse: collapse;'
     border='0' bordercolor='#111111' cellpadding='0' cellspacing='0' height='38' width='928'><tbody><tr>
    <td width='928' height='38' background='http://www.habbomaster.de/images/nav/leiste3.gif' /><center>
    <a href='http://www.habbomaster.de/news.php'><img src='http://www.habbomaster.de/images/nav/startseite2.gif' /></a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'>
    <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a>&nbsp;&nbsp;&nbsp;<a href='http://www.habbomaster.de/articles.php?cat_id=1'>
    <img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' />
    </a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/articles.php?cat_id=2'>
    <img src='http://www.habbomaster.de/images/nav/community2.gif' />
    </a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/articles.php?cat_id=3'><img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://forum.habbomaster.de'>
    <img src='http://www.habbomaster.de/images/nav/forum2.gif' /></a>
    </center></td></tbody></tr></table>";
          echo "<table align='center' cellspacing='0' cellpadding='0' width='$theme_width'>\n<tr>\n";
    }
    

    Da muss also der Fehler sein.

    Moderiert von árn[y]ék:
    Bitte den Code ein wenig sorgfältiger umbrechen!



  • Habe herrausgefunden, dass wenn ich diesen abschnitt:

    echo "<table align='center' border='0' cellpadding='0' cellspacing='0' width='$theme_width'>";
    	echo "<tr><td width='950' height='178'><img style='float:left;' src='images/header.gif' />
    <div class='topstory' style='background-image: url(".$bild1.")'><h4>".$name1."</h4><h3>
    <a href='".$link1."'>".$name."</a></h3><p>".$beschreibung1."</p><p><a href='".$link1."'>Weiter lesen &gt;&gt;</a>
    </p></div></td>";
    	echo "<center><table with='928' height='3'><td with='928' height='3'></td></center>";
          echo "<center><table align='center' style='border-collapse: collapse;' border='0' bordercolor='#111111' 
    cellpadding='0' cellspacing='0' height='38' width='928'><tbody><tr><td width='928' height='38' 
    background='http://www.habbomaster.de/images/nav/leiste3.gif' /><center>
    <a href='http://www.habbomaster.de/news.php'><img src='http://www.habbomaster.de/images/nav/startseite2.gif' />
    </a>&nbsp;&nbsp;&nbsp;<a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'>
    <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/articles.php?cat_id=1'>
    <img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' /></a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/articles.php?cat_id=2'><img src='http://www.habbomaster.de/images/nav/community2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://www.habbomaster.de/articles.php?cat_id=3'>
    <img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://forum.habbomaster.de'>
    <img src='http://www.habbomaster.de/images/nav/forum2.gif' /></a></center></td></tbody></tr></table>";
          echo "<table align='center' cellspacing='0' cellpadding='0' width='$theme_width'>\n<tr>\n";
    

    In eine neue php datei stecke die nicht mit phpfusion verbunden ist, geht es.

    Moderiert von árn[y]ék:
    Bitte den Code ein wenig sorgfältiger umbrechen!



  • So müsste es gehen:

    global $theme_width,$settings;
    	while ($row = mysql_fetch_assoc($result)) {
       	$name1 = $row["name"];
    	$beschreibung1 = $row["beschreibung"];
      	$link1 = $row["link"];
       	$bild1 = $row["bild"];
    	}
    	mysql_free_result( $result ); // wichtig
    	echo "<table align='center' border='0' cellpadding='0' cellspacing='0' width='$theme_width'>";
    	echo "<tr><td width='950' height='178'><img style='float:left;' src='images/header.gif' />
    <div class='topstory' style='background-image: url(".$bild1.")'><h4>Topnews</h4><h3><a href='".$link1."'>".
    $name1."</a></h3><p class='summary'>".$beschreibung1."</p><p><a href='".$link1."'>Weiter lesen >>
    </a></p></div></td>";
    	echo "<center><table with='928' height='3'><td with='928' height='3'></td></center>";
          echo "<center><table align='center' style='border-collapse: collapse;' border='0' bordercolor='#111111' 
    cellpadding='0' cellspacing='0' height='38' width='928'><tbody><tr><td width='928' height='38' 
    background='http://www.habbomaster.de/images/nav/leiste3.gif' /><center><a href='http://www.habbomaster.de/news.php'>
    <img src='http://www.habbomaster.de/images/nav/startseite2.gif' /></a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'>
    <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a>&nbsp;&nbsp;&nbsp;
    <a href='http://www.habbomaster.de/articles.php?cat_id=1'><img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://www.habbomaster.de/articles.php?cat_id=2'>
    <img src='http://www.habbomaster.de/images/nav/community2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://www.habbomaster.de/articles.php?cat_id=3'>
    <img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a>
    &nbsp;&nbsp;&nbsp;<a href='http://forum.habbomaster.de'>
    <img src='http://www.habbomaster.de/images/nav/forum2.gif' /></a>
    </center></td></tbody></tr></table>";
          echo "<table align='center' cellspacing='0' cellpadding='0' width='$theme_width'>\n<tr>\n";
    }
    

    Doch dann kommt das:

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\themes\HM2\theme.php on line 29
    
    Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\themes\HM2\theme.php on line 35
    

    Moderiert von árn[y]ék:
    Bitte den Code ein wenig sorgfältiger umbrechen!



  • nimm mal mysql_fetch_array() und lass das mit dem free weg, dann duerfte es zumindest erstmal laufen



  • Hallo,

    um mal kein Blatt vor den Mund zu nehmen: Dein Quellcode da oben ist ziemlicher Käse. Ich empfehle, grundlegende Lektüre zu beschaffen und zu verinnerlichen!

    Vom System her in etwa so (alles Überflüssige weggelassen und die Ausgabe alleine auf die Funktion reduziert), nun entsprechend an deine Bedürfnisse anzupassen und - vor allem - zu verstehen!

    // Initialisierung / Abfrage:
    mysql_connect("localhost", "root", ""); 
    mysql_select_db("usrdb_habbodba_fusion2"); 
    $query = mysql_query("SELECT name, link, bild, beschreibung FROM fusion_topnews"); 
    
    // Ausgabe:
    for($current = mysql_fetch_assoc($query); (bool)$current !== false; $current = mysql_fetch_assoc($query))	{
       echo 'Name: ', $current['name'], '<br />';
       echo 'Link: ', $current['link'], '<br />';
       echo 'Bild: ', $current['bild'], '<br />';
       echo 'Beschreibung: ', $current['beschreibung'], '<br />';
    }
    
    // Ressource freigeben:
    mysql_free_result($query);
    


  • arn[y]ek schrieb:

    for($current = mysql_fetch_assoc($query); (bool)$current !== false; $current = mysql_fetch_assoc($query))	{
    }
    

    warum keine while-Schleife wie ich sie oben hab?



  • Ganz banale Antwort?
    Es ist wurscht. Ich habe deinen Beitrag beim Durchblättern des Threads überlesen. 🤡

    Ich persöhnlich nehme meistens for-Schleifen, weil ich in recht komplexen Schleifen arbeite, die z.B. noch 1 oder 2 Zählvariablen, mehr Initialisierungsbefehle, Iterationsbefehle etc. beinhalten. Da ist for übersichtlicher. Hier tut es natürlich while auch.



  • zwutz schrieb:

    arn[y]ek schrieb:

    for($current = mysql_fetch_assoc($query); (bool)$current !== false; $current = mysql_fetch_assoc($query))	{
    }
    

    warum keine while-Schleife wie ich sie oben hab?

    Dann kommt wieder das:

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\themes\HM2\theme.php on line 27
    


  • Hallo,

    die Meldung lässt darauf schließen dass irgendetwas an deiner SQL-Abfrage nicht korrekt ist. Das Ergebnis der Abfrage kann quasi nicht ausgewertet werden, weil zum Beispiel eines der Felder gar nicht existiert oder die Tabelle anders bezeichnet ist ...

    mfg, Micha


Anmelden zum Antworten