ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
525
525
EMPFEHLEN
-
18.05.05 20:27 #1
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
Hallo Allerseits,
Ich habe ein kleines News-Script, welches auch mal funktionierte...ich bin schon ganz kirre, finde den Fehler einfach nicht.
Vielleicht könnt Ihr mir helfen:
bei mir kommt nur noch die Fehlermeldung: Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Line 10PHP-Code:<?PHP
function displayNews($all = 0) {
global $db, $max_items;
if ($all == 0) {
$query = "SELECT id,title,newstext,DATE_FORMAT(postdate, '%Y-%m-%d') as date FROM news ORDER BY postdate DESC LIMIT ". $max_items;
} else {
$query = "SELECT id,title,newstext,DATE_FORMAT(postdate, '%Y-%m-%d') as date FROM news ORDER BY postdate DESC";
}
$result = mysql_query ($query);
while ($row = mysql_fetch_assoc ($result)) {
echo "<TABLE border=\"1\" width=\"300\">";
$date = $row['date'];
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));
echo "<TR><TD><b>".$title."</b> gepostet am ".$date."</TD></TR>\n";
echo "<TR><TD>".$news."</TD></TR>\n";
$comment_query = "SELECT count(*) FROM news_comments WHERE news_id=".$row['id'];
$comment_result = mysql_query ($comment_query);
$comment_row = mysql_fetch_row($comment_result);
echo "<TR><TD><a href=\"".$_SERVER['PHP_SELF']."?action=show&id=".$row['id']."\">Comments</a>" .$comment_row[0]."</TD></TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
}
if ($all == 0) {
echo "<a href='".$_SERVER['PHP_SELF'] ."?action=all'>Alle News</a>\n";
}
}
function displayComments($id) {
global $db;
$query = "SELECT * FROM news_comments WHERE news_id=".$id."\"";
$result = mysql_query ($query);
echo "Kommentare:<BR><HR width=\"300\>\n";
while ($row = mysql_fetch_assoc ($result)) {
echo "<TABLE border=\"1\" width=\"300\">\n";
$name = htmlentities ($row['name']);
echo "<TR><TD><b>von: $name</b></TD></TR>\n";
$comment = strip_tags ($row['comment'], '<a><b><i><u>');
$comment = nl2br ($comment);
echo "<TR><TD>$comment</TD></TR>\n";
echo "</TABLE>\n";
echo "<BR>n";
}
echo "<HR width=\"300\">";
echo "<FORM action=\"".$_SERVER['PHP_SELF'] ."?action=addcomment&id=".$id."\" method=POST>\n";
echo "Name: <input type=\"text\" width=\"30\" name=\"name\"><BR>\n";
echo "<TEXTAREA cols=\"40\" rows=\"5\" name=\"comment\"></TEXTAREA><BR>\n";
echo "<input type=\"submit\" name=\"submit\" value=\"Kommentar hinzufügen\"\n";
echo "</FORM>\n";
}
function displayOneItem($id) {
global $db;
$query = "SELECT * FROM news WHERE id=$id";
$result = mysql_query ($query);
if (mysql_num_rows ($result) == 0) {
echo "Keine News idn";
return;
}
$row = mysql_fetch_assoc($result);
echo "<TABLE border=\"1\" width=\"300\">n";
$title = htmlentities ($row['title']);
$news = nl2br (strip_tags ($row['newstext'], '<a><b><i><u>'));
echo "<TR><TD><b>$title</b></TD></TR>\n";
echo "<TR><TD>$news</TD></TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
displayComments($id);
}
function addComment($id) {
global $db;
$query = "INSERT INTO news_comments VALUES('',".$id.",'".$_POST['name']."','".$_POST['comment']."')";
mysql_query($query);
echo "Danke!<BR>\n";
echo "<a href=\"".$_SERVER['PHP_SELF']." ?action=show&id=".$id ."\">Zurück</a>\n";
}
echo "<CENTER>\n";
switch($_GET['action']) {
case 'show':
displayOneItem($_GET['id']);
break;
case 'all':
displayNews(1);
break;
case 'addcomment':
addComment($_GET['id']);
break;
default:
displayNews();
}
echo "</CENTER>\n";
$max_items = 5;
$db = mysql_connect('localhost','user','passwort');
mysql_select_db ('test',$db);
?>
Vielen Dank im Voraus
-
18.05.05 20:46 #2
Tja, dann stimmt offensichtlich irgendwas mit der Query nicht. Existieren wirklich alle Spalten? Heisst die Tabelle genau so? Überprüf alles nochmal genau, ansonsten häng mal ein or die(mysql_query()) an die Query an, das sollte Auskunft geben.
-
Möglicherweise liegt es daran, dass der Alias-Name date ein von MySQL geschützte Begriff ist.
-
18.05.05 21:09 #4
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
Hi SilentWarrior+Gumbo,
danke für die schnelle Antwort!
die gibt "Wrong parameter count for mysql_query() line10" aus, hier mal die Tables, ich kann da nix erkennen.
CREATE TABLE news (
id int(10) unsigned NOT NULL auto_increment,
postdate timestamp(14) NOT NULL,
title varchar(50) NOT NULL default '',
newstext text NOT NULL,
PRIMARY KEY (id),
KEY postdate (postdate)
) TYPE=MyISAM;
CREATE TABLE news_comments (
id int(10) unsigned NOT NULL auto_increment,
news_id int(10) unsigned NOT NULL default '0',
name varchar(40) NOT NULL default '',
COMMENT text NOT NULL,
PRIMARY KEY (id),
KEY news_id (news_id)
) TYPE=MyISAM;
@Gumbo: soweit ich mich erinnern kann, hab ich nichts gross ändern müssen, wo/wie schlagst du Umnennen vor?Geändert von dateninquisitor (18.05.05 um 21:14 Uhr)
-
Hinter limit fehlt eine Zahl

und statt as date
z.B. as datum
-
19.05.05 09:04 #6
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
Hi melmager!
wie meinst du "hinter limit fehlt eine zahl"?
hintendran wird doch 5 übergeben ($max_items).
Das mit "as datum" und $date = $row['datum'] funktioniert leider auch nicht
Dieses Script bringt mich noch ins Grab...
-
Hast Du schon mal versucht mit Hilfe eines echo's zu schauen, wie das Statement aussieht?
Vielleicht ergibt sich daraus ja schon die Lösung, ... (mir hilft sowas meistens weiter)!
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
19.05.05 09:16 #8
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
Hi redlama,
das war ein Versuch wert, leider ohne Erfolg:
echo:Code :1
SELECT id,title,newstext,DATE_FORMAT(postdate, '%Y-%m-%d') as datum FROM news ORDER BY postdate DESC LIMIT 5
-
Hast Du zufällig phpMyAdmin? Dann könntest Du das Statement, welches Du mit echo bekommen hast, mal dort ausführen und schauen, ob Du überhaupt ein Ergebnis geliefert bekommst!
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
19.05.05 09:53 #10
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
Auch eine gute Idee!
Ja, ich habe PHPMyAdmin und es geht dort wunderbar
Gruss
-
Na dann scheint es auf jeden Fall schon mal nicht an dem Statement an sich zu liegen.
Hast Du mal versucht das zu berücksichtigen, was Gumbo geschrieben hat?
Ändere doch mal das "as date" in "as xyz" um und $date = $row['date']; muss dann natürlich zu $date = $row['xyz']; werden.
Ansonsten fällt mir im moment auch nichts mehr ein, ...
redlamaWissen ist Macht! Nichts wissen macht auch nichts, ...
www.redlama.org
-
19.05.05 10:45 #12
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
hab ich auch schon gemacht, keinen erfolg
Ich muss jetzt erst einmal weg, werde mich nachher nochmal ZEILE FÜR ZEILE an das Stück machen, das muss doch zu knacken sein.
Bis dahin: Danke an alle
-
20.05.05 03:44 #13
- Registriert seit
- Mar 2005
- Ort
- 127.0.0.1
- Beiträge
- 56
PUH!
Vor lauter Bäumen den Wald nicht gesehn:
"$db = mysql_connect('localhost','user','passwort');
mysql_select_db ('test',$db);" muss natürlich vor dem Funktionsaufruf displaynews() stehen...
Gruss
Ähnliche Themen
-
newby braucht hilfe: mysql_fetch_assoc(): supplied argument is not a valid MySQL resu
Von Parker Lewis im Forum PHPAntworten: 3Letzter Beitrag: 06.11.10, 17:37 -
mysql_fetch_assoc is not valid Mysql
Von jdgf im Forum Relationale DatenbanksystemeAntworten: 5Letzter Beitrag: 18.03.10, 19:05 -
mysql_fetch_assoc() fehler
Von alex130 im Forum PHPAntworten: 16Letzter Beitrag: 30.05.09, 02:57 -
mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
Von 3dsmaxer im Forum PHPAntworten: 3Letzter Beitrag: 18.05.07, 13:12 -
Frage zu mysql_fetch_assoc()
Von maczack im Forum PHPAntworten: 7Letzter Beitrag: 31.01.05, 13:56





Zitieren
Login





