Echofunktion in Echofunktion
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anweisung
anzahl
ausgabe
beitrag
bild
daten
ergebnis
gedacht
gen
inhaltsverzeichnis
kategorie
limit
mengen
order
pawort
result
spalten
tabelle
target
variable
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Sers Leute
Ich hab en Echo, dass mit ' anfangen MUSS!!
in dieses Echo will ich jetzt ein weiteres Eco einf?gen... da ab ic mir gedacht... hmmm... ok... nimmste eben " ... Aber das funzt auc net so wirklic... was kann man da machen?
*Mods_die_Arbeit_abnehm*
=> *patsch*
Was willst du? ^^
echo 'echo ""';??
Versuchs mal mit
echo 'blalbub'; echo 'blablablubblub';
MfG Lucas -
Sers Leute
Ich hab en Echo, dass mit ' anfangen MUSS!!
in dieses Echo will ich jetzt ein weiteres Eco einf?gen... da ab ic mir gedacht... hmmm... ok... nimmste eben " ... Aber das funzt auc net so wirklic... was kann man da machen?
*Mods_die_Arbeit_abnehm*
=> *patsch*
Was willst du? ^^
echo 'echo ""';??
Versuchs mal mit
echo 'blalbub'; echo 'blablablubblub';
MfG Lucas
Er will ein echo, das mit ' anf?ngt, daraus schlie?e ich doch dass er mehrere Zeilen Code ausgeben will. Ich z.b. benutze auch manchmal echo '...' wenn ich einen mehrzeiligen HTML Code ausgeben will. Und in diesem HTML Code oder was auch immer er ausgeben will, m?chte er noch etwas anderes ausgeben.
Also als Beispiel w?rde ich mal sagen er will mit echo ' einen HTML Code ausgeben und in diesem HTML Code m?chte er noch eine Variable ausgeben.
Also ich wei? nicht genau, wie das geht, aber kannst du nicht einfach Verkettungsoperatoren verwenden? Also:
echo 'blablablbla'.$variable.'blubblub';
Sonst habe ich auch nicht ganz verstanden, was du willst!
EDIT: Also ich sch?tze mal, dass es nur mit Verkettungsoperatoren geht, weil echo in echo macht einfach keinem Sinn. Da kann man deinen Beitrag noch so falsch verstehen, aber echo in echo ist Schwachsinn.
Beitrag ge?ndert am 26.06.2006 15:50 von t3remy -
ne ne... so wird das nix ^^
ich schreibs mal hin:
if($kategorie=="Alles") { echo "<?php $seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 if(!isset($seite)) { $seite = 1; } //Verbindung zu Datenbank aufbauen $link = mysql_connect(\"mysql.lima-city.de\",\"USER\",\"Passwort\") or die (\"Keine Verbindung moeglich\"); mysql_select_db(\"DB\") or die (\"Die Datenbank existiert nicht\"); //Eintr?ge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = '.$anzahl.'; //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle $abfrage = \"SELECT bild FROM uploadbilder ORDER BY id DESC LIMIT $start, $eintraege_pro_seite\"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo "<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>"; // Hier die Ausgabe der Eintr?ge } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT bilderid FROM uploadbilder"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo '<div align="center">'; echo '<b>Seite:</b> '; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) { echo ' <b>$b</b> '; } //Aus dieser Seite ist der User nicht, also einen Link ausgeben else { echo ' <a href=\"?seite=$b\">$b</a> '; } } echo '</div>'; ?>"; } else { echo "<?php //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 if(!isset($seite)) { $seite = 1; } //Verbindung zu Datenbank aufbauen $link = mysql_connect("mysql.lima-city.de","USER","PASSWORT") or die ("Keine Verbindung moeglich"); mysql_select_db("DB") or die ("Die Datenbank existiert nicht"); //Eintr?ge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = '.$anzahl.'; //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder WHERE name LIKE '.$kategorie.' ORDER BY bilderid DESC LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo '<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>'; // Hier die Ausgabe der Eintr?ge } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT bilderid FROM uploadbilder"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo '<div align=\"center\">'; echo '<b>Seite:</b> '; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) { echo ' <b>$b</b> '; } //Aus dieser Seite ist der User nicht, also einen Link ausgeben else { echo ' <a href=\"?seite=$b\">$b</a> '; } } echo '</div>'; ?>"; }
so... zum durchblicken:
Ich hab ne IF-Anweisung, in die ein PHP-Code rein kommt und dieser Code beinhaltet eine Bl?tterfunktion... das echo von der IF-Anweisung muss mit ' anfangen, weil sonst der erste Schritt net klapt.
(also : $seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist)
Wenn ich diesen Parameter vor die Anweisung setze, habe ich hiermit Probleme:
(Also: $link = mysql_connect(\"Host\",\"USER\",\"PASSWORT\") or die (\"Keine Verbindung moeglich\");
mysql_select_db(\"DB1360376804\") or die (\"Die Datenbank existiert nicht\"); )
Das hab ich, wie ihr ja seh, immer mit einem \ vor einem " gel?st
und jetzt das n?chste Problem.
(Also: echo "<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'">
<img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>"; // Hier die Ausgabe der Eintr?ge )
Wie l?se ich das? da hakts im mom. -
*r?usper*
Wenn du PHP-Code mit einem echo ausgeben l?sst wird nichts geparsed. -_-
Speicher deinen PHP-Code in eine Variable und f?hre es per eval(): aus, was allerdigns gravierende Sicherheitsl?cken aufwerfe kann. Aber PHP-Code per echo ""; auszuf?hren ist leider unm?glich.
Mannmannmann.... -
Muss bei so ner IF-Anweisung eigentlich ein Echo sein oder kann man da auc was anderes einf?gen?
-
Und warum nicht wie folgt? Hab es zwar nicht getestet, aber von der Logik her sollte es klappen.
<? if($kategorie=="Alles") { //Abfrage auf welcher Seite man ist //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 $seite = !is_null($_GET['seite']) ? $_GET['seite'] : 1; //Verbindung zu Datenbank aufbauen $link = mysql_connect("mysql.lima-city.de","USER","Passwort") or die ("Keine Verbindung moeglich"); mysql_select_db("DB",$link) or die ("Die Datenbank existiert nicht"); //Eintr?ge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = $anzahl; // wo kommt denn Anzahl her? //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; //Tabelle Abfragen //Tabelle hei?t hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder ORDER BY id DESC LIMIT ".$start.", ".$eintraege_pro_seite.";"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { // Hier die Ausgabe der Eintr?ge echo '<a title="'.$row->bild.'" target="_blank" href="./uploadbilder/'.$row->bild.'"> <ing border="0" src="./uploadbilder/'.$row->bild.'" width="150" height="200" /> </a>'; } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, blo? das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT bilderid FROM uploadbilder"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo '<div align="center">'; echo '<b>Seite:</b> '; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) echo ' <b>$b</b> '; else //Aus dieser Seite ist der User nicht, also einen Link ausgeben echo ' <a href=\"?seite=$b\">$b</a> '; } echo '</div>';
-
da kann man alles einf?gen was man will
-
?dit:
Da war ich wohl zu langsam, naja. Dir lege ich trotzdem an's Herz das zu lesen.
Und: Solange du nicht eifnach abcd in den Code schreibst (zwsichen <? und ?>) ist alles in Ordnung. Es muss halt PHP sein. Dann darf alles rein.
.....
http://www.lima-city.de/tutorials.php?m=show&id=2040
.....
Kleiner Grundkurs in PHP:
(Und dannach w?rde ich dir
http://www.schattenbaum.net/php/
und
http://de.wikipedia.org/wiki/PHP
empfehlen...-_-)
Was ist eigentlich PHP?
-Nun, ganz eifnach: Eine Scriptsprache, die vom Server geparsed wird!
Wie funktioniert das Prinzip von PHP.. nun. Bei einem Script passiert flgendes:
Das Script liegt auf einem PHP bereiten Server. PHP bereit bedeutet, das eine Parsesoftware installiert ist, die den PHP-Code ausf?hrt und die Ausgaben in HTML umwandelt. Wird nun eine Anfrage an den Server
gesendet sucht der PHP Parser in der Datei nach <?php. (Sofern die Dateiendung .php ist ;) ) Wird es gefunden, wird der Code ausgef?hrt (geparsed). Echos, prints usw erzeugen dabei Ausgaben. Diese werden sp?ter als HTML Code an den Browser gesendet. Nach beendigung des parsens wird ein Paket mit dem erzeugten HTML Code na den Browser geschickt. Das ist der Grund, warum man nicht an PHP Code kommt, wenn man keinen direkten Zugriff auf den Server hat.
Wieso darfst du keinen Code als echo ausgeben?
-Ganz einfach! Es wird sonst als HTML-Code ausgabe an den Browser gesendet!
So. Das war jetzt mal das, was ich dir nahelegen wollte.
Les dir das Schattenbaum Tutorial durch und dann lern weiter. Ich glaube du brauchst noc viel Zeit, wenn du zwar if-Schleifen kannst, die aber per echo ""; ausf?hren willst.
Beitrag ge?ndert am 26.06.2006 16:33 von adrians -
Das schlimmste an seinem code war das er eigentlich doppelt darstand. Als ich mit dem ersten Teil durch wahr, fiel mir auf das dort nochmal der selbe Mist stand...
Conditional Clausures sollte man auch richtig einsetzen ;) -
lol... wei?te auc warum der da doppelt war?
weil da noch en else drinne war... das is bei deinem Code net dabei
beim Else ?ndert sich nur eine winzige Kleinigkeit.. -
Wei? ich das du da nen Else hattest. Das Else ist aber bei meinem Code ?berfl?ssig. Denn sobald "Seite" nicht definiert ist, wird die Seite Variable auf 1 gesetzt. Und zwar hier:
$seite = !is_null($_GET['seite']) ? $_GET['seite'] : 1;
// edit: und das am ende mit den Seiten kann man so auch ganz einfach einbauen :)
Beitrag ge?ndert am 26.06.2006 16:51 von evil-devil -
hmmm, sc?n und gut... ber was is dann mit den Kategorieen? ^^
Ich hab n?mlich vorher ein Formular gemacht, bei dem man sich Bildkategorien aussuchen kann... das fehlt dann bei dir...
ich hab meinen Code mal was ge?ndert... jetzt ist er leichter... aber hab ein neues Prob:
$kategorie = $_POST['kategorie']; $anzal = $_POST['anzahl']; ?> <?php $seite = $_GET["seite"]; //Abfrage auf welcher Seite man ist //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 if(!isset($seite)) { $seite = 1; } //Verbindung zu Datenbank aufbauen $link = mysql_connect("Host","User","Passwort") or die ("Keine Verbindung moeglich"); mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht"); //Eintr?ge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = $anzahl; //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; if($kategorie=="Alles") { //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder ORDER BY id DESC LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo '<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>'; // Hier die Ausgabe der Eintr?ge }; } else { //Tabelle Abfragen //Tabelle heißt hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder WHERE name LIKE '.$kategorie.' ORDER BY id DESC LIMIT $start, $eintraege_pro_seite"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo '<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>'; // Hier die Ausgabe der Eintr?ge }; } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, bloß das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT bilderid FROM uploadbilder"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seite:</b> "; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) { echo " <b>$b</b> "; } //Aus dieser Seite ist der User nicht, also einen Link ausgeben else { echo " <a href=\"?seite=$b\">$b</a> "; } } echo "</div>";
jetzt spuckt er mir diese felermeldung aus:
Warning: mysql_fetc_object(): suplied argument is not a validMySQL result resource in [Pfad] on line 358
Damit meint er also diese Zeile hier:
while($row = mysql_fetch_object($ergebnis))
wobei... da wei? ich jetzt ect net, was falsch sein soll... hat sclie?lic bis jetzt immer fein geklapt... -
?hmmm.... jaaaaaaa
Wie get denn sowas? -
So wie mir das vorkam, hattest du 2mal hinter den echos in der schleife eine schlie?ende klammer mit semikolon.
so sollte es nun klappen
<? $kategorie = $_POST['kategorie']; $anzahl = $_POST['anzahl']; //Wenn man keine Seite angegeben hat, ist man automatisch auf Seite 1 $seite = !is_null($_GET["seite"]) ? $_GET["seite"] : 1; //Abfrage auf welcher Seite man ist //Verbindung zu Datenbank aufbauen $link = mysql_connect("Host","User","Passwort") or die ("Keine Verbindung moeglich"); mysql_select_db("Datenbank") or die ("Die Datenbank existiert nicht"); //Eintr?ge pro Seite: Hier 15 pro Seite $eintraege_pro_seite = $anzahl; //Ausrechen welche Spalte man zuerst ausgeben muss: $start = $seite * $eintraege_pro_seite - $eintraege_pro_seite; if($kategorie=="Alles") { //Tabelle Abfragen //Tabelle hei?t hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder ORDER BY id DESC LIMIT ".$start.", ".$eintraege_pro_seite.";"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo '<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>'; // Hier die Ausgabe der Eintr?ge } else { //Tabelle Abfragen //Tabelle hei?t hier einfach: Tabelle $abfrage = "SELECT bild FROM uploadbilder WHERE name LIKE '".$kategorie."' ORDER BY id DESC LIMIT ".$start.", ".$eintraege_pro_seite.";"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { echo '<a title="'.$row->bild.'" target="_blank" href="uploadbilder/'.$row->bild.'"> <img border="0" src="uploadbilder/'.$row->bild.'" width="150" height="200"></a>'; // Hier die Ausgabe der Eintr?ge } //Jetzt kommt das "Inhaltsverzeichnis", //sprich dort steht jetzt: Seite: 1 2 3 4 5 //Wieviele Eintr?ge gibt es ?berhaupt //Wichtig! Hier muss die gleiche Abfrage sein, wie bei der Ausgabe der Daten //also der gleiche Text wie in der Variable $abfrage, blo? das hier das LIMIT fehlt //Sonst funktioniert die Bl?tterfunktion nicht richtig, //und hier kann nur 1 Feld abgefragt werden, also id $result = mysql_query("SELECT bilderid FROM uploadbilder"); $menge = mysql_num_rows($result); //Errechnen wieviele Seiten es geben wird $wieviel_seiten = $menge / $eintraege_pro_seite; //Ausgabe der Seitenlinks: echo "<div align=\"center\">"; echo "<b>Seite:</b> "; //Ausgabe der Links zu den Seiten for($a=0; $a < $wieviel_seiten; $a++) { $b = $a + 1; //Wenn der User sich auf dieser Seite befindet, keinen Link ausgeben if($seite == $b) echo " <b>".$b)."</b>"; else //Aus dieser Seite ist der User nicht, also einen Link ausgeben echo ' <a href="?seite='.$b.'">'.$b.'</a>'; } echo "</div>";?>
// edit: ansonsten w?rd ich ?berpr?fen ob der query wirklich ein ergebnis zur?ckliefert.
Beitrag ge?ndert am 26.06.2006 18:15 von evil-devil -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage