Problem mit Galerie die aus Datenbank abgefragt wird

Zimtgruen

Erfahrenes Mitglied
Ich hab ein kleines Problem mit meinem PHP Code auf dieser Seite: http://www.zimtgruen.de/gmensch.php

Folgender Fehler wird angezeigt:
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /var/www/web16/html/gmensch.php on line 58

Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /var/www/web16/html/gmensch.php on line 62

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /var/www/web16/html/gmensch.php on line 69

Und das ist der betreffende Code:
PHP:
<?php   
$anzeigen=1; //Anzahl der Datensätze, die auf einer Seite angezeigt werden sollen
if($_GET['vor']){$start=$_GET['start']+$anzeigen;}
elseif($_GET['back']){$start=$_GET['start']-$anzeigen;}
else{$start=$_GET['start']-1;}
//Auslesen der Einträge
$tabellenname="gmensch";
$sql="SELECT ID, Bild, titel FROM $tabellenname LIMIT $start , $anzeigen"; 
                                                // nur bestimmte Einträge anzeigen
// Verbindung zur Datenbank 
$link = mysql_connect("localhost", "Benutzername", "Passwort");
mysql_select_db("usr_web16_1", $link);
$result = mysql_query($sql, $link);
for($i=0;$i<mysql_num_rows($result);$i++)
//Ermitteln, wie viele Einträge vorliegen
$sql1="SELECT COUNT(*) FROM $tabellenname ";
$result1 = mysql_query($sql1, $link);
$max= mysql_result($result1,0,0);
//Ausgeben der Links vor und zur¸ck     
?><center><table class="galerie" width="500" border="0"><tr><td align="left" width="70"><?php
if($start>=$anzeigen)
 echo "<a href=\"".$_SERVER['PHP_SELF']."?start=".$start."&back=1\">Zur¸ck</a>";
echo "</td><td align=\"center\" width=\"360\">";
{
$row=mysql_fetch_array($result);
echo "<b>".$row['titel']." </b></td>";
} 
if($start<$max-1)
 echo "<td align=\"right\" width=\"70\"><a href=\"".$SERVER['PHP_SELF']."?start=".$start."&vor=1\">Weiter</a></td>";
echo "</tr></table><br>";
echo "<img src=\"".$row['Bild']."\"><p><br>"; 
           
?>

Besagte Zeilen sind:
line 58:
PHP:
for($i=0;$i<mysql_num_rows($result);$i++)
line 62:
PHP:
$max= mysql_result($result1,0,0);
line 69:
PHP:
$row=mysql_fetch_array($result);

Kann mir da einer helfen?
Und das Problem besteht nur, solange man nicht auf eines der Vorschaubildchen geklickt hat, dann funktioniert alles.
 
Zuletzt bearbeitet:
Hi Zimtgruen,

schreib doch mal in die erste Zeile folgendes:

PHP:
$start = 1;
if( isset( $_GET["start"] ) && !empty( $_GET["start"] ) )
{
  $start = $_GET["start"];
}

Du überprüfst niemals ob $_GET["start"] überhaupt gegeben wird, bzw. ziehst du den Wert in "$anzeigen" von "$start" ab, obwohl "$start" keinen initialen Wert enthält. (Evtl. '0').

Wenn du deine Seite also ohne Parameter aufrufst, dann sieht deine SQL Abfrage so aus:

SQL:
SELECT ID, Bild, titel FROM $tabellenname LIMIT -1, 1

Ich hoffe ich lag da jetzt nicht falsch, hab grad nur einen kurzen Blick drüber geworfen :)

Gruß
Manuel
 
Zuletzt bearbeitet von einem Moderator:
Also wenn ich das da einsetze kommt, einfach nur folgender Fehler
Parse error: syntax error, unexpected T_STRING in /var/www/web16/html/gmensch.php on line 47

Betreffende Zeile
PHP:
if(isset($_GET["start"])&&!empty($_GET["start"]))

ich hab noch nicht herausgefunden was ihm da jetzt probleme macht
 
Hallo,

