Webdesign in Siegen

Project: vM:gallery

Fragen zum Thema PHP können hier gestellt werden

Moderator: Basti

Project: vM:gallery

Beitragvon veNom am 10.09.2007, 18:50

Nun denn, werde ich mein Gallery-Wunsch-Script selbst programmieren in PHP & MySQL. Das Script wird von getauft in "vM:gallery", vM steht für veNom Media, was da wäre meine Wenigkeit.

Ich hab mir mal ein Konzept zusammengeschrieben damit ich mir im klaren bin was ich überhaupt mache, jetzt habe ich einfach einmal angefangen mit der config und der Datenbank-verbindung, und da ist mir eingefallen, das ich mir zwar über die Funktionen imklaren bin aber mir noch keinen Gedanken über die Datenbankstruktur gemacht habe, nun mache ich mir gedanken und weiß aber nicht weiter.

Wie mache ich es? Was ist die beste möglichkeit es zu machen? Was ist die einfachste? - Das sind so die Fragen die ich mir stelle.

Das Konkrete Problem sind die Hauptkategorien in verbindung mit den Subkategorien.

Wenn ich eine Hauptkategorie anlege soll ein Ordner dafür engelegt werden und in die Datenbank eingetragen werden, erstelle ich nun eine Unterkategorie in dieser Hauptkategorie soll ein Unterordner erstellt werden und auch in die Datenbank eingetragen werden.

Wie mache ich das am besten, in der Datenbank?
Eine Tabelle für die Hauptkategorien, eine Tabelle für doe Unterkategorien und dann noch eine Tabelle für die Bilder?

Oder wie würdest ihr es machen?
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon al3x am 10.09.2007, 19:24

Also wenn ich dich richtig verstanden haben, soll eine Art Hierachie entstehen. Am besten wäre es wahrscheinlich wenn du nur eine Tabelle Kategorien hättest die einen rekursiven Verweis auf sich selbst enthält, falls es eine Subkategorie ist und Null wenn es eine Hauptkategorie ist. Für die Bilder wäre eine eigene Tabelle geeignet. Vorteil ist, dass man nicht so viele ähnlich aufgebaute Tabellen erhält.

Ich hoffe das meine Erklärung verständlich ist.
al3x
Mitglied
 
Beiträge: 29
Registriert: 10.09.2007
Wohnort: Niederösterreich, Österreich

Beitragvon SilentStormer am 10.09.2007, 20:00

Das mit der Rekursion ist sicherlich keine schlechte Idee.
Täte dann aber eine ID und eine ParentID machen. Wenn Hauptkategorie, dann ParentID 0 oder NULL, sonst ID der Oberkategorie. ID selbst ist auto_increment.
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich

Beitragvon veNom am 14.09.2007, 18:35

Danke für eure Hilfen, ich habe es so gemacht das ich nun in der Tabelle wo ich die Unterkategorien einstelle den Namen und auch die ID der Maincategors eintrage.

Nun möchte ich das ganze auch Sortieren können hierzu habe ich in die Zeilen wo die Gruppen aufgelistet sind jeweils 1 kleines Textfeld erstellt wo die orderid eingetragen ist, ermittelt wird diese automatisch und um 1 erhöht beim eintragen.

Mein Problem ist nun folgendes wenn ich nun 2 oder mehrere Haptkategorien habe und in diesen auch noch weitere Unterkategorien sieht die Ordnung so aus:
Main 1
Unter 1
Unter 2
Unter 3

Main 2
Unter 4
Unter 5

main3


Mein Problem wärt ich euch nun schon denken können, ich möchte bei jeder Hauptkategorie natürlich bei der Unterkategorie bei 1 Anfangen, hab noch keine Idee wie ich das anstellen kann, dann wäre noch das Problem mit dem Formular ich habe noch kein Formular gemacht zum Übernehmen der Orderid weil ich nicht weiß wie ich es angehen soll, bzw. wo ich diese hinpflanzen soll.

edit: Lassen wir das mit dem Sortieren erstmal.
Ich bin dabei eine Datei zu erstellen die alle meine Ordner auslest, dies funktioniert bereits über eine Funktion, diese Funktion überprüft jeden Unterordner, wo was gefunden wird bekomme ich momentan aufgelistet. Nun brauche ich noch die Fiunktion das dort wo was gefunden wurde nachgesehen wird ob ein noch Unterordner Namens Thumb ist, falls dieser Bereits existiert die Dateien vergleicht und wenn eine Datei nicht existiert soll diese automatisch erzeugt werden.

Hier die funktion die meine Dateien ausliest.
Code: Alles auswählen
$path = "../pictures";

function read_recursiv($path) { 
  $result = array();
  $handle = opendir($path); 
  if ($handle) { 
    while (false !== ($file = readdir($handle))) { 
       if ($file != "." && $file != "..") { 
         $name = $path . "/" . $file;
         if (is_dir($name)) { 
            $ar = read_recursiv($name);
            foreach ($ar as $value) {
              $result[] = $value;
            }
         } 
         else  { 
            $result[] = $name;
         } 
       } 
    } 
  } 
  closedir($handle);
  return $result; 


$data = read_recursiv("$path"); 

echo "<b>" . count($data) . "Dateien gefunden</b><br>\n";
foreach($data as $value)
echo "$value<br>\n";
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon veNom am 16.09.2007, 18:54

Sry 4 doppelpost aber es wird langsam unübersichtlich eins weiter oben ;)

Ich wollt euch nur bekanntgeben das ich das problem mit den Thumbnails bzw Ordner gelöst habe ich kann nun Problemlos Thumbnails erzeugen etc, bin richtig Stolz auf mich das ich das alleine geschafft habe.

Nun fehlt mir für die Galerie nur noch die Seite wo die Bilder aufgelistet werden, naja... eigentlich hab ich das auch schon aber nicht so wie ich es möchte, da hänge ich nämlich wieder, ich möchte 5 Bilder pro Reihe und 3 Reihen maximum haben und dann unten eine Page navigation.

Wisst ihr ein Tutorial oder ähnliches was mir dabei weiter helfen könnte?
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon Basti am 16.09.2007, 19:06

Ich glaub im Galerie-Tut von Dac ist auch eine mögliche Lösung gezeigt worden, ich mache das bei mir auch ähnlich.

Im Prinzip ist es aber wie so oft nichts anderes als eine Schleife mit ein paar Bedingungen, also mit ein bisschen Überlegung könntest du das auch selbst erarbeiten, und das macht ja eigentlich immer mehr Spaß ;)
Benutzeravatar
Basti
Moderator
 
Beiträge: 1889
Registriert: 15.06.2006
Wohnort: Rheinbreitbach

Beitragvon veNom am 16.09.2007, 21:33

Danke für den Tipp klappt jetzt alles Wunderbar nun nur noch ein Login basteln und fertig :)

Dann noch die Gestaltung
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon veNom am 19.09.2007, 17:53

Jetzt hätte ich da noch ein kleines Problem mit der Thumbnail erzeugung, funktioniert ja eigentlich Wunderbar, allerdings sind da noch die Hochformatigen Bilder...

Mein Script gibt die neue Breite vor und die Höhe wird ausgerechnet Proportional, nun habe ich aber auch hin und wieder Hochformatige und die werden dann zu hoch.

Hier mal mein Code Abschnitt wo die Berechnung ist:
Code: Alles auswählen
// Orginalbild
$bild= $file;
                  
// Bilddaten ermitteln
$size= GetImageSize("$PicPathIn"."$bild");
$breite=$size[0];
$hoehe=$size[1];
$neueBreite=100;
$neueHoehe= intval($hoehe*$neueBreite/$breite);


Was / Wie kann ich das Ändern das die Höhe und die Breite maximxal 100px seind?

editiert:
Eine Frage hät ich da noch, wie kann ich denn ein ZUfallsbild ausgeben lassen, ich trage ja keine Bilder in eine Datenbank ein oder so, ich müsste also per zufall Mainordner, Unterordner und dann noch das Bild Zufällig auswählen lassen.
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon SilentStormer am 19.09.2007, 18:54

Du fragst vorher einfach ab, welcher Wert größer ist (Höhe oder Breite). Wenn Breite, dann machst du das genauso wie bisher, ansonsten dasselbe mit der Höhe.

Wegen Zufallsbild:
Spontan wäre meine Idee, die Ordnernamen in ein Array zu packen bzw. zu nummerieren und dann jeweils per Zufallszahl den Zufallsordner / das Zufallsbild zu ermitteln.

Zufallszahl generieren: http://www.der-webdesigner.net/index.php?action=tutorials&s=php_codeschnipsel&t=php_zufall_zahlen

Wenn du die irgendeine Tabelle mit den Bilderdaten in der Datenbank gespeichert hast, kannst du dort ebenfalls per Zufallszahl eine Zeile auswählen.
Bild
Benutzeravatar
SilentStormer
Mitglied
 
Beiträge: 384
Registriert: 24.09.2005
Wohnort: Österreich

Beitragvon veNom am 20.09.2007, 09:19

Hat mir sehr geholfen, auf das mit der Abfrage hätte ich auch selber kommen können, aber was soll man machen *gg*

Bei dem Zufallsbild bin ich nun auch schon etwas weiter, ich muss nur noch die Namen in ein Array schreiben und dann eines aussuchen lassen. :)
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien

Beitragvon veNom am 21.09.2007, 18:19

Hab noch ne Frage....

Also ich möchte nun noch eine Blätterfunktion einbauen, normalerweise eine sache von 5 min, aber nicht bei mir *gg*, ich trage meine Bilder in keine Datenbank ein und möchte dies auch nicht.

Ich lese nun max 20 Bilder aus dann sollte ein Link unten stehen mit weiter, und auf der nächsten seite soll man die nächsten 20 Sehen.

Wie kann ich das machen, wenn ich diese nicht in der Datenbank auslesen kann?

Per array? Wie erstelle ich ein nummeriertes Array aus meinen ausgelesenen Dateien?
All you get is all you need
Benutzeravatar
veNom
Mitglied
 
Beiträge: 1574
Registriert: 29.12.2005
Wohnort: Wien


Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste