mysql_fetch_array(): +fehler
Neo
- php
Hi ich habe einen Fehler in einem Script den ich nicht beheben kann. Warscheinlich habe i ein temp. Brett vor meinem Kopf. Hier das Script
function recentdown() {
global $prefix, $sitename;
$boxstuff = "";
$boxtitle = "";
$topdown = "3";
$boxstuff .="<center><a href="download.php">";
$boxstuff .="<img src="themes/dgfr/images/minib1.gif" border=0 valign=top> Last files available on $sitename...</a><br>";
$resultld = mysql_query("SELECT lid, cid, sid, title, date, hits from $prefix"._downloads_downloads." order by date DESC LIMIT $topdown");
while ($myrowld = mysql_fetch_array($resultld)) {
$boxstuff .= " <a href="modules.php?op=modload&name=Downloads&file=index&req=viewsdownload&sid=$myrowld[sid]">$myrowld[title]</a> (x$myrowld[hits])<br>\n";
#echo " $myrowld[date]<br>\n";
}
$boxstuff .= "</center>";
$boxtitle = "";
themecenterposts($boxtitle, $boxstuff);
mysql_free_result($resultld);
}
-------
Bekomme dann immer diese schoenen Fehler
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/server3/public_html/17/alex86/html/themes/dgfr/morefunc.php on line 163
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in /home/server3/public_html/17/alex86/html/themes/dgfr/morefunc.php on line 172
Ich weiß wirklich nicht warum ? Ist ein Tippfehler schuld?
MfG
Neo
Holladiewaldfee,
$resultld = mysql_query("SELECT lid, cid, sid, title, date, hits from $prefix"._downloads_downloads." order by date DESC LIMIT $topdown");
Was ist das?
Hast Du wirklich eine Konstante _donwloads_downloads definiert?
Es hat nämlich den Anschein als würde die Query nicht richtig sein - damit würde kein gültiges Ergebnis zurückgegeben (sonder ein Fehler). Und damit kann dann mysql_fetch_array nichts anfangen.
Ciao,
Harry
CREATE TABLE nuke\_downloads\_downloads
(
pn\_lid
int(11) NOT NULL auto_increment,
pn\_cid
int(11) NOT NULL default '0',
pn\_sid
int(11) NOT NULL default '0',
pn\_title
varchar(100) NOT NULL default '',
pn\_url
varchar(254) NOT NULL default '',
pn\_description
text NOT NULL,
pn\_date
datetime default NULL,
pn\_name
varchar(100) NOT NULL default '',
pn\_email
varchar(100) NOT NULL default '',
pn\_hits
int(11) NOT NULL default '0',
pn\_submitter
varchar(60) NOT NULL default '',
pn\_ratingsummary
double(6,4) NOT NULL default '0.0000',
pn\_totalvotes
int(11) NOT NULL default '0',
pn\_totalcomments
int(11) NOT NULL default '0',
pn\_filesize
int(11) NOT NULL default '0',
pn\_version
varchar(10) NOT NULL default '',
pn\_homepage
varchar(200) NOT NULL default '',
PRIMARY KEY (pn\_lid
)
) TYPE=MyISAM AUTO_INCREMENT=3 ;
Das ist die Struktur..
Bitte nicht schlagen, dass ich postnuke benutze, ist fürn Freund.
Doch irgendwie kann ich machen was ich will es reagiert ned..
Warscheinlich ist irgendwo ein winziger Fehler den ich übersehen habe...
MfG
Neo
Moin!
Hast Du wirklich eine Konstante _donwloads_downloads definiert?
Es hat nämlich den Anschein als würde die Query nicht richtig sein - damit würde kein gültiges Ergebnis zurückgegeben (sonder ein Fehler). Und damit kann dann mysql_fetch_array nichts anfangen.
Wenn Du das gefixt hast, dann kannst Du Dich dem von mir genannten problem zuwenden.
Außerdem:
$boxstuff .= " <a href="modules.php?op=modload&name=Downloadsamp;file=indexamp;req=viewsdownload&sid=".$myrowld['sid']."">".$myrowld['title']."</a> (x".$myrowld['hits'].")<br>\n";
Nur, damit valides HTML rauskommt.
Das ist ungetestet, kann also noch Fehler enthalten.
MFFG (Mit freundlich- friedfertigem Grinsen)
fastix®
Moin!
$boxstuff .= "...=$myrowld[sid]">$myrowld[title]......$myrowld[hits]...";
Also, müsste es nicht $myrowld['title'] und so weiter heissen?
fastix®
Jo, stimmt, aber der Fehler liegt glaube ich im query. Ich habe mir diese eine zeile mindestens schon 200 mal durchgelesen und finde den ollen fehler nicht...
MfG
Neo
Moin!
Jo, stimmt, aber der Fehler liegt glaube ich im query. Ich habe mir diese eine zeile mindestens schon 200 mal durchgelesen und finde den ollen fehler nicht...
Ein Tip:
Ich mach das meist so:
$sql="SELECT lid, cid, sid, title, date, hits from $prefix"._downloads_downloads." order by date DESC LIMIT $topdown";
$resultld = mysql_query($sql) or die ("<div style="border: thin solid red">".mysql_error()."</div>";
#Ausserdem:
while ($myrowld = mysql_fetch_array($resultld)) {
$print_sid = $myrowld['sid'];
$print_title = $myrowld['title'];
$print_hits = $myrowld['hits'];
# Das verkürzt die Zeilen, Du bekommst genauere Fehlermeldungen und Du kannst dann mit einfachen Variablen weiterarbeiten. An der Performance dürfte das nicht so viel verschlechtern. Ferner siehst Du "sofort" ob auch alle Daten abgefragt wurden.
#Und Du umgehst eine Menge Probleme in "Monsterzeilen":
$boxstuff .= " <a href="modules.php?op=modload&name=Downloads&file=index&req=viewsdownload&sid=$print_sid">$print_title</a> (x$print_hits)<br>\n";
} # end while (ein guter Kommentar, wenn es mal verschachtelter wird.
fastix®
big thx :) habe den Fehler gefunden juuhuu hatte anstatt lid rid geschrieben ^^ :)
Thanks a lot :)
MfG
Neo
Hallo,
$resultld = mysql_query("SELECT lid, cid, sid, title, date, hits from $prefix"._downloads_downloads." order by date DESC LIMIT $topdown");
$resultld = mysql_query("SELECT lid, cid, sid, title, date, hits from $prefix"._downloads_downloads." order by date DESC LIMIT $topdown") or die mysql_error();
Mit der somit ausgegebenen Fehlermeldung kann eine Diagnose gestellt werden.
Viele Grüße,
Christian
Hi,
die Fehlermeldung bring mir nun dies hier zu Tage...:
Parse error: parse error, unexpected T_STRING in morefunc.php on line 162
aber ich habe es so geschrieben wie immer, liegt da ein schreibfehler vor, oder liegt der Fehler wo anders`?
MfG
Neo
Kann mir da wirklich niemand helfen?
MfG
Neo
Sry 4 spam post ->verzweifle gerade..
Holladiewaldfee,
die Fehlermeldung bring mir nun dies hier zu Tage...:
Parse error: parse error, unexpected T_STRING in morefunc.php on line 162
Es wäre hilfreich, zu wissen, was in Zeile 162 steht ...
Ciao,
Harry