Ankündigung

Einklappen
Keine Ankündigung bisher.

Undefined offset

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Undefined offset

    Hi,

    habe eine Fotgalerie, bei der ich in der Übersicht 12 Bilder anzeige. Den offset für den Query habe ich so bestimmt:

    Code:
    $offset = ($page - 1) * LIMIT_PIC;
    $page ist die aktuelle Seite. Mein SQL Query sieht so aus:
    Code:
    $sql = "SELECT
    				   bild,
    				   Beschreibung,
    				   category,
    				   ID,
    				   ID_category
    				FROM
    				   pics
    				WHERE
    				   category = '".$_GET['kategorie']."'
    				ORDER BY
    				   ID ASC
    				LIMIT
    				   ".$offset.",".LIMIT_PIC.";";
    Mein Problem ist jetzt, dass ich, wenn weniger als 12 Bilder anzuzeigen sind. (z.B. auf der letzten Seite nur 11), dann bekomme ich folgende Meldung:
    Notice: Undefined offset: 11 in /var/www/localhost/htdocs/pictures/gallery.php on line 171
    Jemand ne Idee, wie ich die weg bekomme? (hab schon versucht den Offset auf 12 zu setzen, was mein Limit ist, hat aber nix gebracht...

    mfg koelle

  • #2
    Hi,

    ich glaub ich weiß woran es liegt. Am 2D Array in den die Bilder geschrieben werden. Im Gästebuch bekomme ich nämlich keine Meldung, dass der offser nicht definiert ist. Hier die Fuktion:
    Code:
    	function query_into_array()
    	{
    		$sql = $this->create_query();
    
    		settype($pics,"array");
    		$result = mysql_query($sql) OR die(mysql_error());
    		$y = mysql_num_rows($result);
    		$k = mysql_num_fields($result);
    	
    		for($i = 0; $i < $y; $i++)
    		{
    			for($j = 0; $j < $k; $j++)
    			{
    				$pics[$i][mysql_field_name($result, $j)] = 
    				mysql_result($result,$i,
    				mysql_field_name($result,$j));
    			}
    		}
    		return $pics;
    	}
    Wie ich den wegbekomme weiß ich aber leider net...

    mfg koelle

    Kommentar


    • #3
      Kann mir da keiner helfen??

      mfg koelle

      Kommentar


      • #4
        mit isset überprüfen ob er gesetzt ist?

        mfg
        robo47
        [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
        | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

        Kommentar


        • #5
          liegt an dem LIMIT_PIC würde ich sagen.
          1. wo kommt das her?
          2. was steht drin? 12?
          3. was ist denn zeile 171?
          [b][url=http://www.benjamin-klaile.de]privater Blog[/url][/b]

          Kommentar


          • #6
            Hi,

            das sich meine Bilderanzahl verändert hat, ist der undefined offset jetzt in Zeile 157. Hier die Zeilen 137-166:
            PHP-Code:
            <?php
            // write data into a 2D array 
            $arr $gallery->query_into_array(); 
                     
            // get the number of pictures 
            $y count($arr); 

            if(
            $y == 0)
            {
                echo 
            "Sorry, es sind leider keine Eintr&auml;ge in der Datenbank vorhanden";
            }

            // print the pictures and titles
            for($x 0$x $y$x+=4)
            {
                
            // generate Links for Diashow
                
            if($category != '*')
                {
                    
            $link1 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x]['id_category']."";
                    
            $link2 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+1]['id_category']."";
                    
            $link3 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+2]['id_category']."";
                    
            $link4 ="gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+3]['id_category']."";  // ---> 157
                
            }
                elseif(
            $category == '*')
                {
                    
            $link1 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x]['id']."";
                    
            $link2 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+1]['id']."";
                    
            $link3 "gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+2]['id']."";
                    
            $link4 ="gallery.php?action=dia&amp;kategorie=".$category."&amp;bild=".$arr[$x+3]['id']."";  
                }
            ?>
            Alllerdings glaub ich nicht, das diese Zeilen weiterhelfen. In LIMIT_PIC, heißt jetzt $cfg['limit'][['pics'], steht 12 drin.

            Der Fehler kommt aber nur, wenn eine Bilderzahl angezeigt wird, die nicht durch 4 teilbar ist. Heißt bei 4, 8, 12 Bildern kommt die Meldung nicht.
            Es hat ziehmlich sicher was mit der fuktion "query_into_array" zu tun, weil ich in nem Gästebuhc auch ein LIMIT habe, aber da keine Meldung kommt...

            Ich wüsste auch nicht, wo ich überprüfen sollte, ob "offset" gesetzt ist...

            mfg koelle

            Kommentar


            • #7
              scroll mal hoch, less meinen eintrag und versuchs mal mit isset zu überprüfen und wenns ned existiert, einfach leer lassen ($linkX = "") und halt bei der ausgabe dann mittels empty überprüfen und auch kein <a href> und so ausgeben.
              [URL="http://www.robo47.net"]robo47.net[/URL] - Blog, Codeschnipsel und mehr
              | :arrow: [URL="http://www.robo47.net/blog/192-Caching-Libraries-and-Opcode-Caches-in-php-An-Overview"]Caching-Klassen und Opcode Caches in php[/URL] | :arrow: [URL="http://www.robo47.net/components"]Robo47 Components - PHP Library extending Zend Framework[/URL]

              Kommentar

              Lädt...
              X