Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
newbie problem:( [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




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

 
KinNeko
05-12-2001, 11:18 
 
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

 
JoelH
05-12-2001, 11:19 
 
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]

 
KinNeko
05-12-2001, 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]

 
KinNeko
05-12-2001, 11:22 
 
@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 :)

 
JoelH
05-12-2001, 11:24 
 
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 !!!

 
JoelH
05-12-2001, 11:26 
 
@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??
:(

 
KinNeko
05-12-2001, 11:35 
 
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.

 
KinNeko
05-12-2001, 11:36 
 
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:((

 
KinNeko
05-12-2001, 11:41 
 
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]

 
KinNeko
05-12-2001, 11:42 
 
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>";

??

 
KinNeko
05-12-2001, 12:00 
 
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..

 
KinNeko
05-12-2001, 12:04 
 
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]

 
KinNeko
05-12-2001, 14:02 
 
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.

 
KinNeko
06-12-2001, 01:12 
 
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...

 
chuuido
29-01-2002, 04:22 
 
äh... ist das nicht eine reihe, die ihr abfragt? keine spalte? nur so der logik wegen...

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:06 Uhr.