Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehlermeldung!!!
-=Taipan=- 12-06-2003, 17:41 Hi
hier ist meine fehlermeldung, die ich immer wieder erhalte!
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\MyServer\MyWeb\htdocs\Uebungen\Kevin_Yank\challenge2.php on line 65
oder das!
Error during the execution of the inquiry: Fehler in der Syntax bei '' in Zeile 1.
kann mir bitte einer von euch helfen?
quelltext:
<?php
if (isset($addjoke)):
?>
<form action="<?=$PHP_SELF?>" method="post">
<p>Geben Sie ihren Witz hier ein:<br>
Author: <input type="Text" name="name" size="30">
EMail: <input type="Text" name="email" size="30"><br><br>
<textarea name="joketext" rows="10" cols="40" wrap>
</textarea><br>
<input type="Submit" name="submitjoke" value="Speichern">
</p>
</form>
<?php
else:
$dbc = @mysql_connect("localhost", "xxx", "xxx");
if (! $dbc) {
echo ("Can not connectet to the server Please try late");
exit();
}
if (! @mysql_select_db("Jokes")) {
echo ("Selection of the data base at present not possible");
exit();
}
if ($submitjoke == "Speichern") {
$sql = "INSERT INTO Jokes SET JokeText='$joketext', Name='$name', EMail='email', JokeDate=CURDATE()";
if (@mysql_query($sql)) {
echo ("Congratulations! Their Joke was registered in the data base!<br>");
} else {
echo ("Error with add the Joke:<br> " . mysql_error());
}
}
if (isset($deletejoke)) {
$sql = "DELETE FROM Jokes WHERE ID = $deletejoke";
if (@mysql_query($sql)) {
echo ("The Joke was removed from that data base!<br>");
} else {
echo ("Error with delete the Joke:<br> " . mysql_error());
}
}
echo ("Here are all Joke in ours data base!<br><br>");
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes");
if (!$jokelist) {
echo ("Error during the execution of the inquiry: " . mysql_error());
exit();
}
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
}
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid");
if (!$authordetails) {
echo ("Error during the execution of the inquiry: " . mysql_error());
exit();
}
while ($author = mysql_fetch_array($authordetails)) {
$name = $author["Name"];
$email = $author["EMail"];
echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$id</td><td>$joketext</td><td>$name</td><td>$email</td><td>$jokedate</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
echo ("<a href='$PHP_SELF?addjoke=1'>Add own joke!</a>");
endif;
?>
php.tags presented by Abraxax
1. kann man schon an der meldung erkenne, dass es ein sql-problem gibt. *VERSCHIEB*
2. poste bitte demnächst ins richtige forum
3. solltest du mal die @'s entfernen! :teach:
4. ist ein or die(mysql_error()) bei den abfragen SEHR NÜTZLICH.
5. machst du 3-4 korrekt und postest dann dein ergebnis.
6. alles klar?
-=Taipan=- 12-06-2003, 17:55 hi Abraxax
danke für den schnellen antwort!
aber das mit dem @ ist nur dafür gedacht, um meine fehlermeldung anzuzeigen, was du ja bestimmt auch weisst! was hat das mit mein problem zu tun? übrigens in anderen scripten funkt es!
ich habe ein datenbank mit 2 tabellen erstellt! der eine heisst jokes und der andere authors! jokes beinhaltet die texte, datum und den AuthorID und authors speichert den namen und emailadresse vom author ab!
gruss
TP
Original geschrieben von -=Taipan=-
aber das mit dem @ ist nur dafür gedacht, um meine fehlermeldung anzuzeigen, was du ja bestimmt auch weisst! schon klar. aber zum testen/entwickeln solltest du es lassen.
ausserdem... was ist mit punkt 4 ?
Gibt es da ein Mißverständnis?
Du schreibst aber das mit dem @ ist nur dafür gedacht, um meine fehlermeldung anzuzeigen,
Genau das tut es gerade nicht. @ verhindert die Ausgabe eines Fehlers !!
Die Fehler beziehen sich vermutlich auf die Zeile:
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid");
Ist die Variable $aid überhaupt mit einem Wert belegt?
mach mal ein
print "aid:$aid<br>\n";
danach
-=Taipan=- 12-06-2003, 18:20 also gut!
ich habe es geändert, aber es hat sich nichts geändert :(
es kommt immernoch die fehlermeldung ->
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in E:\MyServer\MyWeb\htdocs\Uebungen\Kevin_Yank\challenge2.php on line 65
die texte, id, date und delete funktion wird angezeigt, wie schon am anfang!
<?php
else:
$dbc = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
if (! mysql_select_db("Jokes")) {
echo ("Selection of the data base at present not possible");
exit();
}
if ($submitjoke == "Speichern") {
$sql = "INSERT INTO Jokes SET JokeText='$joketext', Name='$name', EMail='email', JokeDate=CURDATE()";
if (! mysql_query($sql)) {
echo ("Congratulations! Their Joke was registered in the data base!<br>");
} else {
echo ("Error with add the Joke:<br> " . mysql_error());
}
}
if (isset($deletejoke)) {
$sql = "DELETE FROM Jokes WHERE ID = $deletejoke";
if (! mysql_query($sql)) {
echo ("The Joke was removed from that data base!<br>");
} else {
echo ("Error with delete the Joke:<br> " . mysql_error());
}
}
echo ("Here are all Joke in ours data base!<br><br>");
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes");
if (!$jokelist) {
echo ("Error during the execution of the inquiry: " . mysql_error());
exit();
}
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid");
$author = mysql_fetch_array($authordetails);
$name = $author["Name"];
$email = $author["EMail"];
echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$id</td><td>$joketext</td><td>$name</td><td>$email</td><td>$jokedate</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
echo ("<a href='$PHP_SELF?addjoke=1'>Add own joke!</a>");
endif;
?>
-=Taipan=- 12-06-2003, 18:41 fehler soll angeblich auf line 65 siehe markierung -> liegen!
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes");
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
-> $authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid");
$author = mysql_fetch_array($authordetails);
$name = $author["Name"];
$email = $author["EMail"];
Vor diese Zeile schreib bitte mal :
print "aid:$aid<br>\n";
Damit schauen wir nach, ob $aid gesetzt ist.
Das Ergebnis poste bitte
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes");wo ist hier das or die(...)? :goth:
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes") or die(mysql_error());
Genau das tut es gerade nicht. @ verhindert die Ausgabe eines Fehlers !! @hand. er will die php.meldungen unterdrücken und SEINE eigenen meldungen anzeigen. ;)
@-=Taipan=-
kannst du bitte php.tags verwenden, wenn du code postest. danke.
-=Taipan=- 12-06-2003, 19:21 @Abraxax
besser so:)
@hand
meinst du es so?
wenn ja, kommt nur dies!
Here are all Joke in ours data base!
aid:
Fehler in der Syntax bei '' in Zeile 1.
print "aid:$aid<br>\n";
$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes") or die(mysql_error());
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid") or die(mysql_error());
$author = mysql_fetch_array($authordetails);
$name = $author["Name"];
$email = $author["EMail"];
echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$id</td><td>$joketext</td><td>$name</td><td>$email</td><td>$jokedate</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
echo ("<a href='$PHP_SELF?addjoke=1'>Add own joke!</a>");
endif;
?>
ja. so ists besser und man kann es auch lesen. ;)
aid:
Fehler in der Syntax bei '' in Zeile 1. das ist eine mysql-meldung. der grund deines fehlers. deine abfrage ist nicht korrekt. um rauszufinden, was da nicht stimmt mache bitte alles deine queries anders. ;)
bisher$jokelist = mysql_query("SELECT ID, JokeText, JokeDate, AID FROM Jokes") or die(mysql_error());neu$sql = "SELECT ID, JokeText, JokeDate, AID FROM Jokes";
echo "<pre>".$sql."</pre>"; // nur zum testen eine ausgabe
$jokelist = mysql_query($sql) or die(mysql_error());
was steht jetzt da?
-=Taipan=- 12-06-2003, 20:59 meinst du es so, dann wird garnichts mehr angezeigt!
folgende fehlermeldung kommt!
Here are all Joke in ours data base!
SELECT ID, JokeText, JokeDate, AID FROM Jokes
Fehler in der Syntax bei '' in Zeile 1.
$sql = "SELECT ID, JokeText, JokeDate, AID FROM Jokes";
echo "<pre>".$sql."</pre>"; // nur zum testen eine ausgabe
$jokelist = mysql_query($sql) or die(mysql_error());
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid") or die(mysql_error());
$author = mysql_fetch_array($authordetails);
$name = $author["Name"];
$email = $author["EMail"];
echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$id</td><td>$joketext</td><td>$name</td><td>$email</td><td>$jokedate</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
echo ("<a href='$PHP_SELF?addjoke=1'>Add own joke!</a>");
endif;
?>
Original geschrieben von -=Taipan=-
aid:
Das ist das Resultat des
print "aid:$aid<br>\n";
Die Variable $aid ist nicht belegt, das ist die Ursache für Dein Problem:
Deshalb wird gegen die Datenbank ein falscher Befehl abgesetzt
SELECT Name, EMail FROM Authors WHERE ID=
-=Taipan=- 12-06-2003, 21:06 und wenn ich die zweite query wie unten im bespiel auskommentiere, kommt zwar die tabellenfelder was ich unter while schleife anfrage, dennoch funkt die funktion net, sprich delete oder add funktionen!
$sql = "SELECT ID, JokeText, JokeDate, AID FROM Jokes";
echo "<pre>".$sql."</pre>"; // nur zum testen eine ausgabe
$jokelist = mysql_query($sql) or die(mysql_error());
while ($joke = mysql_fetch_array($jokelist)) {
$id = $joke["ID"];
$joketext = $joke["JokeText"];
$jokedate = $joke["JokeDate"];
$aid = $joke["AID"];
//$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid") or die(mysql_error());
// $author = mysql_fetch_array($authordetails);
// $name = $author["Name"];
// $email = $author["EMail"];
echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$id</td><td>$joketext</td><td>$name</td><td>$email</td><td>$jokedate</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
echo ("<a href='$PHP_SELF?addjoke=1'>Add own joke!</a>");
endif;
?>
-=Taipan=- 12-06-2003, 21:10 @hand
Die Variable $aid ist nicht belegt, das ist die Ursache für Dein Problem:
$aid ist im datenbank unter jokes vorhanden! was meinst du eigentlich mit nicht belegt?
hier ist ein kopie von meinem datenbank!
mysql> show tables;
+-----------------+
| Tables_in_jokes |
+-----------------+
| authors |
| jokes |
+-----------------+
2 rows in set (0.00 sec)
mysql> describe jokes;
+----------+---------+------+-----+------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------+---------+------+-----+------------+----------------+
| ID | int(11) | | PRI | NULL | auto_increment |
| JokeText | text | YES | | NULL | |
| JokeDate | date | | | 0000-00-00 | |
| AID | int(11) | YES | | NULL | |
+----------+---------+------+-----+------------+----------------+
4 rows in set (0.05 sec)
Original geschrieben von -=Taipan=-
$aid ist im datenbank unter jokes vorhanden! was meinst du eigentlich mit nicht belegt?du will was in der query verwenden, was deinem script noch nicht bekannt ist. daher kannst du es nicht verwenden. ;)
d.h. $aid muss irgendwo VOR DER ABFRAGE definiert werdne, damit du es IN DER ABFRAGE nutzen kannst.
-=Taipan=- 12-06-2003, 22:19 @abraxax
hey meister danke das du und hand mir versucht zu helfen!
ich weiss nicht so recht, aber kann es sein das ich vieleicht zu dum bin, es zu vestehen oder liegt es an etwas anderes?
du hast geschrieben:
d.h. $aid muss irgendwo VOR DER ABFRAGE definiert werdne, damit du es IN DER ABFRAGE nutzen kannst.
aber wo genau soll ich es definieren?
ich habe versucht einen neuen code zu erstellen, mit dem geringsten was nötig ist und $aid habe ich unter $sql = "INSERT definiert"! (siehe bespiel!)
dennoch kommt die folgende fehlermaldung :(
<?php
else:
$dbc = mysql_connect("localhost", "xxx", "xxx") or die(mysql_error());
if (! mysql_select_db("Jokes")) {
echo ("Selection of the data base at present not possible");
exit();
}
if ($submitjoke == "Speichern") {
$sql = "INSERT INTO Jokes SET JokeText='$joketext', AID='$aid', Name='$name', EMail='email'";
if (! mysql_query($sql)) {
echo ("Congratulations! Their Joke was registered in the data base!<br>");
} else {
echo ("Error with add the Joke:<br> " . mysql_error());
}
}
if (isset($deletejoke)) {
$sql = "DELETE FROM Jokes WHERE ID = $deletejoke";
if (! mysql_query($sql)) {
echo ("The Joke was removed from that data base!<br>");
} else {
echo ("Error with delete the Joke:<br> " . mysql_error());
}
}
echo ("Here are all Joke in ours data base!<br><br>");
//$sql = "SELECT ID, JokeText, JokeDate, AID FROM Jokes";
//echo "<pre>".$sql."</pre>"; // nur zum testen eine ausgabe
//$jokelist = mysql_query($sql) or die(mysql_error());
$jokelist = mysql_query("SELECT JokeText, AID FROM Jokes");
while ($joke = mysql_fetch_array($jokelist)) {
$joketext = $joke["JokeText"];
$aid = $joke["AID"];
$authordetails = mysql_query("SELECT Name, EMail FROM Authors WHERE ID=$aid");
$author = mysql_fetch_array($authordetails);
$name = $author["Name"];
$email = $author["EMail"];
echo ("$joketext<br>" . "von <a href='mailto:$email'>$name</a>");
// echo ("<table cellspacing='2' cellpadding='2' border='1' width='100%'><tr><td>$joketext</td><td>$name</td><td>$email</td><td><a href='$PHP_SELF?deletejoke=$jokeid'>" . "Delete joke from Database</a></td></tr></table>");
}
?>
du verwendest zweimal WHERE ID=.... und das was dahinter ist, muss definiert sein.
eine möglichkeit... du übergibts den script einen parameter 'aid'
also ....deinscript.php?aid=1 und dann im script $aid = $_GET['aid']irgendwo oben.
oder du definiertst es im script selber. $aid = 4;
|
|