ERLEDIGT
JA
JA
ANTWORTEN
12
12
ZUGRIFFE
2023
2023
EMPFEHLEN
-
17.07.05 19:31 #1Blü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
Tabelle: tblkategorienCREATE 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 ;
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
So nun zu meinem Problem mit der Ausgabe. Ich habe vor die Bilder wie folgt auszugeben und auch nach dem Datum sortiert.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 ;
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
-
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:Als Ergebnis sollte ungefähr so etwas heraus kommen: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
Mit der kategorieID kannst Du auf die Kategorieseite verlinken.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
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:Gruß hpvwPHP-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.
}
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.
-
17.07.05 20:05 #3Blü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:
In der Zeile 24 steht folgendes:Parse error: parse error, unexpected $ in www/htdocs/bildergalerie/bilder_ausgabe.php on line 24
Gruß BlümchenPHP-Code:?>
-
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ß hpvwWarum 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.
-
17.07.05 20:26 #5Blü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:
Gruß BlümchenSQL-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
-
Ups, ich hatte den zweiten Parameter von SUBSTRING vergessen:
Wenn es klappt, erkläre ich das QueryCode :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

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ß hpvwWarum 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.
-
17.07.05 20:37 #7Blümchen Tutorials.de Gastzugang
Hallo,
danke für deine Hilfe, nun kommt aber dann diese Medung:
Gruß BlümchenSQL-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
-
17.07.05 21:19 #8Blü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:
OK nun kommt dann wieder diese Meldung: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.
}
?>
Gruß BlümchenParse error: parse error, unexpected $ in www/htdocs/bildergalerie/bilder_ausgabe.php on line 24Geändert von Blümchen (17.07.05 um 21:32 Uhr)
-
@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 von Friedrich Nietzsche
-
18.07.05 07:52 #10Blü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
-
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 von Friedrich Nietzsche
-
18.07.05 07:59 #12Blü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
-
Okay, koennt alle vorbei kommen.
Zitat von Blümchen
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 von Friedrich Nietzsche
Ähnliche Themen
-
Bilder Gallery, Bilder nebeneinander?
Von ShishaLiVe im Forum PHPAntworten: 2Letzter Beitrag: 04.05.08, 22:22 -
Bilder gallery... mit Button!
Von jackassol im Forum Flash PlattformAntworten: 2Letzter Beitrag: 01.11.06, 14:04 -
Gallery, bilder in datenbank
Von Gusl im Forum PHPAntworten: 12Letzter Beitrag: 13.06.05, 15:36 -
Bilder Gallery
Von Borsti26 im Forum Swing, Java2D/3D, SWT, JFaceAntworten: 2Letzter Beitrag: 27.05.05, 15:15 -
Bilder in PHP - Screenshot Gallery - GD
Von WuttkeA im Forum PHPAntworten: 6Letzter Beitrag: 05.07.02, 18:26





Zitieren
Login






[PHP][Snippet] Array zu XML konvertieren