in dieser Zeile ist kein Fehler. Vermutlich also in der vorhergehenden. Sieht aus, als hättest du vergessen einen String abzuschließen (" oder ').
 
Ich weiß, es ist ein wenig ab vom Thema, aber du solltest, wenn du Variablen in deinen SQL-Abfragen nutzt, unbedingt funktionen wie mysql_real_escape_string() benutzen, um die Gefahr von SQL-Injections zu verringern.

PS: Zum unerwarteten String: könnte evt. auch an 'nem fehlenden Semikolon in der vorhergehenden Zeile liegen.
 
Ja, der Fehler muss schon irgendwo davor kommen.
Entweder du findest ihn selbst oder postest einfach mal die gesamte Datei hier.

Manuel.
 
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>ZIMTGRUEN.DE KUNST IN ZIMTGRUENER FORM</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>

<body>
<div id="container">
	<div id="header"></div>
	
	<div id="menu">
    <iframe id="imenu" name="main" src="menu.html" width="190px" frameborder="0" style="FILTER: chroma (color=#FFFFFF);" scroll="no">
  </iframe><p>
  
  
  <?php
	// Verbindung zur Datenbank 
$link = mysql_connect("localhost", "benutzername", "passwort");
mysql_select_db("datenbank", $link);




$sql = "SELECT ID, Bild, titel FROM gmensch";
$ergebnis = mysql_query($sql);
$nummer = 1;
	while($array = mysql_fetch_array($ergebnis))
	{



	echo " <a href=\"gmensch.php?start=$nummer\" target=\"_top\"><img src=\"thumbnail.php?Bild=".$array["Bild"]."\" border=\"0\" alt=\"".$array["titel"]."\"  style=\"height:33px; overflow:hidden;\"></a>";
$nummer++;
}
?>
  
  
    
    </div>
    
    
	<div id="contents">
<?php



$anzeigen=1; //Anzahl der Datenstze, die auf einer Seite angezeigt werden sollen
if($_GET['vor']){$start=$_GET['start']+$anzeigen;}
elseif($_GET['back']){$start=$_GET['start']-$anzeigen;}
else{$start=$_GET['start']-1;}
//Auslesen der Eintrge
$tabellenname="gmensch";
$sql="SELECT ID, Bild, titel FROM $tabellenname LIMIT $start , $anzeigen"; 
                                                // nur bestimmte Eintrge anzeigen
// Verbindung zur Datenbank 
$link = mysql_connect("localhost", "benutzername", "passwort");
mysql_select_db("datenbank", $link);
$result = mysql_query($sql, $link);
for($i=0;$i<mysql_num_rows($result);$i++);
//Ermitteln, wie viele Eintrge vorliegen
$sql1="SELECT COUNT(*) FROM $tabellenname ";
$result1 = mysql_query($sql1, $link);
$max= mysql_result($result1,0,0);
//Ausgeben der Links vor und zurck     
?><center><table class="galerie" width="500" border="0"><tr><td align="left" width="70"><?php
if($start>=$anzeigen)
 echo "<a href=\"".$_SERVER['PHP_SELF']."?start=".$start."&back=1\">Zur&uuml;ck</a>";
echo "</td><td align=\"center\" width=\"360\">";
{
$row=mysql_fetch_array($result);
echo "Fehler: ".mysql_error(); 
echo "<b>".$row['titel']." </b></td>";
} 
if($start<$max-1)
 echo "<td align=\"right\" width=\"70\"><a href=\"".$SERVER['PHP_SELF']."?start=".$start."&vor=1\">Weiter</a></td>";
echo "</tr></table><br>";
echo "<img src=\"".$row['Bild']."\"><p><br>"; 
      
?>
</div>
<div id="footer">&copy; by Pauline Bruckner</div>
</div>



<!-- /container -->
</body>
</html>

so das ist die komplette datei
 
also ich hab den Fehler selbst gefunden
der liegt nämlich hier
PHP:
else{$start=$_GET['start']-1;}
die 1 muss eine 0 sein und dann gehts =)
 
Hallo!

also ich hab den Fehler selbst gefunden
der liegt nämlich hier
PHP:
else{$start=$_GET['start']-1;}
die 1 muss eine 0 sein und dann gehts =)
Zu früh gefreut.
Klicke mal links auf ein Thumbnail und vergleiche dieses mit dem angezeigten Bild. ;)

Es wird immer das jeweilige Folgebild angezeigt, bzw beim klick auf das letzte Thumbnail wird garkein Bild angezeigt.

Gruss Dr Dau
 
grumml....jah das liegt an den ids, da ich ein paar bilder daraus mal gelöscht hab und jetzt fehlen ein paar ids und damit kommt er irgendwie nich zurecht, den fehler hatte ich schonmal und ich hab ihn irgendwie gelöst, ich weiß nur nicht mehr wie

Edit: nein es liegt nicht an den ids.....gnah.....

Edit2: Problem auch gelöst =)
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück