fehler... aber warum in line 37?

ti8

Grünschnabel
Hey Leute,

ich weiß einfach nicht, wo der Fehler liegt ..


Das wird mir als Fehler gezeigt :


Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /mnt/web7/43/20/51785920/htdocs/index.php on line 37


Das habe ich gescriptet


<?php
include("include/dbconnect.php");
include("include/sess.php");
$sqlt1 = "SELECT * FROM texte WHERE db_txtid = '7'";
$rest1 = mysql_query($sqlt1);
while($row = mysql_fetch_assoc($rest1)) {
$db_txtid1 = $row['db_txtid'];
$db_txtcontent1 = $row['db_txtcontent'];
}
$header = $db_txtcontent1;
include("include/header.php");
include("include/left.php");
$sqlt8 = "SELECT * FROM texte WHERE db_txtid = '8'";
$rest8 = mysql_query($sqlt8);
while($row = mysql_fetch_assoc($rest8)) {
$db_txtid8 = $row['db_txtid'];
$db_txtcontent8 = $row['db_txtcontent'];
print ("<tr><td>$db_txtcontent8</td></tr>");
}
print ("
<tr><td>&nbsp;</td></tr>
<tr><td id='linebsk'><img src='img/clearpix2.gif' width='488' height='1' border='0'></td></tr>
<tr><td height=20><b>Unsere Top-Artikel:</b></td></tr>
<tr><td id='linebsk'><img src='img/clearpix2.gif' width='488' height='1' border='0'></td></tr>
<tr><td>&nbsp;</td></tr>
<tr><td>
<table width=480 border=0 cellpadding=0 cellspacing=0>");
$topartstart=0; $topartend=3;

for ($i=0;$i<$db_topid1;$i++) {
print ("<tr>");


$x=1;
$sqla1 = "SELECT * FROM topartikel ORDER by db_topid DESC limit $topartstart, $topartend";
$resa1 = mysql_query($sqla1);
while($row = mysql_fetch_assoc($resa1)) {
$db_topid = $row['db_topid'];
$db_topart = $row['db_topart'];
$db_toptitel = $row['db_toptitel'];
$db_toppreis = $row['db_toppreis'];
$db_topimg = $row['db_topimg'];
$db_topimgw = $row['db_topimgw'];
$db_topimgh = $row['db_topimgh'];

if ($db_topimg != '') { $image= "artikel/".$db_topimg;
if ($db_topimgw>=$db_topimgh) {
$breite = "100"; $brprozent = ((100 * $breite) / $db_topimgw);
$hoehe = (($db_topimgh * $brprozent) / 100); $hoehe = (ceil ($hoehe));
}
else { $hoehe = "67"; $brprozent = ((100 * $hoehe) / $db_topimgh);
$breite = (($db_topimgw * $brprozent) / 100); $breite = (ceil ($breite));
}
}
else {
$image = "img/nopic3.png"; $breite = "100"; $hoehe = "67";
}
$len = strlen($db_toptitel);
if ($len>17) {
$db_toptitel = substr($db_toptitel, 0, 17); $db_toptitel .= "...";
}

print ("<td width=150 id='toptab'>
<table width=150 border=0 cellpadding=0 cellspacing=0>
<tr><td align=center height=105><a href='details.php?kat=0&sess=$sess&ts=$ts&next=0&page=0&back=index&artikel=$db_topart' onFocus='if (this.blur) this.blur()'><img src='$image' width='$breite' height='$hoehe' style='border:1px solid #cccccc;'></a></td></tr>
<tr><td align=center height=20><a href='details.php?kat=0&sess=$sess&ts=$ts&next=0&page=0&back=index&artikel=$db_topart' onFocus='if (this.blur) this.blur()'>$db_toptitel</a></td></tr><tr><td height=15 align=center><b>$db_adminwaehrung $db_toppreis</b></td></tr>
</table>
</td>");
if ($x!='3') {
print ("<td width=15 id='space'>&nbsp;</td>");
}
$x++;
}


print ("</tr><tr><td>&nbsp;</td></tr>");
$topartstart=$topartstart + 3;
}


print ("
</table>
</td></tr>
");
include("include/pages0.php");
include("include/right.php");
include("include/footer.php");
mysql_close($verbindung);
?>



Wäre super, wenn mir einer helfen könnte.


Grüße, ti8
 
Bitte, bitte den Code in Zukunft in [PHP]mein Code[/PHP] setzen

Die Fehlermeldung ist sehr bekannt. Geh mal anhand des folgenden Tutorials auf Fehlersuche
Da die diese Art von Fragen sehr oft kommt, habe ich mal ein Tutorial geschrieben wie man am besten auf Fehlersuche geht.
PHP MySQL Debug Queries
Geh es doch mal durch und falls du die Lösung nicht findest, poste mal das ausgegebe SQL-Statement ins Forum.
 
Versuche einfach mal die Abfrage
:37 while($row = mysql_fetch_array($resa1)) {
anstellte
:37 while($row = mysql_fetch_assoc($resa1)) {

Wenn das richtig verstanden haben liefert mysql_fetch_assoc nur ein assoziatives Array.

Vielleicht hilft das schon...
 
Vielleicht hilft das schon...

Ganz bestimmt nicht. Der Fehler lautet, das keine gültige Ergebnisvariable an mysql_fetch* übergeben wird. Daran ändert auch ein anderes mysql_fetch* nichts.

Der Fehler liegt in seinem Query. Wenn er mal diese Zeile hier etwas umformt:

PHP:
$resa1 = mysql_query($sqla1);

nämlich zu

PHP:
$resa1 = mysql_query($sqla1) or die(mysql_error());

wird er den Fehler selbst sehen.

Notfalls auch noch den Query mal mit ausgeben:


PHP:
$resa1 = mysql_query($sqla1);
if( !$resa1 )
{
  echo "MySQL-Fehler: " . mysql_error(). " beim Ausführen des Queries<pre>";
  echo $sqla1;
  echo "</pre>";
}

Die Meldung "supplied argument is not a valid MySQL result resource" ist IMMER ein Fehler im Query, vor allem wenn man erwartet, das da Datensätze zurück kommen. Übersetzen könnte man es mit "Übergebenes Argument ist kein gültiges MySQL-Ergebnis".
 
Zurück