ERLEDIGT
NEIN
NEIN
ANTWORTEN
19
19
ZUGRIFFE
1396
1396
EMPFEHLEN
-
Hey Leute...total simples beispiel doch dieses bißchen PHP bringt meine ganze Seite durcheinander.
ALSO. . .
Es ist wie folgt: In einer Liste sollen alle User angezeigt werden, die momentan "online" sind. Funktioniert im übrigen einwandfrei. Danach soll jedes gefundene Datenbankeintrag verwendet werden, um das entsprechende Foto dieses Users zu laden. Doch das macht mein Script eben nicht. Ich hab die Seite schritt für schritt auskommentiert um den Fehler zu finden. Und ich habe ihn, weiß nur nicht wieso das falsch ist.
Schaut selbst:
Die Funktion, die ich nur formuliert habe, weil ich dachte es bringe was sieht so aus:PHP-Code:<select onchange="document.getElementById('imgID').src=this.options[this.selectedIndex].value;" style="height:190px; font:Verdana, Arial, Helvetica, sans-serif; font-size:12px; color:#FFFFFF; width:100%; background-color:#a3915a; border:none; " name="select" size="10" id="select">
<?
//Einträge bearbeiten
$query = "
SELECT
`online_user`
FROM
`g2g_online`
WHERE
UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(`online_time`) <= 180 ORDER BY online_user ASC ";
$onr=mysql_query($query) or die(mysql_error());
while($row=mysql_fetch_assoc($onr)){
$user=$row['online_user'];
echo " <option value=\"".imageGet($user)."\">".$user."</option>";
}
?>
</select>
die Zeile die Probleme macht, ist folgende:PHP-Code:function imageGet($nick)
{
$img="SELECT * FROM g2g_user_images WHERE nick='".$nick."' AND standard='1'";
$result=mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($result)==0){
return $img="user_images/no_img.jpg";
}else{
$img=mysql_fetch_assoc($result);
return $img=$img['img'];
}
}
Denn dann funktioniert alles. Zwar gibts kein Foto, aber immerhin wird die Seite richtig zu Ende aufgebaut und die Liste wird mit Werten gefüllt. Ich denke mal dass es nicht ausschließlich an dieser einen Zeile liegt, denn die scheint ja richtig zu sein, aber hoffe das ihr nen Grund kennt. Jedenfalls wenn ich die Zeile auskommentiere/lösche, gibt es keine Probleme. . . Fehlermeldungen kommen nicht. . .PHP-Code:$result=mysql_query($sql) or die(mysql_error());
BESTEN DANK IM VORRAUS
Ben<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 01:34 #2
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
eine DB-Abfrage innerhalb einer while-Schleife ist aber schon übel...
Warum liest Du die Bilder nicht über einen JOIN gleich mit aus?
LG
-
wie meinst du das? kannst du mir ien beispiel geben!?
<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 01:47 #4
- Registriert seit
- Jun 2005
- Beiträge
- 303
Hallo @Grunge
Er meint das hier:
Mysql Join
Mit einem Join kannst du Tabellen mit einem query verbinden.
Der Vorteil liegt darin, dass du nicht 1000 Queries machen musst, sondern einer.
Und eines der performancelastigsten Dinge sind Mysql Queries.
Villeicht am anfang etwas verwirrend, aber du wirst sie schnell lieben lernen
Grüße SimonErich
-
29.08.08 01:50 #5
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Auf der Seite, die ich Dir verlinkt habe, sind doch Beispiele vorhanden. Aber bei einer Reaktionszeit von 3 Minuten hast Du vermutlich gar nicht draufgeklickt?
Du bräuchtest einen INNER JOIN.
LG
-
29.08.08 01:53 #6
- Registriert seit
- Jun 2005
- Beiträge
- 303
@kuddeldaddeldu
ich kannte diese gar nicht bzw. wusste nicht, dass selfhtml auch mysql beiträge hat.
Aber danke.
Die ist wirklich sehr viel einfacher zu verstehen als das Mysql Manual
-
nene habe es nur zu spät gesehen =)
also ich habe mich mal dran versucht. . . Aber irgendwie fehlt mir noch das praktische verständnis, um das zu verstehen und richtig auszuführen . . .Schaut mal:
Ausgabe ist leer. . .Kann mir jemand helfen?PHP-Code:$sql="SELECT
online_user,
g2g_user_images.img,
FROM g2g_online
INNER JOIN g2g_user_images ON g2g_online.online_user = g2g_user_images.nick";
<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 02:13 #8
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
das Prinzip hast Du doch schon verstanden. Genauso müsstest Du jetzt eigentlich alle Benutzer samt der Bilder bekommen. Hast Du das Statement mal in phpMyAdmin ausprobiert?
@Simon: Die beiden Self-Artikel sind wirklich nett für Leute, die noch nie etwas von Joins gehört haben. Das Manual ist da doch etwas... äh ... sperrig.
LG
-
kommt nichts, ich krieg den gleichen "Fehler" wie vorher . ..
<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 02:19 #10
- Registriert seit
- Jun 2005
- Beiträge
- 303
@Grunge
Bitte schau dir mal dein Statement genau an.
Du hast im Bereich zwischen SELECT und FROM einen Beistrich zu viel.
Bild mal bitte ein or mysql_error(); an dein Mysql Query dran, dann würdest du das sehen.
@kuddeldaddeldu
Ja stimmt.
Grüße Simon
-
29.08.08 02:22 #11
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
da ist ein Syntax-Fehler drin, den sowohl phpMyAdmin als auch die Funktion mysql_error() melden müssten. Das Komma hinter dem letzten selektierten Feld muss weg.
LG
-
stimmt. . . das problem ist, dass er nun alle, die irgendwann mal online waren und ein bild beseitzen ausgibt. Das ist ne menge =) wie kann ich
a) mit einbringen das es sich in der Tabelle von den bilder um standard=1 handeln muss
b) meine Bedingung das der benutzer momentan online sein muss?<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 02:28 #13
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
na, mit Deinen WHERE-Klauseln halt, die Du dann einfach mit AND verknüpfst.
LG
-
Okay wusste nicht, dass es so einfach ist. . . mhh nun gibts noch ein problem. er zeigt mir nur einen eintrag an...
das ist meine abfragePHP-Code:$sql="SELECT
online_user,
g2g_user_images.img
FROM g2g_online
INNER JOIN g2g_user_images ON g2g_online.online_user = g2g_user_images.nick WHERE UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(`online_time`) <= 180 AND g2g_user_images.standard='1' ORDER BY online_user ASC";
$onr=mysql_query($sql) or die(mysql_error());
<font color="#FF0000"><i>Besucht auch die <a href="http://www.dbcrew.board********" target="new">dbcrew</a> und verpasst nicht das beste:</i></font>
-
29.08.08 02:46 #15
- Registriert seit
- Dec 2007
- Ort
- Bremen
- Beiträge
- 3.418
Hi,
sieht aber richtig aus, die Abfrage. Bist Du sicher, dass mit den Daten alles stimmt?
LG
Ähnliche Themen
-
Abfrage SQL bringt falsches Ergebnis?
Von vms01 im Forum Relationale DatenbanksystemeAntworten: 6Letzter Beitrag: 24.03.10, 14:40 -
Link-Abfrage in einer Schleife PHP/MySQL
Von Joe im Forum PHPAntworten: 8Letzter Beitrag: 22.08.09, 03:31 -
Ausgabe einer while schleife bei abfrage aus mysql Datenbank
Von Shocktale im Forum PHPAntworten: 2Letzter Beitrag: 24.03.05, 21:05 -
MYSQL Abfrage in while - Schleife
Von gisi im Forum PHPAntworten: 3Letzter Beitrag: 05.01.05, 23:13 -
Probleme mit Abfrage in Schleife
Von encom im Forum PHPAntworten: 3Letzter Beitrag: 10.09.04, 18:48





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren