CronJob-Service
bei SELFPHP mit ...
|
+ minütlichen Aufrufen
+ eigenem Crontab Eintrag
+ unbegrenzten CronJobs
+ Statistiken
+ Beispielaufrufen
+ Control-Bereich
Führen Sie mit den CronJobs von
SELFPHP zeitgesteuert Programme
auf Ihrem Server
aus. Weitere Infos
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
16.05.2003, 16:03:26
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
SQL ABfrage in Tabelle ausgeben.
Hallo zusammen, bin recht neu in dem Gebiet PHP & SQL und habe auch schon gleich ein mehr oder weniger roßes Probleme.
Ich möchte die Werte einer SQL Abfrage in eine Tabelle ausgeben, doch leider funzt das nicht so wie ich es haben will. Ich will eine Tabelle mit 4 Spalten und 2 Zeilen.
Leider kriege ich aber immer nur eine Table mit 1 Spalte und 8 Zeilen. Hier mal mein Code:
$sql = "select Nick,Picture from chat_userpages";
$erg = mysql_query ($sql);
echo"<table border=1>";
while ($row= mysql_fetch_row($erg)){
echo "<tr>";
echo "<td BG COLOR='#000000' width='100'>$row[0]</td></TR>";
echo "<tr><td BG Color=#000000 width='100'> <img src=$row[1] border='0'> </td></TR>";
$zahl+=1;
if ($zahl==5){
echo "</table>";
break;}
}
mysql_close($db_handle);
?>
-----
$row[0] ist der Nick und $row[1] ist das Bild, ich möchte nun aber eine Tabelle die so aussieht:
Nick1 Nick2 nick3 Nick4
Bild1 Bild2 Bild3 Bild 4
Könnt Ihr mir da weiterhelfen ?
Danke schonmal.
bye
|
16.05.2003, 16:16:10
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Versuch's mal so:
PHP-Code:
$sql = "select Nick,Picture from chat_userpages";
$erg = mysql_query ($sql);
echo "<table border='1'>";
echo "<tr>";
while ($row= mysql_fetch_row($erg))
echo "<td BGCOLOR='#000000' width='100'>$row[0]</td>";
echo "</tr>";
echo "<tr>";
reset($erg);
while ($row= mysql_fetch_row($erg))
echo "<td BGColor=#000000 width='100'><img src='$row[1]' border='0'></td>";
echo "</tr>";
echo "</table>";
Wenn mir mal einfallen würde, wie man den Zeiger von $erg wieder an den Anfang bringt, dann könnte man sich die zweite Abfrage sparen. Ich such mal...
Ach ja: Das Attribut bgcolor wird zusammen geschrieben. ;)
Edit: Hab's gefunden mit dem Pointer und angepasst. Könnte sein, dass es klappt.
Geändert von c4 (16.05.2003 um 16:27:26 Uhr)
|
16.05.2003, 16:22:26
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
Hmm,
danke Dir, habe das mal glecih ausprobiert. SIeht jetzt so aus:
PHP-Code:
$db_handle=connect_db($DATABASEHOST,$DATABASEUSER,$DATABASEPASSWD);
if($db_handle<1){
exit;
}
$zahl=0;
echo "<table border='1'>";
echo "<tr>";
$sql = "select Nick from chat_userpages";
$erg = mysql_query ($sql);
while ($row= mysql_fetch_row($erg)){
echo "<td BGCOLOR='#000000' width='100'>$row[0]</td>";
echo "</tr>";
echo "<tr>";
$sql = "select Picture from chat_userpages";
$erg = mysql_query ($sql);
while ($row= mysql_fetch_row($erg)){
echo "<td BGColor=#000000 width='100'><img src='$row[1]' border='0'></td>";
echo "</table>";
$zahl+=1;
if ($zahl==5){
echo "</table>";
break;}
mysql_close($db_handle);
?>
Kriege dann aber diese Fehlermeldung:
Parse error: parse error, unexpected $end in C:Inetpubwwwroottestwebchathtmlnewtest.php on line 36
|
16.05.2003, 16:25:08
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Ich hatte das Skript da oben nochmal überarbeitet. Versuch es mal mit der Variante. Wenn auch die nicht geht, dann gib bitte wieder die Fehlermeldung an und auch, welche Zeile das ist! Ich hab nicht das Bedürfnis 36 Zeilen durchzuzählen...
Hab das Fehlerchen gerade gesehen: Die geschweiften Klammern hinter while() müssen weg.
|
16.05.2003, 16:32:19
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
Also habe die geschweiften KLammern mal weggelassen, dann wurde aber nur 2 Spalten mit den Nicks ausgegeben.
Ich habe jetzt mal folgenden Code probiert:
[PHP]
if($db_handle<1){
exit;
}
$zahl=0;
$sql = "select Nick,Picture from chat_userpages";
$erg = mysql_query ($sql);
echo "<table border='1'>";
echo "<tr>";
while ($row= mysql_fetch_row($erg))
echo "<td BGCOLOR='#000000' width='100'>$row[0]</td>";
echo "</tr>";
echo "<tr>";
reset($erg); ( ZEILE 25)
while ($row= mysql_fetch_row($erg))
echo "<td BGColor=#000000 width='100'><img src='$row[1]' border='0'></td>";
echo "</table>";
$zahl+=1;
if ($zahl==5){
break;}
}}
mysql_close($db_handle);
?>
Dann bekomme ich eine Tabelle mit 2 Zeile, allerdings erscheint dann nur nickA und darunter das bild von Nickb.
AUsserdem gibts ne Fehlermeldung:
reset() [function.reset]: Passed variable is not an array or object in C:Inetpubwwwroottestwebchathtmlnewtest.php on line 25
Zeile 25 hab ich markiert.
|
16.05.2003, 16:36:53
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Schei$$e. Dann klappt das also nicht mit reset(). Schade, schade...
Kannst Du das Problemchen nicht vielleicht umgehen, in dem Du Name und Bild in ein Feld der Tabelle packst? Entspricht vielleicht nicht unbedingt Deinen Vorstellungen im Bezug auf das enstehende Design, aber weniger umständlich ist es auf alle Fälle.
Man könnte schließlich auch erst die Daten auslesen und in einem Array zwischenspeichern. Dann geht man dieses Array durch und lässt sich dann diese Tabelle zusammenschustern.
Wenn Du diese Idee durchexerziert haben willst, dann sag's ruhig. :)
|
16.05.2003, 21:33:17
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
@C4, an das zwischenspeichern in einem Array habe ich auch schon gedacht, aber ich weiss nit, wie ich das realisieren könnte.
Hast Du da eine Idee ?
Danke
|
16.05.2003, 21:37:42
|
SELFPHP Guru
|
|
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
|
|
Mal grob gefasst:
PHP-Code:
// einlesen
$sna=mysql_query($sql);
$i=0; while ($row=mysql_fetch_row($sna))
{ $arr[$i]=array($row[0],$row[1]); $i++; }
// ausgeben
echo "<table>";
echo "<tr>";
$i=0; while ($i<count($arr))
{ echo "<td>".$arr[$i][0]."</td>"; $i++; }
echo "</tr>";
echo "<tr>";
$i=0; while ($i<count($arr))
{ echo "<td>".$arr[$i][1]."</td>"; $i++; }
echo "</tr>";
echo "<table>";
Prinzip erkannt?
|
16.05.2003, 21:42:34
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
hmmm, werde ich nachher mal testen.
Wenn mans den Code so vor sich sieht, siehts so einfach und verständlich aus ;-)
Danke, werd Dir Bescheid geben, wenns gefunzt hat.
|
16.05.2003, 22:46:35
|
Anfänger
|
|
Registriert seit: May 2003
Beiträge: 9
|
|
Hmm, im großen und ganzen sollte es funktionieren. Das einzige Problem momentan ist, das wenn bei einem USer kein Bild hinterlegt ist, er auch nichts ausgibt.
Damit scheints zu gehn:
PHP-Code:
echo"<table><tr>";
$sql = "select Nick,Picture from chat_userpages where Picture !='' and Picture !='http://'";
$erg = mysql_query ($sql);
while ($row= mysql_fetch_row($erg)){
echo "<td><img src=$row[1] border='0'><br><center>$row[0]</center></td>";
$zahl+=1;
if ($zahl==5){
echo "</tr></table>";
Habe dadurch zwar bild und Nickname in einer Zelle, allerdings untereinander. Sieht man auch nicht so.
Danke nochmals. Wenn ich wieder auf ein Problem stoße, werde ich wieder nerven. ja ?
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 09:39:06 Uhr.
|