"We are back" « oc.at

Photogallery (php,mysql)

fatmike182 15.04.2008 - 11:42 3343 39
Posts

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
Hallo,
bin grad uebermotiviert dabei paar Bilder online zu stellen und moechte mir eine eigene Gallery basteln. Meine Vorgangsweise ist folgende:
- Fotos aus iPhoto exportieren (Format: 2008_Albumname - 001.jpg, 800x600 reicht fuer den Zweck imho)
- Fotos mit Automator thumben (225x168)
- per FTP in die Ordner /thumb bzw /pics hochladen.

!da ich nicht alle Fotos aus einem Album exportier sind nicht alle Fotos von 001.jpg - ...jpg vorhanden!

Da die DB sonst sehr lahm wird moechte ich die Bilder nicht als BLOB speichern sondern nur per img-tag auf den Ort verweisen. Angezeigt werden sollen 12 Bilder/Seite was bei manchen Alben 10 Seiten ausmachen wuerde.

Wie realisier ich das Anzeigen am Besten? (hab 2 Moeglichkeiten durchgedacht)
1) Bildinformationen in eine DB einlesen lassen.
Geht das, dass ich sag, wenn ich den "update DB"-Button drueck, dass er alle Bildinformationen von den Bildern aus dem Ordner /thumbs in eine DB einliest?
Dann kann ich eine Tabelle machen in der ich eben die Zeilen 0-11 auf der ersten Seite, 12-23 auf der zweiten usw.
Nachteil: ich muss die DB manuell updaten

2) Zufallsprinzip
Einfach von 001.jpg alle Bilder durchgehen und ueberpruefen obs dieses Bild ueberhaupt gibt. Daneben braeucht ich dann eine Variable die mitzaehlt wieviele Bilder bereits dargestellt wurden.
Die Seitenanzahl kann ich dann wie bestimmen?

die Methode 1 gefaellt mir besser, weizs aber nicht obs umsetzbar ist.
Gaebs eine bessere/ueblichere Methode?
tia, Michi

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4295
warum nicht einfach ein fertiges gallery skript verwenden?

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
hab zwar mit einer Antwort von dir gerechnet aber nicht mit so einer ;)
Naja, prinzipiell isses ja nicht viel Aufwand und vor Jahren hab ich mal ein recht anstaendiges Forum selbst gebastelt, also waeren zumindest historische Skills vorhanden.
Wenn ich einen Loesungsansatz fuers Reinladen haette, dann waer ich eh sichelrich bald fertig damit. (also einen der "lade alle datein im Verzeichnis thumb in die Datenbank thumbs")

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25517
Wenn du denkst, dass es nicht viel Aufwand ist, dann verspekulierst du dich. Sollte also nicht der Schulung deiner PHP-Fähigkeiten dienen und du nur möglichst schnell von A nach B möchtest, dann nimm eines der tausenden Gallery-Skripten.

Andernfalls solltest du, mit den Parametern, die du uns gegeben hast, so vorgehen:

1.) FTP-Upload in ein spezielles Upload-Verzeichnis (Dadurch wird ein Abgleich zwischen neuem und altem Bildmaterial hinfällig)
2.) Übernahme in die Datenbank aus dem Upload-Verzeichnis. Neben dem Update-Button sollte es auch ein Textfeld für die Auswahl eines existierende Albums bzw. eine Möglichkeit für die Erstellung eines neuen Albums geben.
3.) Die Darstellung nach Seiten sollte dann - vorrausgesetzt du hast die richtige Tabellenstruktur erstellt - eine einfache Division sein.

Wenn ich mich nicht verschätze dann sollte es nur 2 Tabellen geben: album und image

album: primary key, album title
image: primary key, albumid, filename, dateline

Das ist ohne Umschweife wohl die einfachste Art soetwas zu lösen. Da ist aber keinerlei Schnick-Schnack dabei.

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
nachdem keine Alben im Nachhinein ergänzt werden müssen und ich den Albumsnamen aus dem File per explode auslese würde auch ein Teil von dir erwähnten Sachen sogar wegfallen.

Ich hätte glaub ich nur eine Tabelle genommen und den Albumtitel als feld in image angeführt. ist unelegant, aber ich seh kein großes Problem darin in dem Fall. Wäre eine Beschreibung beim Album dabei oder Datum o.ä. dann wäre das ein Argument für die album-Tabelle, so seh ich nicht viel Grund dafür

Kannst du mir evtl ein Stichwort sagen, wie ich den Anfang von deinem 2) umsetzen kann? Einfach eine Schleife durchrennen lassen, die blind ein Verzeihnis durchsucht?

aja, thx! ;)

edit: http://www.php4-forum.de/befehle/readdir.htm?PHPSESSID=
ich versuchs mal mit readdir glaub ich
Bearbeitet von fatmike182 am 15.04.2008, 17:05

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25517
Zitat von fatmike182
Ich hätte glaub ich nur eine Tabelle genommen und den Albumtitel als feld in image angeführt. ist unelegant, aber ich seh kein großes Problem darin in dem Fall. Wäre eine Beschreibung beim Album dabei oder Datum o.ä. dann wäre das ein Argument für die album-Tabelle, so seh ich nicht viel Grund dafür
Hui, da fallen mir im Gegensatz sehr viel Gründe ein. Die Tabelle wird unnötigerweise total aufgeblasen. Umbenennen des Albums könnte zu einem riesigen UPDATE-Query führen. Erweiterungsfähigkeit der Alben wird auf 0 reduziert. Performance der Queries auf den image-Table sinkt grundlos.

Zitat von fatmike182
Kannst du mir evtl ein Stichwort sagen, wie ich den Anfang von deinem 2) umsetzen kann? Einfach eine Schleife durchrennen lassen, die blind ein Verzeihnis durchsucht?
Da in das Upload-Verzeichnis nur neue Bilder hineinkommen und diese nach der Aufnahme in die DB verschoben werden, kannst du einfach blind alle Verzeichniseinträge auflisten lassen und bearbeiten. Ich kann mir aber nicht vorstellen, dass dieser Satz jetzt etwas beantwortet hat. ;)

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
mah - wegen dem einen bloeden Feld im image-Table machst mir jetzt wirklich ein schlechtes Gewissen...

@uploadverzeichnis & DB:
schon klar, aber bin ich mit operndir & readdir (siehe edit oben) am richtigen Dampfer oder wuerdest du das einfacher machen?

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25517
Mit "oper" hab ich nicht viel am Hut, aber der Rest passt so.

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
dann hab ich so wies aussieht ein von mir eigenhaendig geschriebenes r zu verkaufen.

edit:
Sinnvolle Links zu dem Thema
http://www.phpbb.de/archiv/o_t__t_1...l-einlesen.html
(http://www.phpforum.de/archiv_5614_...n_anzeigen.html)
(http://www.mediengestalter.info/for...on-44206-1.html)
Bearbeitet von fatmike182 am 15.04.2008, 18:58

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25517
Du könntest es in deinen Usernamen einbauen lassen! "fatmiker182" :D

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4295
mit readdir bist du schon richtig.

daß du nicht mit dieser antwort von mir gerechnet hast wundert mich etwas. ich bin nämlich generell kein freund, das rad 2x zu erfinden.

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
durch Zufall beim Googeln auf das gestoszen http://jan500.org/bilder.phps
Hilft mir unheimlich weiter! scandir, ... wie verweichlicht ist php in der Version 5 geworden? Naja, wenn mans weisz. Ich freu mich jedenfall drueber.

@kleinerChemiker:
ich vermeide solche downloadbaren CMS oder picturehosting systeme weils imho oft overkill ist & dadurch viel Ballast mitschleppt. Da hab ichs grad bei so wirklich kleinen Gschichten (wie du siehst brauch ich keine Kommentierfuntionen & kann auf AJAX-Effekte gut & gerne verzichten) lieber, dass ich alles selbst uebersichtlich beisammen hab & selbst anpassen kann.

& fatmiker wird es nie geben

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4295
scandir gabs aber iirc auch schon unter php4

fatmike182

Agnotologe
Registered: Oct 2005
Location: VIE
Posts: 4223
nope, davor war open & read lt. php.net

weiters: mysql_connect soll nichtmehr verwendet werden stattdessen mysql_real_connect (This function is deprecated. Use mysql_real_connect() instead.) http://dev.mysql.com/doc/refman/5.0...ql-connect.html
war mir bisdato unbekannt
... tut das denn wer? Auf php.net steht nur was über mysql_connect.
Hab nachgeschaut, weil ich aus irgendeinem Grund Probleme mit der errorausgabe hatte.

Wo ich grad davon red: ist ein Unterschied zwischen einem angehängten "or die" statt einer extra "if(!$connect) die..." Abfrage?

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25517
Da ist kein Unterschied.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz