Ankündigung

Einklappen
Keine Ankündigung bisher.

Probleme mit Gallery

Einklappen

Neue Werbung 2019

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

  • Probleme mit Gallery

    Hallo,

    ich habe ein Problem mit meiner Gallery und brauche mal eure Hilfe.
    Also ich habe in der DB zwei Tabellen. Einmal eine die Gallery heißt, wo alle Gallerien enthalten sind und ene Pictures wo alle Links zu den Bildern enthalten sind, mit der entsprechenden Gallery ID die sie angehören.

    Jetzt will ich die Bilder ausgeben, aber immer nur eins Pro Seite.
    Ich habe über den Bildern zwei Icons, einmal next und einmal back.
    Jetzt will ich das bei next, wenn der User drauf klickt das nächste Bilder kommt, bei klick auf back das Bilder davor.
    Wenn die Bilder zuende sind soll kein next mehr stehen nur back. Und beim ersten Bild nur ein next Icon.

    Mein Frage ist, wie ich das umsetzten kann?

    Ich wollte erst bei next, einfach die nächste ID des nächstes Bilder ins GET weiter geben.
    Problem ist, dass der Admin Bilder löschen kann und so sind die ID's nicht durchgänig.

    Also habt ihr eine Idee, wie ich das Problem lösen kann?
    Danke

  • #2
    http://tut.php-q.net/login-news.html#u9

    oder mal die Foruminterne Suche benutzen mit "Blätterfunktion"

    Kommentar


    • #3
      ... Und mit ein bisschen Vorstellungskraft und Kreativität ist nichtmal das nötig -.- Ist doch zum heulen, das niemand mehr Lust hat zum Denken T_T
      Nicht jeder Fehler ist ein Bug.

      Kommentar


      • #4
        Zitat von KingCrunch
        ... Und mit ein bisschen Vorstellungskraft und Kreativität ist nichtmal das nötig -.- Ist doch zum heulen, das niemand mehr Lust hat zum Denken T_T
        Hm, gab es denn schon Zeiten in denen mehr als 5% aller Menschen ihren Kopf zum denken verwendet haben?
        http://webfrap.de | http://blog.webfrapdev.de

        Kommentar


        • #5
          Zitat von M3g4Star
          http://tut.php-q.net/login-news.html#u9

          oder mal die Foruminterne Suche benutzen mit "Blätterfunktion"
          An eine Blätterfunktion habe ich auch gedacht.
          Nur ich will ja nicht 1500 Mal das Icon für next ausgeben sondern nur eins. Un d da bin ich noch nicht wirklich weiter wie ich das machen kann

          Kommentar


          • #6


            *hö* Wie jetzt ???? Ich mein die Blätterfunktion hast verstanden ge ???
            Eigentlich ganz einfach .. Immer den aktuellen DS mitgeben. Und dann mittels LIMIT den vorherigen oder nächsten Anzeigen.

            Vorher noch prüfen ob's einen nächsten oder vorherigen gibt. ..

            Und *tadaaaaaa* fertig .. kannst durch diene Gallerie blättern ..

            Weiß leider deinen Aufbau der DB bzw. die Namen deiner Bilder nicht aber an sich steht dir doch nix mehr im Weg

            Kommentar


            • #7
              Aber, wenn ich den akutellen Wert mitgebe, aslo die akutelle ID, weiß ich ja immer noch nicht wenn ich zum Beispiel 5 habe ob das nächste 6 ist, wenn die zum Beispiel gelöscht wurde ist die nächste 7.
              Daher kann ich ja nicht einfach den nächsten nehmen.

              Achja hier mal meine DB:

              Code:
              -- 
              -- Tabellenstruktur für Tabelle `gallery`
              -- 
              
              CREATE TABLE `gallery` (
                `id` int(15) NOT NULL auto_increment,
                `name` varchar(250) NOT NULL,
                `description` text NOT NULL,
                PRIMARY KEY  (`id`)
              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
              
              -- 
              -- Daten für Tabelle `gallery`
              -- 
              
              INSERT INTO `gallery` (`id`, `name`, `description`) VALUES 
              (1, 'Berlin 2005', 'Die Jugendfahrt 2005 nach Berlin');
              
              -- --------------------------------------------------------
              
              -- 
              -- Tabellenstruktur für Tabelle `pictures`
              -- 
              
              CREATE TABLE `pictures` (
                `id` int(15) NOT NULL auto_increment,
                `link` varchar(250) NOT NULL,
                `gallery_id` int(15) NOT NULL,
                PRIMARY KEY  (`id`)
              ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;
              
              -- 
              -- Daten für Tabelle `pictures`
              -- 
              
              INSERT INTO `pictures` (`id`, `link`, `gallery_id`) VALUES 
              (1, 'bilder/berlin/bild1.jpg', 1),
              (2, 'bilder/berlin/bild2.jpg', 1),
              (3, 'bilder/berlin/bild4.jpg', 1);

              Kommentar


              • #8
                Du sollst ja nicht die ID sondern die Seitennummer angeben!

                Kommentar


                • #9
                  Nein .. Du hast's noch nicht ganz verstanden.

                  Du kannst mit einem SELECT mit Bedingungen gezielt Datensätze auslesen indem du das LIMIT setzt.

                  Code:
                  SELECT pictures.link FROM pictures,gallery WHERE pictures.gallery_id=gallery.id LIMIT 0,1
                  Müsste dir den ersten DS ausgeben => "bilder/berlin/bild1.jpg"

                  Code:
                  SELECT pictures.link FROM pictures,gallery WHERE pictures.gallery_id=gallery.id LIMIT 1,1
                  Müsste dir den zweiten DS ausgeben => "bilder/berlin/bild2.jpg"

                  usw.

                  Also alles ungestetet aber so ist die Theorie !!!!

                  Das heißt also du machst nicht nur eine Abfrage und zählst einfach die ID hoch sondern du lässt dein query das du an die DB schickt mittels der Aktuellen ID erstellen.

                  Du musst nur die erste Zahl bei LIMIT ändern. mehr nicht ..

                  Kommentar


                  • #10
                    Ok,
                    ich brauche nochmal eure Hilfe.
                    So sieht das script aus für die Seiten:

                    PHP-Code:
                    <?php
                        $sql 
                    "SELECT
                                    COUNT(*) as Anzahl
                                FROM
                                    pictures
                        WHERE gallery_id = '"
                    .mysql_real_escape_string($_GET['gallery'])."'";


                       
                    $result mysql_query($sql) OR die(mysql_error());

                        
                    $anzahl mysql_result($result0);
                        
                    $start  = isset($_GET['page'])?(int)$_GET['page']:1;

                        
                    $limit 1;

                        
                    $num_pages ceil($anzahl/$limit);


                        if(!
                    $num_pages) {
                            
                    $num_pages 1;
                        }

                        if(
                    $start 1) {
                            
                    $start 1;
                        }
                        if(
                    $start $num_pages) {
                            
                    $start $num_pages;
                        }

                        
                    $offset = ($start 1) * $limit;


                    ?>
                    Und soe für die Ausgabe:

                    PHP-Code:
                    include ('gallery/image_page.php');


                        
                    $pictures mysql_query("SELECT id, link FROM pictures WHERE gallery_id = '".mysql_real_escape_string($_GET['gallery'])."' LIMIT
                                    "
                    .$offset.",".$limit.";") OR die(mysql_error());
                        while(
                    $print_pictures mysql_fetch_array($pictures))
                        {
                            echo 
                    '
                    [img]'
                    .$print_pictures['link'].'[/img]';
                        }

                      if(
                    $num_pages 1) {
                            echo 
                    "

                    \n"
                    ;
                            for(
                    $i 1$i <= $num_pages$i++) {
                                if(
                    $i == $start) {
                                    
                    // ich bin ja schon auf der Seite. Also
                                    // Seitenzahl ohne Link erzeugen
                                    
                    echo $i."&nbsp";
                                } else {
                                    echo 
                    "<a href=\"index.php?action=gallery&amp;gallery=".$_GET['gallery']."&amp;page=".$i."\">";
                                    echo 
                    "<img src=\"images/next.gif\" border=\"0\">";
                                    echo 
                    "</a>";
                                }
                            }
                            echo 
                    "</p>\n";
                        }
                        echo 
                    '</center>';

                    Was muss ich jetzt ändern, dass ich nur eine Grafik angezeigt wird.
                    Ich raffe das nicht so wirklich...

                    Kommentar


                    • #11
                      Die Zahlen in LIMIT beschreiben:

                      LIMIT ZAHL1,ZAHL2

                      ZAHL1: an welcher POosition soll ich anfangen.
                      ZAHL2: wieviele zeilen AB ZAHL1 soll ich anzeigen.

                      zunächst einmal lässt du dir dein SQL Statement ausgeben BITTE. Einfach mal um zu kucken was du da an die DB auf jeder Seite schickst ...
                      PHP-Code:
                      <?php
                        $pictures 
                      mysql_query("SELECT id, link FROM pictures WHERE gallery_id = '".mysql_real_escape_string($_GET['gallery'])."' LIMIT
                                      "
                      .$offset.",".$limit.";") OR die(mysql_error()); 
                      ?>
                      ceil leifert meineswissens NIE ein Error !!! Also ist das Statement nicht ganz korrekt.
                      PHP-Code:
                      <?php
                      $num_pages 
                      ceil($anzahl/$limit); //müsste immer mindestens 1 sein

                          
                      if(!$num_pages) {
                              
                      $num_pages 1;
                          } 
                      ?>
                      Was wird dir denn ausgegeben ???

                      Kommentar


                      • #12
                        Dumme Frage, aber wie lasse ich mit ein SQL Statment ausgeben

                        Kommentar


                        • #13
                          Ein SQL-Statement ist in PHP nichts anderes als ein String. Und einen String wirst du ja wohl noch ausgeben können, oder?

                          Kommentar


                          • #14
                            Also, ich habe so die Ausgabe gemacht:

                            PHP-Code:
                                $pictures mysql_query("SELECT id, link FROM pictures WHERE gallery_id = '".mysql_real_escape_string($_GET['gallery'])."' LIMIT
                                            "
                            .$offset.",".$limit.";") OR die(mysql_error());
                                while(
                            $print_pictures mysql_fetch_array($pictures))
                                {
                                    echo 
                            '
                            [img]'
                            .$print_pictures['link'].'[/img]';
                                }
                            print_r($pictures); 
                            Und das kam dabei raus:
                            Resource id #12

                            Kommentar


                            • #15
                              Jetzt gibst du auch das ergebnis von mysql_query() aus....
                              Du willst aber das ausgeben, was du mysql_query() verfütterst - also den String.

                              PHP-Code:
                              $sql="SELECT id, link FROM pictures WHERE gallery_id = '".mysql_real_escape_string($_GET['gallery'])."' LIMIT
                                              "
                              .$offset.",".$limit.";";
                              $pictures mysql_query($sql) OR die(mysql_error()); 
                              In diesem Fall also $sql nicht $pictures...
                              [URL="https://www.quizshow.io/"]Create your own quiz show.[/URL]

                              Kommentar

                              Lädt...
                              X