PHP, MYSQL - Ausgabe in echo will nicht
-
Hallo,
ich versuche etwas aus einer Datenbank in ein echo zu bekommen.
Das geht nicht. Nun sah ich, wenn man einfache Variablen wie z.B.$hallo = "hi";
Ein paar Zeilen darunter ist
echo $hallo;
doch es geht nicht.
Es kommt kein Fehler.--------------
Meine Codes:Das steht in einer theme.php von einem PHPfusion Design. Da ist auch die Abfrage.
Connect(ganz oben im Script):mysql_connect("localhost","root","") or die ("Keine Verbindung moeglich"); mysql_select_db("usrdb_habbodba_fusion2") or die ("Die Datenbank existiert nicht"); $select = "SELECT * FROM `fusion_topnews`"; mysql_query($select); $select2 = "SELECT name FROM fusion_topnews WHERE 1"; $select3 = "SELECT link FROM fusion_topnews WHERE 1"; $select4 = "SELECT bild FROM fusion_topnews WHERE 1"; $select5 = "SELECT beschreibung FROM fusion_topnews WHERE 1"; $name1 = mysql_query($select2); $link1 = mysql_query($select3); $bild1 = mysql_query($select4); $beschreibung1 = mysql_query($select5);
Abfrage:
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 >></a></p></div></td>";
Mit Error Reportig kommt auch nichts.
MFG
lennard07Moderiert von árn[y]ék:
Bitte den Code ein wenig sorgfältiger umbrechen!
-
du kannst feil auch mehrere Werte mit nur einer Abfrage aus der DB holen
$result = mysql_query( "SELECT name, link, bild, beschreibung FROM fusion_topnews" ); // WHERE 1 kannst du dir auch sparen while ($row = mysql_fetch_assoc($result)) { echo $row["name"]; echo $row["link"]; echo $row["bild"]; echo $row["beschreibung"]; } mysql_free_result( $result ); // wichtig
mit
extract( $row );
innerhalb der Schleife bekommst du auch die Variablen $name, $link, usw...vll lag dein Fehler ja daran
-
Die Variablen werden jetzt angezeigt.
Muss ich dann statt
".$bild1."
das schreiben
$row["name"]
?
-
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 >></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> <a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'> <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=1'> <img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' /> </a> <a href='http://www.habbomaster.de/articles.php?cat_id=2'> <img src='http://www.habbomaster.de/images/nav/community2.gif' /> </a> <a href='http://www.habbomaster.de/articles.php?cat_id=3'><img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a> <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 >></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> <a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'> <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=1'> <img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=2'><img src='http://www.habbomaster.de/images/nav/community2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=3'> <img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a> <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> <a href='http://www.habbomaster.de/infusions/fresh_content/fresh_content.php'> <img src='http://www.habbomaster.de/images/nav/aktuell2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=1'><img src='http://www.habbomaster.de/images/nav/habboinfos2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=2'> <img src='http://www.habbomaster.de/images/nav/community2.gif' /></a> <a href='http://www.habbomaster.de/articles.php?cat_id=3'> <img src='http://www.habbomaster.de/images/nav/fancenter2.gif' /></a> <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