tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
12
ZUGRIFFE
2023
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Blümchen Tutorials.de Gastzugang
    Guten Abend euch allen,

    so da ich kein fertiges Script gefunden habe für ein Bilder Upload bzw. wenn ich eines gefunden habe siehe auch dieses hier: http://www.tutorials.de/tutorials209347.html bin ich heute Mittag zu dem Entschluss gekommen selber eines zu schreiben. Das habe ich nun auch gemacht und man kann nun Bilder Uploaden und es werden auch Kategorien angelegt. Das ganze passiert nicht in Ordnern sondern in der Datenbank.

    Wie die aussieht das könnt Ihr hier sehen:

    Tabelle: tblbilder

    CREATE TABLE `tblbilder` (
    `id` int(11) NOT NULL auto_increment,
    `benutzer` int(11) NOT NULL default '0',
    `kategorie` int(11) NOT NULL default '0',
    `datum` int(11) NOT NULL default '0',
    `bild` varchar(255) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;
    Tabelle: tblkategorien

    CREATE TABLE `tblkategorien` (
    `id` int(11) NOT NULL auto_increment,
    `kategorie` varchar(64) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=3 ;

    Tabelle: tbluser

    CREATE TABLE `tbluser` (
    `id` int(11) NOT NULL auto_increment,
    `vorname` varchar(64) NOT NULL default '',
    `nachname` varchar(64) NOT NULL default '',
    `nickname` varchar(32) NOT NULL default '',
    `email` varchar(128) NOT NULL default '',
    PRIMARY KEY (`id`)
    ) TYPE=MyISAM AUTO_INCREMENT=2 ;
    So nun zu meinem Problem mit der Ausgabe. Ich habe vor die Bilder wie folgt auszugeben und auch nach dem Datum sortiert.

    Oben soll immer Das Datum stehen z.B. wenn man das heutige Datum nimmt den 16.07.2005 dann soll ein kleiner Strich kommen darunter soll dann ganz am Anfang der Namen kommen der die Bilder Online gestellt hat, dann soll die Kategorie kommen und dann soll noch eine Anzahl der Bilder kommen, wie viele da eben für den Tag da sind und für die Kategorie.

    Sollten es dann zu dem Tag noch andere Kategorien geben, dann sollen die darunter aufgelistet werden. Sollte es keine Bilder mehr geben aber ein älteres Datum so soll das dann darunter aufgelistet werden.

    Das ganze soll dann so aussehen:

    16.05.2005
    *****************
    Blümchen II Private Bilder II 33 Bilder
    Blümchen II Menschen II 64 Bilder


    13.05.2005
    *****************
    Blümchen II Geburtstag II 23 Bilder
    Blümchen II Geschwister II 64 Bilder


    So wenn man dann auf die Kategorie klickt, dann soll man auf eine Seite kommen wo dann die Bilder ebne der Reihe nach dargestellt werden. Es sollen immer 6 Bilder in einer Reihe, sollten es mehr sein dann eben unten weiter.

    Nun meine Frage. Kann mir da mal eben kurz jemand helfen das auf die Reihe zu bekommen, dass ich das heute Nacht Online stellen kann.

    Gruß Blümchen
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Bilder Gallery-tblbilder.jpg   Bilder Gallery-tbluser.jpg  

    Angehängte Grafiken Angehängte Grafiken  
     

  2. #2
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Folgendes Query gibt bestimmt eine Fehlermeldung, die Du mir bitte postest.
    Aber ich denke, es geht in die richtige Richtung. Ohne die DB ist es halt immer etwas schwierig, die Querys aus dem Kopf syntaktisch korrekt zu schreiben:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    SELECT
    tblkategorien.id AS `kategorieID`,
    tblkategorien.kategorie AS `kategorieBezeichnung`,
    MAX(tblbilder.datum) AS `latest`,
    count(tblbilder.id) AS `picsInCat`,
    SUBSTRING(
      MAX(
        CONCAT(
          LPAD(
            tblbilder.datum,40,'0'
          ),
          tbluser.nickname
        )
      )
    ) AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tblkategorien
      ON tblbilder.kategorie=tblkategorien.id
    LEFT JOIN tbluser
      ON tblbilder.benutzer=tbluser.id
    GROUP BY tblkategorien.id
    ORDER BY MAX(tblbilder.datum) DESC
    Als Ergebnis sollte ungefähr so etwas heraus kommen:
    Code :
    1
    2
    3
    4
    5
    6
    
    kategorieID  kategorieBezeichnung  latest      picsInCat  nicknameFromLatestInserter
    -------------------------------------------------------------------------------------
              4  Private Bilder        16.05.2005         33  Blümchen
              3  Menschen              16.05.2005         64  Blümchen
              1  Geburtstag            13.05.2005         23  Blümchen
              2  Geschwister           13.05.2005         64  Blümchen
    Mit der kategorieID kannst Du auf die Kategorieseite verlinken.
    Da Du das Datum als int und nicht als datetime speicherst, wirst Du es mit PHP nach dem Auslesen anpassen müssen.

    Hier noch ein Beispielcode, um die optische Gruppierung zu erreichen:
    PHP-Code:
    //db-connection, query in $result
    $temp=null;
    while (
    $row=mysql_fetch_assoc($result)) {
        if (
    $temp!=$row['latest']) {
            echo 
    "<h1>".$row['latest']."</h1>";
            
    $temp=$row['latest'];
        }
        
    //restliche Felder entsprechend ausgeben.

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  3. #3
    Blümchen Tutorials.de Gastzugang
    Hallo,

    danke für deine Antwort. Leider habe ich das noch nicht verstanden, aber du wolltest ja eh erst mal die Meldung was da dann kommt, wenn ic hden Code nehme den du mir gerade gegeben hast.

    Das kommt da nun:

    Parse error: parse error, unexpected $ in www/htdocs/bildergalerie/bilder_ausgabe.php on line 24
    In der Zeile 24 steht folgendes:

    PHP-Code:
    ?> 
    Gruß Blümchen
     

  4. #4
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Hehe, ich dachte eigentlich an die Fehlermeldung, die mysql_error() ergibt.
    Was Du beschreibst ist ja eine PHP-Fehlermeldung.
    Versuche doch erstmal, den ersten Code in phpMyAdmin auszuführen.
    Dann gibt es entweder eine MySQL-Fehlermeldung oder er zeigt Dir eine Tabelle, die der im zweiten Code-Abschnitt ähnelt oder er zeigt eine völlig andere Tabelle, was äußerst schade wäre, weil es dann nicht nur um Syntaxfehler in dem Query geht.
    Wenn Du erstmal ein Query hast, was die für die Ausgabe benötigten Daten besorgt, können wir uns um den PHP-Code kümmern .

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  5. #5
    Blümchen Tutorials.de Gastzugang
    Hallo,

    hmm ich verstehe zwar nicht warum ich das in PHPMyAdmin einfügen soll aber bitte. Wenn ich das mache, dann kommt diese Meldung:

    SQL-Befehl: Dokumentation

    SELECT tblkategorien.id AS `kategorieID` , tblkategorien.kategorie AS `kategorieBezeichnung` , MAX( tblbilder.datum ) AS `latest` , count( tblbilder.id ) AS `picsInCat` , SUBSTRING( MAX( CONCAT( LPAD( tblbilder.datum, 40, '0' ) , tbluser.nickname ) ) ) AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tblkategorien ON tblbilder.kategorie = tblkategorien.id
    LEFT JOIN tbluser ON tblbilder.benutzer = tbluser.id
    GROUP BY tblkategorien.id
    ORDER BY MAX( tblbilder.datum ) DESC
    LIMIT 0 , 30

    MySQL meldet: Dokumentation
    #1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ') AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tb
    Gruß Blümchen
     

  6. #6
    Registriert seit
    Apr 2002
    Ort
    HH
    Beiträge
    3.224
    Ups, ich hatte den zweiten Parameter von SUBSTRING vergessen:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    
    SELECT
    tblkategorien.id AS `kategorieID`,
    tblkategorien.kategorie AS `kategorieBezeichnung`,
    MAX(tblbilder.datum) AS `latest`,
    count(tblbilder.id) AS `picsInCat`,
    SUBSTRING(
      MAX(
        CONCAT(
          LPAD(
            tblbilder.datum,40,'0'
          ),
          tbluser.nickname
        )
      ),41
    ) AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tblkategorien
      ON tblbilder.kategorie=tblkategorien.id
    LEFT JOIN tbluser
      ON tblbilder.benutzer=tbluser.id
    GROUP BY tblkategorien.id
    ORDER BY MAX(tblbilder.datum) DESC
    Wenn es klappt, erkläre ich das Query
    Die Fehlersuche ist IMHO leichter, wenn man erst das Query gerade rückt. Dann kann man sich nämlich sicher sein, dass der Fehler nicht am PHP-Code liegt.
    Die 41 musst Du evtl. +-1 anpassen, falls vor dem Namen noch eine Ziffer steht (42) oder der erste Buchstabe vom Namen fehlt (40).

    Gruß hpvw
     
    Warum gibt (fast) keiner im Datenbankforum an, welches DBMS er benutzt?
    Ich gehe im Zweifelsfall ohne Nachfrage von MySQL > 4.1 i.V.m. PHP aus.
    Gewöhnt euch bitte auch an, die Fehlermeldung von mysql_error() zu posten.

  7. #7
    Blümchen Tutorials.de Gastzugang
    Hallo,

    danke für deine Hilfe, nun kommt aber dann diese Medung:

    SQL-Befehl: Dokumentation

    SELECT tblkategorien.id AS `kategorieID` , tblkategorien.kategorie AS `kategorieBezeichnung` , MAX( tblbilder.datum ) AS `latest` , count( tblbilder.id ) AS `picsInCat` , SUBSTRING( MAX( CONCAT( LPAD( tblbilder.datum, 40, '0' ) , tbluser.nickname ) ) , 41 ) AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tblkategorien ON tblbilder.kategorie = tblkategorien.id
    LEFT JOIN tbluser ON tblbilder.benutzer = tbluser.id
    GROUP BY tblkategorien.id
    ORDER BY MAX( tblbilder.datum ) DESC
    LIMIT 0 , 30

    MySQL meldet: Dokumentation
    #1111 - Invalid use of group function
    Gruß Blümchen
     

  8. #8
    Blümchen Tutorials.de Gastzugang
    Hallo,

    so wie gerade im Chat besprochen, bekommst du hier nun mal den Code, dass du dir ein besseres Bild machen kannst:

    PHP-Code:
    <?php
    include "../data/config.php";
    $result=mysql_query("SELECT tblkategorien.id AS `kategorieID` , tblkategorien.kategorie AS `kategorieBezeichnung` , MAX( tblbilder.datum ) AS `latest` , count( tblbilder.id ) AS `picsInCat` , SUBSTRING( MAX( CONCAT( LPAD( tblbilder.datum, 40, '0' ) , tbluser.nickname ) ) , 41 ) AS `nicknameFromLatestInserter`
    FROM tblbilder
    LEFT JOIN tblkategorien ON tblbilder.kategorie = tblkategorien.id
    LEFT JOIN tbluser ON tblbilder.benutzer = tbluser.id
    GROUP BY tblkategorien.id
    ORDER BY `latest` DESC"
    ); 
    $temp=null;
    while (
    $row=mysql_fetch_assoc($result)) {
        if (
    $temp!=$row['latest']) {
            echo 
    "<h1>".$row['latest']."</h1>";
            
    $temp=$row['latest'];
        }
        
    //restliche Felder entsprechend ausgeben.

    ?>
    OK nun kommt dann wieder diese Meldung:

    Parse error: parse error, unexpected $ in www/htdocs/bildergalerie/bilder_ausgabe.php on line 24
    Gruß Blümchen
    Geändert von Blümchen (17.07.05 um 21:32 Uhr)
     

  9. #9
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    @Bluemchen: Falls Du's noch nicht gesehen hast, im anderen Thread haben wir noch eine Moeglichkeit diskutiert mein Script bei Dir einzusetzen.
    Genaueres am besten dort nachlesen, da dies ja mit diesem Thread nur indirekt zu tun hat.
    Ansonsten mach ich mal ein wenig Werbung fuer einen Thread der eigentlich keiner Werbung bedarf (2300 Klicks in einem Monat), fuer den Fall, dass dieses Script hier im Meer versinken sollte oder Bedarf an was bereits fertigem besteht.
    Gallery-Thread
    In Post 130 gibt es die Versionen fuer FTP und SSH2-SFTP.
    In Post 144 gibt es dann die Gallerie nochmal mit den Dateisystem-Funktionen. Jedoch ohne Unterverzeichnisse.
    Die Version mit Unterverzeichnissen wurde urspruenglich im Thread gepostet, funktionierte aber nur bei gewissen Einstellungen welche im Internet wohl recht selten anzutreffen sind.

    @Bluemchen: Falls Dein Interesse an meinem Script vollstaendig erloschen ist, dann wuensche ich Dir auf jeden Fall viel Erfolg mit Deinem Script.
    Auch wenn es aus Performance-Gruenden nicht gerade sinnig ist die Bilder direkt in die DB zu flanschen.
    Geändert von Dennis Wronka (18.07.05 um 05:45 Uhr)
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  10. #10
    Blümchen Tutorials.de Gastzugang
    Hallo reptiler,

    nee du meine Interesse ist noch nicht ganz na deinem Script erloschen aber ich brauch auch einfach ein Script das geht und wo ich nicht erst mal den ganzen Tag dran sitzen muss um es zum laufen zu bringen verstehst du was ich meine? Aber ich denke ich mach da auf alle Fälle mal noch dran weiter. Aber leider hat mein Provider eben ganz besondere Sachen und da muss man Sachen anderes schreiben.

    Du hast ja gesehen ich habe alles versucht, dass das Script bei mir geht aber leider geht da überhaupt nichts ich bekomme immer nur die blöden Fehlermeldungen.

    Denn ich finde auch, dass dein Script sehr an deine Seite angepasst ist und das ist nicht so gut. Ich frage mich gerade warum machst du daraus nicht einfach ein Tutorial? Das währe doch am bestens als immer nur hier was zu schreiben oder?

    Zu meinem Script:

    Wo steht dann dass ich die Bilder in der DB speichere? Davon habe ich nie was gesagt und das mache ich auch nicht. Denn wenn man mal ca. 20000 Bilder drin hat, dann macht die das nimmer so mit, deshalb lasse ich das auch. Aber ich bin heute Nacht schon weiter gekommen. Ich kann nun die Bilder nach Datum sortieren und auch darstellen, wenn ich das nun anklicke, dann kann ich auch das Bild im PopUp öffnen. Nun muss ich dann nur noch einen Weg finden, dass ich da Comments schreiben kann!

    Gruß Blümchen
     

  11. #11
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Dachte Du wuerdest die Bilder in der DB speichern, der Doc hat im anderen Thread sowas erwaehnt.

    Wie gesagt, ich nehme an, dass Du nur eine DB bei Deinem Hoster haben kannst und deshalb der DB-Name in den Scripts angepasst werden muss.

    Eigentlich funktioniert das Script ja auch ganz gut, beim Doc hat's ja auch keine Probleme gemacht.

    Und wie gesagt, es war nie zur Veroeffentlichung vorgesehen, daher ist es auch auf meine Seite angepasst.

    Ein vernuenftiges Tutorial zu dem Thema zu schreiben braucht seine Zeit, immerhin will das ganze dann auch getestet werden.
    Mal sehen, wenn ich mal 'nen Tag Zeit hab werd ich mich da vielleicht mal dran setzen.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

  12. #12
    Blümchen Tutorials.de Gastzugang
    Hallo,

    ja da kommen wir dann der Sache ja schon weiter. Richtig ich habe nur eine DB bei meinem Anbieter das ist auch gut so. Nun ist dann meine Frage wie kann ich das so anpassen dass das bei mir dann auch geht. Ich habe den schon gefragt ob ich eine zweite bekommen kann aber der meinte nur nein. OK das kann ich auch verstehen.

    Ach ja wenn wir nun wieder mit deinem Script weiter machen dann machen wir das auch bei dir OK! Denn sonst kommt da ja niemand mehr mit!

    Gruß Blücmehen
     

  13. #13
    Avatar von Dennis Wronka
    Dennis Wronka Dennis Wronka ist offline Soulcollector
    Registriert seit
    Apr 2002
    Ort
    Hong Kong
    Beiträge
    12.296
    Blog-Einträge
    231
    Zitat Zitat von Blümchen
    Ach ja wenn wir nun wieder mit deinem Script weiter machen dann machen wir das auch bei dir OK! Denn sonst kommt da ja niemand mehr mit!
    Okay, koennt alle vorbei kommen.
    Aber Hotel und Flug muesst Ihr selbst bezahlen.

    Wie gesagt, ist nicht so schwer. Hab das vorhin schon umgebastelt, dass man den Namen wesentlich einfacher umbasteln kann.
     
    PHP Class Collection - PHP-Klassen fuer PHP 5 (und Teilweise auch fuer PHP 4)
    Updates: Catcher 1.1, FTPConnection 1.2, MultiSQL 1.1, RSS2 1.1, SMTPConnection 1.4
    __________________
    EasyLFS - Hintergrundinformationen, Installationsanleitung, Softwareliste und Download
    EasyLFS Projektthread - Informationen, Status und Diskussion zu meiner Linux-Distribution
    __________________
    Ich bin die Schildkroete, mein Sohn. Ich habe das Universum erschaffen, aber bitte mach mir daraus keinen Vorwurf; ich hatte Bauchschmerzen.
    __________________
    Zitat Zitat von Friedrich Nietzsche
    Man muss noch Chaos in sich haben, um einen tanzenden Stern gebaeren zu koennen.

Ähnliche Themen

  1. Bilder Gallery, Bilder nebeneinander?
    Von ShishaLiVe im Forum PHP
    Antworten: 2
    Letzter Beitrag: 04.05.08, 22:22
  2. Bilder gallery... mit Button!
    Von jackassol im Forum Flash Plattform
    Antworten: 2
    Letzter Beitrag: 01.11.06, 14:04
  3. Gallery, bilder in datenbank
    Von Gusl im Forum PHP
    Antworten: 12
    Letzter Beitrag: 13.06.05, 15:36
  4. Bilder Gallery
    Von Borsti26 im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 27.05.05, 15:15
  5. Bilder in PHP - Screenshot Gallery - GD
    Von WuttkeA im Forum PHP
    Antworten: 6
    Letzter Beitrag: 05.07.02, 18:26