Archiv verlassen und diese Seite im Standarddesign anzeigen : newbie problem:(
whistler81 05-12-2001, 10:42 hallo mitsammen!
hab da folgenden Code programmiert um monatlich einen anderen Text auszulesen:
"<?
include "config.inc.php";
mysql_connect($sqlhost,$sqluser,$sqlpass) or die ("Couldn't connect to MySQL Server!");
mysql_select_db($database) or die ("Keine Verbindung zur Datenbank!");
$result= mysql_query("SELECT ID FROM $table WHERE id = date'(m)'");
while ($spalte= mysql_fetch_array($result))
{
echo "<tr><td>";
echo implode("</td><td>",$spalte);
echo "<tr></tr>";
}
echo "</table>";
?>
Nur leider erscheint ein leeres weißes Browserfenster??Warum?Liegt es am Script oder an der Datenbank??Die db ist so konfiguriert:
1. ID-int(10) auto increament
2. text - varchar(250)
wäre für jede hilfe dankbar!
Clemens
Spalte ist vom Datentyp ein Array.
Entweder du sprichst jedes Element einzeln an ( z.B Spalte[0] )
oder du schreibst eine weitere Schleife zum Auslesen
..aber eigentlich sollte er "Array" ausgeben..wenn du echo $Spalte eingibst
es fehlt die Zeile in der du die Tabel öffnest !
Ausserdem sollte es wohl
echo "</tr><tr>";
heißen und nicht
echo "<tr></tr>";
@kinetko
Das stimmt nicht was du da schreibst, implode fügt die Arrayelemente zu einem String zusammen !
[Editiert von JoelH am 05-12-2001 um 11:21]
*g*
Der Code :
$result= mysql_query("SELECT ID FROM $table WHERE id = date'(m)'");
echo "<table>";
while ($spalte= mysql_fetch_array($result))
{
echo "<tr>";
echo "<td>$Spalte[0]</td>";
echo "</tr>";
}
echo "</table>";
so funzt es glaube ich...jetzt sollte es wirklich
[Editiert von KinNeko am 05-12-2001 um 11:36]
@joel
hmm..paßt dann doch auch nicht mit dem html syntax oder ?
ausserdem fehlt <table> start tag..
kannst du auch zusammenfügen..aber result ist nun mal nur eine spalte..
ID
er soll ja alle anfragen der datenbank überlassen.
..also gibt man gleich weiterführende Infos :)
da fällt mir gerade ein dass das was du da ausliest quatsch ist !!! du liest die ID aus aber die ist dir ja schon bekannt ! du das sollte
SELECT text FROM $tabelle WHERE ID = date(m)
heisen
MySQL besteht auf Case Sensity also wenn deine Spalte ID heisst ist das nicht dasselbe wie id !!!
@kineko
Jupp, das ist mit auch aufgefallen das er ID ausliest, aber wie gesagt, implode fügt die elemente zusammen und nimmt "</td><td>" zwischen die Elemente.
whistler81 05-12-2001, 11:28 sag mal danke bis jetzt:
nur jetzt schreibt er mir hin dass in dieser Zeile ein Pars Error ist:
echo "<td>$Spalte[0]</td>");
es fehlt ihm ein "," oder ";" es doch alles da oder??
:(
okay. wiedermal was gelernt :) Kann ich gut gebrauchen.
dann fehlt ein <table> und ein </td> fehlt und ein <tr> ist zu viel da.
Schreibe mir eh die Tabellenstruktur erstmal in HTML vor.
Original geschrieben von whistler81
sag mal danke bis jetzt:
nur jetzt schreibt er mir hin dass in dieser Zeile ein Pars Error ist:
echo "<td>$Spalte[0]</td>");
es fehlt ihm ein "," oder ";" es doch alles da oder??
:(
Copy&Paste Fehler von mir..die Klammer zu hat da nichts zu suchen..habs auch oben berichtigt
whistler81 05-12-2001, 11:37 irgendwie kenn ich mich jetzt nicht mehr aus was falsch ist und was nicht :)
vielleicht kanns mir jemand erklären?thx
whistler81 05-12-2001, 11:39 *ups* die kleine Klammer fällt garnicht auf:9
ok habs jetzt weg- geht aber trotzdem noch immer nicht - hab jetzt wieder einen leeres Brwoser Fenster:((
Falsch ist beides nicht..es gibt immer viel Wege etwas zu lösen.
Bei Ergebnissen mit mehreren Spalten würde ich (nach Belehrung von Joel ;) folgenden Code verwenden.
$result= mysql_query("SELECT ID FROM $table WHERE id = date'(m)'");
echo "<table>";
while ($spalte= mysql_fetch_array($result))
{
echo "<tr><td>";
echo implode("</td><td>",$Spalte);
echo "</td>";
echo "</tr>";
}
echo "</table>";
Tipp: Immmer wenn du eine leere Seite zurückbekommst, schau dir erstmal den HTML Code an. Meistens liegt der Fehler da. z.B Netscape regiert allergisch auf fehlende </table> tags.
[Editiert von KinNeko am 05-12-2001 um 12:03]
Original geschrieben von whistler81
*ups* die kleine Klammer fällt garnicht auf:9
ok habs jetzt weg- geht aber trotzdem noch immer nicht - hab jetzt wieder einen leeres Brwoser Fenster:((
Ersetz die Variable durch einen konstanten String. Wenn der auch nicht auftaucht und du nur folgenden html code hast ist die anfrage leer..
<table>
<tr>
</tr>
</table>
whistler81 05-12-2001, 11:49 jetzt hab ich wieder einen parse error hier
echo "</tr>";
??
Der Fehler liegt eine Zeile höher ..
echo implode("<td></td>,$Spalte); <<-- hinter </td> fehlt ein "
oben ist der Code schon berichtigt
Bin halt einer der schnell flüchtigkeitfehler macht..
War noch ein Fehler drin..
implode setzte ja den string zwischen die Elemente..
also fehlte der <td> tag
jetzt sollte es gehen..
whistler81 05-12-2001, 12:12 und wo ghört der td tag hin?
das script geht trotzdem nicht ->noch immer weißes Fenster
muss jetzt leider weg-werde mich dann am Abend mit den hoffentlich weiteren Tipps beschäftigen!
ein Dankeschön mal an Alle!:)
clemens
[Editiert von whistler81 am 05-12-2001 um 12:17]
Fragen :
1. Wie sieht der HTML Code aus, der produziert wird ?
2. Gib mal die DB-Anfrage als String aus.
Der Code ist berichtigt..sollte funktionieren..aber vielleicht könnte jemand der implode kennt, sich den noch mal anschauen. Kann ihn hier nicht testen.
whistler81 05-12-2001, 16:39 der Code besteht nur aus
"<table></table>"
da hats irgendwas gröberes hm?
an der Tabelle kanns nicht liegen?Hab oben eh schon mal gschrieben wie sie konfiguriert ist.
ganz einfach..
das Ergebnis der Anfrage ist LEER ! deswegen wird die schleife nicht durchlaufen..
..laß mal die Query ausgeben. Meistens hast du da einen Tipfehler...
äh... ist das nicht eine reihe, die ihr abfragt? keine spalte? nur so der logik wegen...
|