Problem mit Position In Bildergallery

don_lex

Grünschnabel
Guten Morgen zusammen
Ich habe auf einer Webseite eine Bildergallery gebastelt. Sie funktioniert sonst absolut richtig (Position wird richtig angezeigt, das Bild wird auch richtig angezeigt).
Wenn Allerdings das erste Bild angezeigt wird,kommt ein mysql-Query-Fehler (Bild und Position werden aber richtig angezeigt). Der Fehler kommt in Linie 40.
Kann mir jemand bitte helfen. Hier die Fehlermeldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/www/web162/html/includes/gallery/anzeigebild.php on line 40

und hier der Quellcode:


PHP:
<?php 
error_reporting(E_ALL); 
//Parameter einbinden
include '../../admin/param/param.php';

//SQL Verbindung
$sqlverbindung = mysql_connect($host, $username, $password) or die("Fehler beim verbinden zu der Datenbank");
mysql_select_db($db, $sqlverbindung);

//Variabeln übernehmen und definieren
$bildid = $_GET['bild'];
$ukat = $_GET['ukat'];
$position = $_GET['position'];
echo "::$position";
//Namebild auslesen
$result15 = mysql_query("SELECT name FROM novicomcms_gallerybilder  WHERE id = '$bildid'");
$data15 = mysql_fetch_array($result15);
$namebild = $data15['name'];

//Das grösste ID auslesen
$result1 = mysql_query("SELECT id FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' ORDER BY name, id DESC");
$data1 = mysql_fetch_array($result1);
$maxid = $data1['id'];

//Summe ID nummer auslesen
$result3 = mysql_query("SELECT COUNT(id) as summe FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat'");
$data3 = mysql_fetch_array($result3);
$summe = $data3['summe'];

//Letztes Bild auslesen
$summemod = $summe-1;
$result2 = mysql_query("SELECT id FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' ORDER BY name, id DESC LIMIT $summemod, 1");
$data2 = mysql_fetch_array($result2);
$minid = $data2['id'];
-------------------------------------------------------------------------------------------
//Vorige ID auslesen
$pos = $position-2;
//echo "::$pos";
$result35 = mysql_query("SELECT id as nextid FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' ORDER BY name, id DESC LIMIT $pos,1");
$data35 = mysql_fetch_array($result35);   <--------------------------------Linie 40
$nextid = $data35['nextid'];
if (empty($nextid)) {
$nextid = -1;
}
---------------------------------------------------------------------------------------------
//Nächste ID auslesen
/*$result15 = mysql_query("SELECT id as previd FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' AND name = '$namebild' AND id < '$bildid' ORDER BY id DESC");
$lala = mysql_num_rows($result15);
if (mysql_num_rows($result15) == 0) {
$result5 = mysql_query("SELECT id as previd FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' AND name > '$namebild' ORDER BY name, id DESC");
$data5 = mysql_fetch_array($result5);
$previd = $data5['previd'];
}
else {
$result5 = mysql_query("SELECT id as previd FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' AND name = '$namebild' AND id < '$bildid' ORDER BY id DESC");
$data5 = mysql_fetch_array($result5);
$previd = $data5['previd'];
}
*/
$pos = $position;
$result25 = mysql_query("SELECT id as previd FROM novicomcms_gallerybilder WHERE unterkategorie = '$ukat' ORDER BY name, id DESC LIMIT $pos,1");
$data25 = mysql_fetch_array($result25);
$previd = $data25['previd'];
if (empty($previd)) {
$previd = -1;
}
if (empty($previd)) {
$previd = -1;
}

//Bild eigenschaften auslesen
$bildnr = $position;
$positionplus = $position+1;
if ($positionplus > $summe) {
$positionplus = 1;
}

$positionminus = $position-1;

if ($positionminus < 1) {
$positionminus = $summe;
}


$result = mysql_query("SELECT name, name_gross, kommentar FROM novicomcms_gallerybilder  WHERE id = '$bildid'");
$data = mysql_fetch_array($result);
$name = $data['name'];
$bild = $data['name_gross'];
$kommentar = stripslashes($data['kommentar']);


//SQL Verbindung trennen
mysql_close($sqlverbindung);
?>

                <?php
	if ($previd == -1) {
	echo "<a href=\"anzeigebild.php?bild=$maxid&ukat=$ukat&position=$positionplus\"><img src=\"../../layout/next.gif\" width=\"30\" height=\"30\" border=\"0\"></a>";
	}
	else {
	echo "<a href=\"anzeigebild.php?bild=$previd&ukat=$ukat&position=$positionplus\"><img src=\"../../layout/next.gif\" width=\"30\" height=\"30\" border=\"0\"></a>";
	}
	?>
              </td>
              
              <td width="50" align="left"><a href="anzeigebild.php?bild=<?=$minid?>&ukat=<?=$ukat?>&position=<?=$summe?>"><img src="../../layout/forwardtoend.gif" width="30" height="30" border="0"></a></td>
 
Vermutlich hast du einen Fehler im Query...

mach mal:
PHP:
mysql_query(/*query*/) or die(mysql_error());
und schau dir die Fehlermeldung an
 
Habe mir eben auch schon gedacht, dass es ein Query Fehler ist.
wenn ich mysql_error reintue, dann kommt folgende Fehlermeldung:

Query Fehler SELECT id as nextid FROM novicomcms_gallerybilder WHERE unterkategorie = '3' ORDER BY name, id DESC LIMIT -1,1You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '-1,1' at line 1
 
$pos ist -1... Du sagst der Datenbank, sie solle dir einen Datensatz, beginnend beim MINUSS ersten, liefern. Das kann nicht funktionieren :)
 
aber witzigerweise funktioniert es bei einer anderen Gallery, die genau den gleichen code hat, einwandfrei. kann dir mal einen screenshot von dem anderen schicken wenn du willst.also $pos als echo ausgeben.
 
Zuletzt bearbeitet:
hier der screenshot
-------
Also ja sie gibt -1 aus.
und noch echo des sql-Strings : SELECT id as nextid FROM novicomcms_gallerybilder WHERE unterkategorie = '61' ORDER BY name, id DESC LIMIT -1,1
 

Anhänge

  • screen.JPG
    screen.JPG
    2,3 KB · Aufrufe: 41
Zuletzt bearbeitet:
Naja mysql_error() sagt aber eindeutig, dass der Fehler da liegt. Versuch mal mit $pos=0. Wenns dann geht, war das der Fehler, ungeachtet dessen, dass es andernorts läuft (was ich mir ehrlich gesagt nicht wirklich vorstellen kann).
 
habe jetzt das eingefügt.
PHP:
if ($pos < 0) {
$pos = 0;
}

der fehler kommt nicht mehr. aber wenn ich jetzt von Bild 1/10 auf 10/10 gehe, dann kommt 2 mal das gleiche bild, was ich wiederum auch nicht verstehe.

hmm ich kann dir den link schon mal geben für die Gallery die funktioniert.
 
Zurück