Werte aus zwei Arrays zu einem Query zusammenfügen

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

  • #16
    Eine JS-lose Variante wäre mir lieber. Nicht zu viele Sprachen durcheinander. Hab mit php noch genug Schwierigkeiten.
    Ich poste einfach mal die gesamte Datei in der sich abspielt bzw. abspielen soll.

    PHP-Code:
    <div id="contents">
    <?php
    //Datenbank verbinden
    require_once ($root "/functions/db_connection.php");

    $mx 4;   // Anzahl pro Zeile
    $query "SELECT thumbpfad, thumb, id FROM bilder";
    $result mysql_query($query);
    if (!
    $result
         {
          die(
    'Ungültige Abfrage: ' mysql_error());
         }
    echo 
    "<table border='0'>\n<tr>";   
    $i 0;   
    while (
    $row mysql_fetch_assoc($result))
    {
        echo 
    "<td><a href='index.php?ziel=fotoalbum&id=" $row['id'] . "'>
        <img src='" 
    $row['thumbpfad'] . "/" $row['thumb'] . "' alt='Bilder Johanna'></a></td>\n";
        
    $i ++;
        if (
    $i == $mx){
            echo 
    "</tr><tr>";
            
    $i 0;
        }
    }
    if (
    $i 0){
        for(;
    $i $mx;$i ++){
            echo 
    "<td>&nbsp;</td>";    
        }
    }
    echo 
    "</tr>\n</table>\n";


    if(isset(
    $_GET['id']))
        {
             
    $id intval($_GET['id']);
             
    $query "SELECT bildpfad, bild FROM bilder WHERE (id = '" $id "')";  
             
    $result mysql_query($query);
             if (!
    $result
                 {
                      die(
    'Ungültige Abfrage: ' mysql_error());
                 }
             while (
    $row=mysql_fetch_assoc($result))
                 {
                  echo 
    "<img src='" $row['bildpfad'] . "/" $row['bild'] . "' alt='Bilder Johanna'>";
                 }
    }
    ?>
    </div>
    Problem bei dem momentanen Stand ist, das die Thumbs im richtigen div angezeigt werden und auch der Link funktioniert. Nur sehe ich kein Ergebnis, da die Thumbs immer im Vordergrund bleiben. Idealerweise würde beim Klick auf eine Thumb die Ansicht in diesem div geladen und entsprechend die Blätterfunktion darunter. Link neben dem div contents gibts noch einen anderen div, aber in diesen sollen dann die Kategorieen um aus der der Vollbildanzeige wieder raus zu kommen. Oder es muss zur Blätterfunktion noch ein Link hinzu, der die Startseite wieder aufruft.
    Wie auch immer.
    Gruß

    Michael

    Kommentar


    • #17
      Hmm, den Link in eine neue Seite krieg ich gesetzt. Nur holt er dann Daten aus einer völlig anderen Tabelle.

      Hier der Link:
      PHP-Code:
      <a href='index.php?ziel=vollansicht&id=" . $row['id'] . "'> .... 
      Die vollansicht.php sieht so aus
      PHP-Code:
      <div id="contents">
      <?php
      //Datenbank verbinden
      require_once ($root "/functions/db_connection.php");
      echo 
      $_GET['id'];
      if(isset(
      $_GET['id']))
          {
               
      $id intval($_GET['id']);
               
      $query "SELECT bildpfad, bild FROM bilder WHERE (id = '" $id "')";  
               
      $result mysql_query($query);
               if (!
      $result
                   {
                        die(
      'Ungültige Abfrage: ' mysql_error());
                   }
               while (
      $row=mysql_fetch_assoc($result))
                   {
                    echo 
      "<img src='" $row['bildpfad'] . "/" $row['bild'] . "' alt='Bilder Johanna'>";
                   }
      }
      ?>
      </div>
      Problem ist nun, dass er aus der Tabelle news den Eintrag 1 holt und nicht aus der Tabelle bilder. Warum verstehe ich nicht, das Query sagt doch eindeutig Tabelle bilder.

      Ich habe in allen Tabellen eine Spalte id, die als PriKey für die Tabelle ist und per autoincrement hochzählt wenn was in die Tablle kommt.

      Gruß

      Michael
      Gruß

      Michael

      Kommentar


      • #18
        Ich würde das nicht als Popup machen, sondern einfac in einem neuen Fenster (bzw Tab, je nach Browser). Dies erreichst du, indem du bei deinem Link noch das Attribut target='_blank' mitgibst. Ausserdem gibst du dort die ID des Bildes noch als GET-Parameter mit. In der Detail-Ansicht holst du dann das entsprechende Bild und zeigst es an. Hier eine kurze Skizze:
        PHP-Code:
        <?php
        if (!isset($_GET['id'])){
            die(
        "No image defined");
        }
        else{
            
        $id $_GET['id'];
            if (
        preg_match('/^\d$/'$id)){
                
        $where "WHERE id = $id";
            }
            elseif (
        preg_match('/^\+\d$'$id)){
                
        $where "WHERE id > $id";
            }
            elseif (
        preg_match('/^-\d$'$id)){
                
        $where "WHERE id < $id";
            }
            else{
                die(
        "Invalid image id");
            }
        }
        $_self $_SERVER['PHP_SELF'];
        $query "SELECT
                    id,
                    imgpfad,
                    img
                  FROM 
                    bilder
                  
        $where
                  ORDER BY id
                  LIMIT 1"
        ;
        $res mysql_query($query) || die('Ungültige Abfrage: ' mysql_error());
        list(
        $id$pfad$bild) = mysql_fetch_row($res);
        printf("<table><tr><td><img src'%s/%s' alt='$bild' /></td></tr>"$pfad$bild);
        echo 
        "<tr><td align='center'><a href='$_self?id=-$id'><button> &lt; </button></a>";
        echo 
        "<a href='$_self?id=+$id'><button> &gt; </button></a></td></tr></table>";
        ?>
        Hier ein Beispiel, wie so etwas aussehen könnte (wenn auch etwas ausführlicheres).

        [edit]War wohl etwas langsam
        Gruss
        H2O

        Kommentar


        • #19
          Dies erreichst du, indem du bei deinem Link noch das Attribut target='_blank' mitgibst.
          Das target-Attribut gibt's nicht mehr!
          Ausserdem gibst du dort die ID des Bildes noch als GET-Parameter mit. In der Detail-Ansicht holst du dann das entsprechende Bild und zeigst es an.
          Die Vorgehensweise ist genau wie mit seinem Popup!

          @TO: Bist du sicher, dass deine gezeigte Query ausgeführt wird und du nicht irgendwo anders auf deine news-Tabelle zugreifst? Teste mal mit Kontrollausgaben, an welchen Stellen das Skript ausgeführt wird.

          Kommentar


          • #20
            Hallo fritzje610,
            habe damals auch immer Popups genutzt aber oft negative Kritik dazu bekommen da es ja auch User gibt die Popups nicht zulassen,....

            Ich kann dir folgende Gallery empfehlen :

            Image Galleries and Viewers
            FF1+ IE5+ Opr7+
            http://www.dynamicdrive.com/dynamici...tbox/index.htm

            oder

            Lightbox Image viewer v2.03a
            FF1+ IE5+ Opr7+
            http://www.dynamicdrive.com/dynamici...box2/index.htm

            Eine Vorschau auf meiner Seite kannst du hier sehen.

            Ich kanns dir nur wärmsten empfehlen. Bin zufrieden und habe bisher keine negativen Erfahrungen gesammelt.
            Selbst der Einbau ist sehr einfach. Fazit "Empfehlenswert"


            Gruß Thomas

            Kommentar


            • #21
              @escape. vielen Dank für die Links, aber ich würde es gerne selber schaffen sowas hin zu bekommen.

              @all. Ich verstehs nicht. Ich hab alle Querys die auf die Tab news gehen so geändert, dass es eigentlich ein SQL-Fehler geben muss. Aber nach wie vor wird beim klick auf ein Bild in der falschen Tab gesucht. Ich verstehs einfach nicht mehr, wo er die Infos dafür her haben will.
              Gruß

              Michael

              Kommentar


              • #22
                Original geschrieben von PHP-Desaster
                Das target-Attribut gibt's nicht mehr!
                Dannhier einfach mal der Quellcode deiner Signatur:
                Code:
                <a href="http://www.php-resource.de/forum/showthread.php?s=&threadid=89600" target="_blank">► PHP Resource <u>braucht</u> den Aufschwung!</a>
                Gruss
                H2O

                Kommentar


                • #23
                  Das target-Attribut gibt's nicht mehr!
                  Gilt aber afaik nur für XHTML und STRICT
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar


                  • #24
                    Also, ich hab den fehlerhaften Aufruf gefunden

                    PHP-Code:
                    <div id="menu">News:</div>
                       

                    <?php
                    $error 
                    = array ();

                    echo 
                    "<div id='contents'>";

                    //Datenbank verbinden
                    require_once ($root "/functions/db_connection.php");


                    //alle Datensätze im linken Menu laden
                    if(count($error) == 0)
                    {
                      if(!isset(
                    $_GET['id']))
                      {
                       
                    $query1 "SELECT * FROM news ORDER BY id DESC";
                       
                    $einzel mysql_query($query1);
                       if(!
                    $einzel)
                       {
                        
                    array_push($error"Datenbankeintrag fehlgeschlagen, bitte nochmals versuchen !");
                        echo 
                    mysql_error();
                       }
                       while (
                    $row mysql_fetch_assoc($einzel)) 
                       {
                        if (
                    $row['bereich'] == "Badminton")
                        {
                         
                    $bild "/images/badminton.gif";
                        } 
                        else if (
                    $row['bereich'] == "Fussball")
                        {
                         
                    $bild "/images/sfussball.gif";
                        } 
                        else if (
                    $row['bereich'] == "Taekwondo")
                        {
                         
                    $bild "/images/tkd.gif";
                        }
                        else if (
                    $row['bereich'] == "Turnen")
                        {
                         
                    $bild "/images/turnen.gif";
                        }
                        else if (
                    $row['bereich'] == "Volleyball")
                        {
                         
                    $bild "/images/vb.gif";
                        }
                        else if (
                    $row['bereich'] == "Fassenacht")
                        {
                         
                    $bild "/images/fassenacht.gif";
                        }
                        else if (
                    $row['bereich'] == "Familienfeier")
                        {
                         
                    $bild "/images/familie.gif";
                        }
                        else if (
                    $row['bereich'] == "Sportwochenende")
                        {
                         
                    $bild "/images/baustelle.gif";
                        }
                        else if (
                    $row['bereich'] == "Allgemeines")
                        {
                         
                    $bild "/images/allgemein.gif";
                        }
                        echo 
                    "<p>";
                        echo 
                    "<div id='ausgaben'>";
                        echo 
                    "<br>";
                        echo 
                    "<ausgabe><span>Bereich: " $row['bereich'] . "</span></ausgabe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    &nbsp;&nbsp;&nbsp;&nbsp;<img src='
                    $bild' width='50'    height='50' align='absmiddle'><p><br>";
                        echo 
                    "<ausgabe><span1>" $row['betreff'] . "<p></span1></ausgabe>";
                        echo 
                    "<br>";
                        echo 
                    $row['anlauf']. "<br>";
                        echo 
                    "<br><weiter>&nbsp;&nbsp;<a href='index.php?ziel=home&id=" $row['id'] . "'>[Weiterlesen]</a></weiter>";
                        echo 
                    "<br><hr>";
                        echo 
                    "<fuss>von: " $row['absender'] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eingestellt am: " $row['datum'] . 
                    "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bereits " $row['counter'] . " mal gelesen</fuss><br>";
                        echo 
                    "<p></div><br>";
                      }
                     }
                     else
                     {
                       
                    //Wenn was geklickt wurde die gklickte ID holen und Counter hochsetzen
                       
                    $id intval($_GET['id']);  
                       
                    $query "SELECT * FROM news WHERE id = '" $id "'";  
                       
                    $result mysql_query($query);
                       if (!
                    $result
                       {
                        die(
                    'Ungültige Abfrage: ' mysql_error());
                       }
                       while (
                    $row mysql_fetch_assoc($result)) 
                       {
                        if (
                    $row['bereich'] == "Badminton")
                        {
                         
                    $bild "/images/badminton.gif";
                        } 
                        else if (
                    $row['bereich'] == "Fussball")
                        {
                         
                    $bild "/images/sfussball.gif";
                        } 
                        else if (
                    $row['bereich'] == "Taekwondo")
                        {
                         
                    $bild "/images/tkd.gif";
                        }
                        else if (
                    $row['bereich'] == "Turnen")
                        {
                         
                    $bild "/images/turnen.gif";
                        }
                        else if (
                    $row['bereich'] == "Volleyball")
                        {
                         
                    $bild "/images/vb.gif";
                        }
                        else if (
                    $row['bereich'] == "Fassenacht")
                        {
                         
                    $bild "/images/fassenacht.gif";
                        }
                        else if (
                    $row['bereich'] == "Familienfeier")
                        {
                         
                    $bild "/images/familie.gif";
                        }
                        else if (
                    $row['bereich'] == "Sportwochenende")
                        {
                         
                    $bild "/images/baustelle.gif";
                        }
                        else if (
                    $row['bereich'] == "Allgemeines")
                        {
                         
                    $bild "/images/allgemein.gif";
                        }
                        echo 
                    "<p>";
                        echo 
                    "<div id='ausgaben'>";
                        echo 
                    "<br>";
                        echo 
                    "<ausgabe><span>Bereich: " $row['bereich'] . "</span></ausgabe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                    &nbsp;&nbsp;&nbsp;&nbsp;<img src='
                    $bild' width='50'    height='50' align='absmiddle'><p><br>";
                        echo 
                    "<ausgabe><span1>" $row['betreff'] . "<p></span1></ausgabe>";
                        echo 
                    "<br>";
                        echo 
                    $row['anlauf']. "<br>";
                        echo 
                    $row['text'] . "<br>";
                        echo 
                    "<br><hr>";
                        echo 
                    "von: " $row['absender'] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eingestellt am: " $row['datum'] . "<br>";
                        echo 
                    "<p></div><br>";
                       }  
                       
                    //Session kontrollieren ob schon mal geklickt und Datensatzklick zählen
                        
                    if(isset($_GET["id"]) && !in_array($_GET["id"], $_SESSION["clicked"]))
                        {
                          
                    $query "UPDATE news SET counter = counter + 1 WHERE id = '" $id "'";
                          
                    $result mysql_query($query);
                          if(!
                    $result)
                          {
                           die(
                    'Ungültige Abfrage: ' mysql_error());
                          }
                          else
                          {
                              
                    array_push($_SESSION["clicked"], $id);
                          }
                        }
                    }
                    //Fehlermeldungen ausgeben
                     
                    if (isset($error) && count($error) > 0//Prüfen ob array $error da ist UND ob es einen Eintrag hat.
                        
                    {
                          for (
                    $i=0$i count($error); $i++) //Ausgabe aller Einträge des Arrays $error
                             
                    {
                               echo 
                    "<p>" $error[$i] . "</p>";
                             } 
                        }
                    }
                    echo 
                    "</div>";    
                        
                    ?>

                    Ich befürchte mal, dass ich hier die Sache auf in zwei Dateien auflösen muss. Einmal die Voransicht und einmal der ausführliche Bericht, oder ?!?!
                    Zuletzt geändert von fritzje610; 01.02.2008, 10:35.
                    Gruß

                    Michael

                    Kommentar


                    • #25
                      Sodele, ich habe mal die eine Datei in zwei Dateien getrennt und muss feststellen, dass das mit dem linken nicht funktioniert. Daher wahrscheinlich auch die Probs bei den Fotos.

                      Diese Seite kommt beim Start
                      PHP-Code:

                         

                      <?php
                      echo "<div id='menu'>";

                      //Datenbank verbinden
                      require_once ($root "/functions/db_connection.php");


                      //alle Datensätze im linken Menu laden
                      $query1 "SELECT * FROM news ORDER BY id DESC";
                      $einzel mysql_query($query1);
                      if(!
                      $einzel
                      {
                       die(
                      'Ungültige Abfrage: ' mysql_error());
                      }
                      while (
                      $row mysql_fetch_assoc($einzel)) 
                         {
                          if (
                      $row['bereich'] == "Badminton")
                          {
                           
                      $bild "/images/badminton.gif";
                          } 
                          else if (
                      $row['bereich'] == "Fussball")
                          {
                           
                      $bild "/images/sfussball.gif";
                          } 
                          
                            ......

                          echo 
                      "<p>";
                          echo 
                      "<div id='ausgaben'>";
                          echo 
                      "<br>";
                          echo 
                      "<ausgabe><span>Bereich: " $row['bereich'] . "</span></ausgabe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                      &nbsp;&nbsp;&nbsp;&nbsp;<img src='
                      $bild' width='50'    height='50' align='absmiddle'><p><br>";
                          echo 
                      "<ausgabe><span1>" $row['betreff'] . "<p></span1></ausgabe>";
                          echo 
                      "<br>";
                          echo 
                      $row['anlauf']. "<br>";
                          echo 
                      "<br><weiter>&nbsp;&nbsp;<a href='index.php?ziel=anzeige&id=" $row['id'] . "' target='_blank'>[Weiterlesen]</a>
                      </weiter>"
                      ;
                          echo 
                      "<br><hr>";
                          echo 
                      "<fuss>von: " $row['absender'] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eingestellt am: " $row['datum'] . 
                      "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Bereits " $row['counter'] . " mal gelesen</fuss><br>";
                          echo 
                      "<p></div><br>";
                        }
                      echo 
                      "</div>";    
                          
                      ?>

                      Das Ziel des Links, sprich die Datei ausgabe, sieht so aus:

                      PHP-Code:

                      echo "<div id='contents'>";
                      echo 
                      $_GET['id'];
                      //Datenbank verbinden
                      require_once ($root "/functions/db_connection.php");

                      $id intval($_GET['id']);
                         
                      $query "SELECT * FROM news WHERE id = '" $id "'"
                         
                      $result mysql_query($query);
                         if (!
                      $result
                         {
                          die(
                      'Ungültige Abfrage: ' mysql_error());
                         }
                         while (
                      $row mysql_fetch_assoc($result)) 
                         {
                          if (
                      $row['bereich'] == "Badminton")
                          {
                           
                      $bild "/images/badminton.gif";
                          } 
                          else if (
                      $row['bereich'] == "Fussball")
                          {
                           
                      $bild "/images/sfussball.gif";
                          } 
                          
                            ....

                          echo 
                      "<p>";
                          echo 
                      "<div id='ausgaben'>";
                          echo 
                      "<br>";
                          echo 
                      "<ausgabe><span>Bereich: " $row['bereich'] . "</span></ausgabe>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
                      &nbsp;&nbsp;&nbsp;&nbsp;<img src='
                      $bild' width='50'    height='50' align='absmiddle'><p><br>";
                          echo 
                      "<ausgabe><span1>" $row['betreff'] . "<p></span1></ausgabe>";
                          echo 
                      "<br>";
                          echo 
                      $row['anlauf']. "<br>";
                          echo 
                      $row['text'] . "<br>";
                          echo 
                      "<br><hr>";
                          echo 
                      "von: " $row['absender'] . "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Eingestellt am: " $row['datum'] . "<br>";
                          echo 
                      "<p></div><br>";
                         }  
                         
                      //Session kontrollieren ob schon mal geklickt und Datensatzklick zählen
                          
                      if(isset($_GET["id"]) && !in_array($_GET["id"], $_SESSION["clicked"]))
                          {
                            
                      $query "UPDATE news SET counter = counter + 1 WHERE id = '" $id "'";
                            
                      $result mysql_query($query);
                            if(!
                      $result)
                            {
                             die(
                      'Ungültige Abfrage: ' mysql_error());
                            }
                            else
                            {
                                
                      array_push($_SESSION["clicked"], $id);
                            }
                          }

                      echo 
                      "</div>";    
                          
                      ?> 
                      Sodele, ich versteh nun nicht, warum dieser mistige Link nicht funktioniert ???
                      Ich dachte erst es liegt daran, das die div's sich überschreiben, aber wenn ich ein Ergebnis des oberen Query anklicke passiert nichts. Es wird zwar ein neuer Browsertab geöffnet, aber nichts angezeigt.
                      Das ist genau das Problem, das auch bei dem ursprünglichen Problem, den Bildern, passt. Sobald man auf einen neuen Tab, also so
                      Code:
                      <a href='index.php?ziel=anzeige&id=" . $row['id'] . "' target='_blank'>[Weiterlesen]</a>
                      ,linkt geht nix mehr.
                      Warum ist das so ?
                      Zuletzt geändert von fritzje610; 01.02.2008, 10:45.
                      Gruß

                      Michael

                      Kommentar


                      • #26
                        Noch ein kleiner Nachtrag.

                        Wenn ich den Link so setze

                        Code:
                        echo "<br><weiter>&nbsp;&nbsp;<a href='anzeige.php?id=" . $row['id'] . "' target='_blank'>[Weiterlesen]</a></weiter>";
                        und die Dateien ausserhalb der Menüsteuerung aufrufe funktioniert das Ganze.
                        Gruß

                        Michael

                        Kommentar


                        • #27
                          Dannhier einfach mal der Quellcode deiner Signatur:
                          Code:
                          <a href="http://www.php-resource.de/forum/showthread.php?s=&threadid=89600" target="_blank">► PHP Resource <u>braucht</u> den Aufschwung!</a>
                          Nop, das ist, was das Forum draus macht. Mein Quellcode sieht so aus:
                          Code:
                          [*b][*url=http://www.php-resource.de/forum/showthread.php?s=&threadid=89600]► PHP Resource [*u]braucht[/u] den Aufschwung![/url][/b]
                          Gilt aber afaik nur für XHTML und STRICT
                          Das kann gut sein, dennoch würde ich's nicht mehr verwenden wenn es schon markiert wurde. Früher oder später wird es das Attribut gar nicht mehr geben!

                          Kommentar


                          • #28
                            @H2O, die Blätterfunktion sieht ja klasse aus dumemrweise bekomme ich diese Fehlermeldung

                            Code:
                            Warning: preg_match() [function.preg-match]: No ending delimiter '/'
                             found in C:\Dokumente und Einstellungen\Michael Stutz\Eigene Dateien\xampp\htdocs\test\contents\zeige.php on line 16
                            
                            
                            Warning: preg_match() [function.preg-match]: No ending delimiter '/'
                             found in C:\Dokumente und Einstellungen\Michael Stutz\Eigene Dateien\xampp\htdocs\test\contents\zeige.php on line 19
                            wenn ich das Skript nutzen will. Selbst wenn die Suchpattern in
                            PHP-Code:
                            '/[^-d$]/' 
                            ändere, so hab ich es mal benutzt und da hat es funktioniert, bringt das keinen Erfolg. Warum ist das so, ich verstehs nicht ?
                            Gruß

                            Michael

                            Kommentar


                            • #29
                              Brich bitte zuerst mal den Code in deinen alten Posts um, ist ja schrecklich diese Horizontalscrollerei!

                              Hast du denn verstanden, was mit diesen regulären Ausdrücken bezweckt wird? Wenn ja, dann hättest du sicher auch gemerkt, dass da Backslashes fehlen. Die BB-Software klaut diese leider. Und bei zwei Ausdrücken fehlt tatsächlich der End-Gegrenzer, wie die Fehlermeldung auch zurecht reklamiert. Eigentlich sollte es so aussehen:
                              PHP-Code:
                              ...
                                  if (
                              preg_match('/^\\d+$/'$id)){
                                      
                              $where "WHERE id = $id";
                                  }
                                  elseif (
                              preg_match('/^\\+\\d+$/'$id)){
                                      
                              $where "WHERE id > $id";
                                  }
                                  elseif (
                              preg_match('/^-\\d+$/'$id)){
                                      
                              $where "WHERE id < $id";
                                  }
                              ... 
                              Gruss
                              H2O

                              Kommentar


                              • #30
                                Also, die Scrollerei kann jetzt aber nicht mehr von mir kommen.

                                Die regulären Ausdrücke sollen bewirken, das nur ein - vorige ID oder + vorige ID in die if elseif einfliessen können und so entschieden werden kann,
                                ob im nächsten Query nach oben oder nach oben gesucht werden muss mit dem Limit 1 damit nur das nächste Bild, egal in welcher Richtung geholt wird.
                                Dummerweise haut es nicht hin. Beim + kreige ich ne Invald image ID und beim - springt er auf den Start der Gallerie. Nur warum?

                                Hier nochmal der Skriptteil:
                                PHP-Code:
                                if (!isset($_GET['id']))
                                {
                                    die(
                                "No image defined");
                                }
                                else
                                {
                                   
                                $id $_GET['id'];
                                   if (
                                preg_match('/^\d+$/'$id))
                                   {
                                        
                                $where "WHERE id = $id";
                                    }
                                    elseif (
                                preg_match('/^\+\d+$/'$id))
                                    {
                                        
                                $where "WHERE id > $id";
                                    }
                                    elseif (
                                preg_match('/^-\d+$/'$id))
                                    {
                                        
                                $where "WHERE id < $id";
                                    }
                                    else
                                    {
                                        die(
                                "Invalid image id");
                                    }
                                }
                                //$_self = $_SERVER['PHP_SELF'];
                                $query "SELECT id, bildpfad, bild FROM bilder $where ORDER BY id LIMIT 1";
                                $result mysql_query($query);
                                  if (!
                                $result
                                   {
                                    die(
                                'Ungültige Abfrage: ' mysql_error());
                                   }
                                while (
                                $row mysql_fetch_assoc($result))
                                {
                                echo 
                                "<td><img src='" $row['bildpfad'] . "/" $row['bild'] . "' alt='Bilder Johanna'></a></td><br>\n";

                                echo 
                                "<td align='center'><a href='/index.php?ziel=fotoalbum&id=-$id'><button> &lt; </button></a>";
                                echo 
                                "<a href='/index.php?ziel=fotoalbum&id=+$id'><button> &gt; </button></a></td></table>";


                                Ich hab den Aufruf der Buttons und die Ausgabe so angepasst das es bei mir passt. Das dürfte aber keine Auswirkung haben.
                                Zuletzt geändert von fritzje610; 01.02.2008, 11:03.
                                Gruß

                                Michael

                                Kommentar

                                Lädt...
                                X