• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Bildergalerien mit PHP

Bernhard

Neues Mitglied
Hallo @ alle,

ich kämpfe ja schon seit einer Ewigkeit mit PHP - jetzt hätte ich gerne eine
Website mit recht umfangreichen Bildergalerien, bei denen ich davon ausgehe,
dass es sinnvoller ist, ich schreibe nicht alles von Hand, sondern überlasse das PHP...

Allerdings werde ich das wohl nur schaffen, wenn ich viele Tipps von Euch
bekomme...;-)

Meine Vorüberlegungen:

  • ich erstelle für jede Galerie einen Ordner, in diesen packe ich eine index.php
    und einen Ordner für die Bilder sowie einen für die Thumbnails (wo ich die
    JavaScript- und CSS-Dateien sinnvoll hinpacke, wird sich vermutlich erst im
    Laufe der Arbeit ergeben)
  • in die index.php include ich eine Datei galerie.php, die ich ins Root-Verzeichnis
    lege (oder ist die an einem anderen Ort sinnvoller aufgehoben?)
  • wenn ich das bisher richtig verstanden habe, dann kann ich doch auf diese
    Weise einfach auf den jeweiligen Bilder-Ordner zugreifen?
  • die Website soll mehrsprachig werden, d.h. ich habe identische Bilder-Ordner
    für die jeweilige Galerie auf deutsch und englisch, möchte die Bilder aber nur
    einmal hochladen und dann in beide Ordner speichern...
    => wo bringe ich am sinnvollsten meinen Upload unter?
  • den Upload stelle ich mir so vor:
    • normales Upload-Script, mit dem ich das Bild auf der Festplatte suche
      und hochlade (habe ich mehr oder weniger fertig)
    • nach dem Upload generiert das Script einen Thumbnail und zeigt mir
      diesen an. Gleichzeitig fragt es mich, in welche Galerie ich das Bild
      speichern möchte (das habe ich nicht fertig und freue mich über Tipps)
    • anschließend werden Bild und Thumbnail sowohl in die entsprechenden
      Bilder- und Thumbnail-Ordner der deutschsprachigen Galerie gespeichert
      als auch in die der englischsprachigen
    • dabei soll das Script die Abmessungen des Bildes ermitteln und es skalieren,
      wenn die Breite größer ist als die Höhe, auf eine Breite von z.B. 250 px,
      wenn es höher ist als breit, auf eine Höhe von 250 px
      => ist eine solche Abfrage überhaupt möglich? wenn Ja, wie?
    • gleichzeitig bekomme ich Eingabefelder, in die ich sowohl den Bildnamen, als
      auch eine Bildbeschreibung und die Größe in beiden Sprachen eintragen kann.
    • diese Eingaben sollen in .txt-Dateien geschrieben werden, die automatisch
      den gleichen Dateinamen bekommen wie das dazugehörige Bild, die
      englischsprachigen kommen in den englischen Galerie-Ordner, die
      deutschsprachigen entsprechend in den deutschen
      (ich will mir wenigstens den Akt mit Datenbanken sparen...)
      => ist es sinnvoller, ich schreibe alles in eine .txt-Datei, oder sollte ich
      je eine für Bildname, Beschreibung und Größe anlegen?
  • wie mache ich es am sinnvollsten, dass ich jederzeit die Reihenfolge der Bilder ändern kann?
Sind meine Überlegungen soweit sinnvoll?
Hab ich noch was übersehen?
Wo fange ich am besten an?

Kennt jemand ein Tutorial, das mir beim Erstellen des Scripts helfen könnte?

Cool wäre, wenn ich beim Erstellen des Thumbnails einen Ausschnitt festlegen könnte,
d.h. einen (quadratischen) Rahmen angezeigt bekomme, den ich auf dem Bild verschieben
und größer / kleiner ziehen kann.
Sowas hab ich schonmal gesehen, hab aber keinerlei Idee, wie das geht (ich vermute mal
mit JavaScript?)

Ich freu mich über Tipps, Hinweise und Anregungen!

Grüße
Bernhard
 
Werbung:
Hi,

fangen wir mal langsam an :)

die Website soll mehrsprachig werden, d.h. ich habe identische Bilder-Ordner
für die jeweilige Galerie auf deutsch und englisch, möchte die Bilder aber nur
einmal hochladen und dann in beide Ordner speichern...
=> wo bringe ich am sinnvollsten meinen Upload unter?
Da verstehe ich den Sinn nicht ganz. Was macht es bei einem Bild für einen Unterschied, wenn es für englischsprachige oder für deutschsprachige User angezeigt wird?

nach dem Upload generiert das Script einen Thumbnail und zeigt mir
diesen an. Gleichzeitig fragt es mich, in welche Galerie ich das Bild
speichern möchte (das habe ich nicht fertig und freue mich über Tipps)
Naja, ohne einen konkreten Ansatz von deiner Seite würde das wohl den Rahmen eines normalen Posts sprengen ;) Thumbnailscripts gibt es wie Sand am Meer. Die Abfrage nach dem Speicherort stelle ich mir nicht sehr schwierig vor, sofern die Pfade zu den Ordnern (Galerien) in einer Datenbank vorliegen. Sonst musst du den Galerieordner nach Ordnernamen durchsuchen (ziemlich umständlich und wahrscheinlich zeitaufwendig).

dabei soll das Script die Abmessungen des Bildes ermitteln und es skalieren,
wenn die Breite größer ist als die Höhe, auf eine Breite von z.B. 250 px,
wenn es höher ist als breit, auf eine Höhe von 250 px
=> ist eine solche Abfrage überhaupt möglich? wenn Ja, wie?
Jop, ist möglich: PHP: Manual Quick Reference

diese Eingaben sollen in .txt-Dateien geschrieben werden, die automatisch
den gleichen Dateinamen bekommen wie das dazugehörige Bild, die
englischsprachigen kommen in den englischen Galerie-Ordner, die
deutschsprachigen entsprechend in den deutschen
(ich will mir wenigstens den Akt mit Datenbanken sparen...)
Die Textdateien würden ja in deinem Fall eine Datenbank ersetzen, macht also keinen großen Sinn, da eine Datenbank viel komfortabler ist ;)
=> ist es sinnvoller, ich schreibe alles in eine .txt-Datei, oder sollte ich
je eine für Bildname, Beschreibung und Größe anlegen?
Ich sehe keinen Unterschied zwischen den Thumbnails und dem jeweiligen Originalbild!

Du scheinst viele Informationen redundant abspeichern zu wollen. IMHO keine gute Idee!

wie mache ich es am sinnvollsten, dass ich jederzeit die Reihenfolge der Bilder ändern kann?
Ich lege mir dazu immer in der Datenbank eine Spalte `order` an in der ich eine fortlaufende Zahl abspeicher (wie auto_increment). Jedoch darf diese keine Lücken aufweisen (1, 3, 4, ... ist verboten)!

Ich muss allerdings sagen, ich habe noch nie mit einem Galeriescript gearbeitet, weiß also nicht wie diese im Allgemeinen arbeiten!

Gruß
 
Hallo Asipak4You,

danke für Deine Antwort!

Hi,

fangen wir mal langsam an :)

gerne! ;-)

die Website soll mehrsprachig werden, d.h. ich habe identische Bilder-Ordner
für die jeweilige Galerie auf deutsch und englisch, möchte die Bilder aber nur
einmal hochladen und dann in beide Ordner speichern...
=> wo bringe ich am sinnvollsten meinen Upload unter?
Da verstehe ich den Sinn nicht ganz. Was macht es bei einem Bild für einen Unterschied, wenn es für englischsprachige oder für deutschsprachige User angezeigt wird?

Das Bild ist das gleiche, aber die Meta-Tags, Navigation und die Bildbeschreibung
sind natürlich einmal deutsch und einmal englisch...

nach dem Upload generiert das Script einen Thumbnail und zeigt mir
diesen an. Gleichzeitig fragt es mich, in welche Galerie ich das Bild
speichern möchte (das habe ich nicht fertig und freue mich über Tipps)
Naja, ohne einen konkreten Ansatz von deiner Seite würde das wohl den Rahmen eines normalen Posts sprengen ;) Thumbnailscripts gibt es wie Sand am Meer. Die Abfrage nach dem Speicherort stelle ich mir nicht sehr schwierig vor, sofern die Pfade zu den Ordnern (Galerien) in einer Datenbank vorliegen. Sonst musst du den Galerieordner nach Ordnernamen durchsuchen (ziemlich umständlich und wahrscheinlich zeitaufwendig).

Auf eine Datenbank möchte ich nach Möglichkeit verzichten, da alles, was ich bisher
mit Datenbanken versucht habe, nicht funktioniert hat (ich versuche seit fast einem
Jahr ein Gästebuch zu schreiben, habe zig Tutorials durch und scheitere jedesmal an
dem Punkt, an dem der Eintrag in der Datenbank gespeichert werden sollte)...

Die Pfade müssen für's erste nicht veränderbar sein.
Thumnailscripts werde ich mir mal anschauen - und ich denke, dass ich das Uploadformular
vielleicht auch soweit hinbekomme, die Probleme kommen vermutlich erst, wenn es um das
Speichern der Bildbeschreibung geht...

dabei soll das Script die Abmessungen des Bildes ermitteln und es skalieren,
wenn die Breite größer ist als die Höhe, auf eine Breite von z.B. 250 px,
wenn es höher ist als breit, auf eine Höhe von 250 px
=> ist eine solche Abfrage überhaupt möglich? wenn Ja, wie?
Jop, ist möglich: PHP: Manual Quick Reference

Danke! Das muss ich mir in Ruhe anschauen...

diese Eingaben sollen in .txt-Dateien geschrieben werden, die automatisch
den gleichen Dateinamen bekommen wie das dazugehörige Bild, die
englischsprachigen kommen in den englischen Galerie-Ordner, die
deutschsprachigen entsprechend in den deutschen
(ich will mir wenigstens den Akt mit Datenbanken sparen...)
Die Textdateien würden ja in deinem Fall eine Datenbank ersetzen, macht also keinen großen Sinn, da eine Datenbank viel komfortabler ist ;)

Efchen würde jetzt wieder sagen, ich hätte vor, mit einem Suppenlöffel auf der Autobahn zu fahren...;-)

Aber, wie schon gesagt, scheitere ich immer wieder bei allen Versuchen mit Datenbanken...;-(

=> ist es sinnvoller, ich schreibe alles in eine .txt-Datei, oder sollte ich
je eine für Bildname, Beschreibung und Größe anlegen?
Ich sehe keinen Unterschied zwischen den Thumbnails und dem jeweiligen Originalbild!

Heißt das, ich sollte das Originalbild speichern und bei jedem Aufruf die Bilder
in z.B. 250 × 250 px und die Thumbnails auf's neue generieren?
Oder sollte ich es beim Hochladen auf 250 × 250 px verkleinern und nur die
Thumnails jedesmal neu generieren?

Du scheinst viele Informationen redundant abspeichern zu wollen. IMHO keine gute Idee!

Das leuchtet ein - wie mache ich es besser?
Klar, jede Information nur einmal abspeichern, aber wie und wo?

Ich möchte, wenn ich auf einer der englischsprachigen Seiten bin, nicht die
deutsche Bildbeschreibung angezeigt bekommen (und umgekehrt)...

wie mache ich es am sinnvollsten, dass ich jederzeit die Reihenfolge der Bilder ändern kann?
Ich lege mir dazu immer in der Datenbank eine Spalte `order` an in der ich eine fortlaufende Zahl abspeicher (wie auto_increment). Jedoch darf diese keine Lücken aufweisen (1, 3, 4, ... ist verboten)!

Hmmm, dass keine Lücken drin sein dürfen, leuchtet ein.
Da ich langsam das Gefühl bekomme, dass es tatsächlich nicht ohne Datenbank
geht, fürchte ich, dass ich mir zu viel vorgenommen habe...;-(

Ich muss allerdings sagen, ich habe noch nie mit einem Galeriescript gearbeitet, weiß also nicht wie diese im Allgemeinen arbeiten!

Gruß

Ich werd jetzt erstmal Tutorials und Bücher wälzen...

Viele Grüße
Bernhard
 
Werbung:
Auf eine Datenbank möchte ich nach Möglichkeit verzichten, da alles, was ich bisher
mit Datenbanken versucht habe, nicht funktioniert hat (ich versuche seit fast einem
Jahr ein Gästebuch zu schreiben, habe zig Tutorials durch und scheitere jedesmal an
dem Punkt, an dem der Eintrag in der Datenbank gespeichert werden sollte)...
Die Verbindung zur Datenbank hast du aber schon hergestellt, oder? Also liegt es nur an der Syntax, um Datensätze in die Datenbank einzutragen?
 
=> ist es sinnvoller, ich schreibe alles in eine .txt-Datei, oder sollte ich
je eine für Bildname, Beschreibung und Größe anlegen?
Ich sehe keinen Unterschied zwischen den Thumbnails und dem jeweiligen Originalbild!

Heißt das, ich sollte das Originalbild speichern und bei jedem Aufruf die Bilder
in z.B. 250 × 250 px und die Thumbnails auf's neue generieren?
Oder sollte ich es beim Hochladen auf 250 × 250 px verkleinern und nur die
Thumnails jedesmal neu generieren?
Hi,

das bezog sich nur auf die Textdatei. Warum solltest du mehrere Textdateien für ein und dasselbe Bild erzeugen. Nur weil das eine kleiner ist als das andere?

Heißt das, ich sollte das Originalbild speichern und bei jedem Aufruf die Bilder
in z.B. 250 × 250 px und die Thumbnails auf's neue generieren?
Nein, davon würde ich in jedem Fall abraten. Das geht auf die Performance!

Gruß
 
Die Verbindung zur Datenbank hast du aber schon hergestellt, oder? Also liegt es nur an der Syntax, um Datensätze in die Datenbank einzutragen?

Hallo Thor,

Das weiß ich nicht mehr - ich weiß nur noch, dass ich bisher jedesmal entnervt aufgegeben habe...;-(

Hi,

das bezog sich nur auf die Textdatei. Warum solltest du mehrere Textdateien für ein und dasselbe Bild erzeugen. Nur weil das eine kleiner ist als das andere?

Hallo Asipak4You,

O.K., da waren mehrere Missverständnisse...

Ich habe nicht vor, für die Thumbnails Textdateien zu erzeugen, da ich da wohl
nur den Namen des Bildes für den Alternativtext brauche.

Allerdings war meine Idee, eventuell einzelne Textdateien zu erzeugen für:

  • Name des Bildes
  • Größe
  • Beschreibung
Heißt das, ich sollte das Originalbild speichern und bei jedem Aufruf die Bilder
in z.B. 250 × 250 px und die Thumbnails auf's neue generieren?
Nein, davon würde ich in jedem Fall abraten. Das geht auf die Performance!

Gruß

Alles klar, hätte mich auch gewundert...
__________________________________________________

Ich weiß immer noch nicht so recht, wie ich anfange, hab jetzt erstmal angefangen,
den HTML-Teil zu machen...

Grüße
Bernhard
 
Werbung:
Dann solltest du es noch mal versuchen, das ist nämlich garnicht schwer und wir können dir ja auch helfen.

Hier mal was zum einlesen, falls du es noch mal versuchen willst. PHP: PDO - Manual

Hallo Thor,

irgendwann versuche ich es sicher nochmal, aber jetzt versuche ich mich erstmal mit
meiner Bildergalerie. Das erscheint mir auch etwas einfacher, da es zwar insgesamt
komplex ist, sich aber m.E. leichter in einzelne (logische) Komponenten zerlegen lässt.

Das heißt, ich fange jetzt erstmal damit an, zu versuchen, die Bilder-Ordner auszulesen
und das HTML für die Anzeige zu generieren (dann bearbeite ich die Bilder in Photoshop
und lade sie per FTP hoch, solange der Upload nicht fertig ist) - so kann ich mich Stück
für Stück vorarbeiten...
Ein Gästebuch ist dagegen m.E. ein komplexes Teil, das erst funktioniert, wenn es
komplett fertig ist.

Grüße
Bernhard
 
Das stimmt natürlich, ich dachte nur du wüsstest noch, woran du immer gescheitert bist, dann ließe sich das Problem sicher sehr schnell beheben, denn eine Verbindung mit eine Datenbank herzustellen ist nicht wirklich schwer und dann musst du ja nur noch valide SQL-Statements generieren.
 
Werbung:
PDO und die mysqli - Erweiterung sind sicherlich die richtigen Partner für die Arbeit mit MySQL.

Allerdings zum Einstieg:

Verbindung aufbauen:
PHP:
$connection = mysql_connect('localhost', 'username', 'password') OR die (mysql_error());
mysql_select_db('dbname', $connection) OR die (mysql_error());

MySQL-Befehle zum Auslesen, löschen, eintragen, updaten, etc.:
PHP:
// INSERT - Statement
$sql = "INSERT INTO
                   `tabelle`
        SET
                   `spalte1` = '" . mysql_real_escape_string($string1) . "'  ,
                   `spalte2` = '" . mysql_real_escape_string($string2) . "'  ,
                   `spalte3` = " . intval($integer1) . "
";

// UPDATE - Statement
$sql = "UPDATE
              `tabelle`
        SET
              `spalte1` = '" . mysql_real_escape_string($string1_neu) . "'  ,
              `spalte3` = " . intval($integer1_neu) . "
";

// evtl. WHERE - Klausel verwenden

$sql .= " WHERE
               `id` = " . intval($id) . "
          LIMIT 1
";

// DELETE FROM - Statement
$sql = "DELETE FROM
                   `tabelle`
        WHERE
                   `id` = " . intval($id) . "
        LIMIT 1
";

// SELECT - Statement
$sql = "SELECT
              `spalte1`,
              `spalte3`
        FROM
              `tabelle`
";

// wieder evtl. WHERE Klausel verwenden
// scharfe Suche
$sql .= " WHERE
               `spalte2` = 'value'
";
// unscharfe Suche
$sql = " WHERE
              `spalte2` LIKE '%" . $var . "%'
";

// Statement senden
$result = mysql_query($sql, $connection) OR die (mysql_error());

// Werte von SELECT - Statement verwenden
// bei einem selektierten Wert kann/sollte die Schleifen wegfallen

// spalte1 und spalte3 wurden selektiert

// nur Auslesen, falls mindestens 1 Zeile selektiert wurde
if (mysql_num_rows($result) > 0) {
  // Anzahl der selektierten Zeilen wurde nicht durch LIMIT x limitiert,
  //also Schleife verwenden
  while ($row = mysql_fetch_array($result)) {
    echo $row["spalte1"] . ' ' . $row["spalte3"];
  }
}

Ist eigentlich keine große Sache! ;)

Gruß
 
Hallo Bernhard,

bevor Du Dich irgendwie großartig mit der Gallerie beschäftigst, solltest Du Dich ein oder zwei Tage mit Datenbanken beschäftigen. Es ist wirklich kein Hexenwerk, und spart Dir eine Menge Arbeit, wenn Du mal irgendwas später erweitern oder ändern willst. Dann klappt das z.B. auch sehr einfach mit dem Sortieren.

@ Asipak4You
Ich lege mir dazu immer in der Datenbank eine Spalte `order` an in der ich eine fortlaufende Zahl abspeicher (wie auto_increment). Jedoch darf diese keine Lücken aufweisen (1, 3, 4, ... ist verboten)!
Das ist meiner Meinung nach Blödsinn, oder ich verstehe den Sinn nicht. Folgende Annahme. Ich mache eine Gallerie von Omas Geburtstag. Meine eigenen 100 Bilder habe ich schon hochgeladen. Nun schickt mir Onkel Peter das ultimative Bild von Oma, das ich gerne ganz am Anfang der Gallerie hätte. Dann müsste ich nach Deiner Logik hingehen, und alle Bilder, bzw. die Datenbankeinträge, umnumerieren. Auch wenn das über phpMyAdmin geht, wäre mir das zu aufwendig. Für manuelle Sortierung gebe ich in der DB immer 10er-Schritte vor. So habe ich nun die Möglichkeit, das zuletzt hinzugefügte Bild an erster Stelle in der Gallerie zu plazieren, indem ich einfach den order-Wert auf z.B. 5 abändere. Ich hoffe, ich habe mich halbwegs verständlich ausgedrückt.

Gruß thuemmy
 
@ Asipak4You
Das ist meiner Meinung nach Blödsinn, oder ich verstehe den Sinn nicht. Folgende Annahme. Ich mache eine Gallerie von Omas Geburtstag. Meine eigenen 100 Bilder habe ich schon hochgeladen. Nun schickt mir Onkel Peter das ultimative Bild von Oma, das ich gerne ganz am Anfang der Gallerie hätte. Dann müsste ich nach Deiner Logik hingehen, und alle Bilder, bzw. die Datenbankeinträge, umnumerieren. Auch wenn das über phpMyAdmin geht, wäre mir das zu aufwendig. Für manuelle Sortierung gebe ich in der DB immer 10er-Schritte vor. So habe ich nun die Möglichkeit, das zuletzt hinzugefügte Bild an erster Stelle in der Gallerie zu plazieren, indem ich einfach den order-Wert auf z.B. 5 abändere.

Hi,

vielen Dank für die Kritik zu diesem Punkt. Ja, ich denke mir auch, dass das nicht die beste Lösung ist, jedoch fällt mir einfach keine Geeignetere ein :D

Ein Anwendungsbeispiel für meine Variante findest du unter diesem Link: MyTrees.de - Baumdiagramm suchen - geteilt äöü
Gib im Feld unter "freischalten" als Passwort
ein. Dann scrolle etwas nach unten und du siehst unterhalb von # level/ebene 1 drei Zeilen vor denen sich Pfeile befinden. Mit diesen kannst du die Reihenfolge verändern. Kommt nun ein "Ast" hinzu, wird diesem erstmal die nächsthöchste Ziffer zugewiesen. Will man den Ast an erster Stelle haben, müsste man diesen von ganz unten nach ganz oben verschieben. Die Anzahl der Klicks entspricht dann bei x Zeilen: x-1

Bei 100 Zeilen ziemlich viel, da hast du Recht. Hast du eine bessere Idee für diese Anwendung?

Gruß

PS. Wer Spaß daran hat, das Diagramm auf der oben beschriebenen Seite zu verändern, tut euch bitte keinen Zwang an, es handelt sich dabei nur um eine Testgrafik!
 
Werbung:
Das mit den hoch/runter Pfeilenhabe ich auch in einem Script. Da sind es aber nur ein paar Bilder, die zu einem kleinen News-Artikel optional hinzuzufügen sind. Normalerweise nicht mehr als 4-5 Bilder. Die werden einmal auf den Server geladen, in der Größe angepasst und Thumbnails erstellt. Danach wird das wohl nur einmal sortiert, da geht das dann mit Pfeilen. Bei einer größeren Menge würde ich wie gesagt das ganze zusätzlich mit Ordnungsnummer machen, und wie gesagt, nicht aufeinanderfolgend, sondern in 10er-Schritten oder so (vom Script generiert). Diese Ordnungsnummer kannst Du dann zusätzlich anzeigen lassen. Der User hat dann die Möglichkeit, die Nummern zu überschreiben, wobei er nicht die Ordnungsnummern in 10er-Schritten beibehalten muss.

Gruß thuemmy
 
Hallo Asipak4You,
hallo Thuemmy,

PDO und die mysqli - Erweiterung sind sicherlich die richtigen Partner für die Arbeit mit MySQL.

Ich habe xampp, brauche ich dann PDO und die mysqli - Erweiterung zusätzlich?

Allerdings zum Einstieg:

Verbindung aufbauen:
PHP:
$connection = mysql_connect('localhost', 'username', 'password') OR die (mysql_error());
mysql_select_db('dbname', $connection) OR die (mysql_error());
MySQL-Befehle zum Auslesen, löschen, eintragen, updaten, etc.:
PHP:
// INSERT - Statement
$sql = "INSERT INTO
                   `tabelle`
        SET
                   `spalte1` = '" . mysql_real_escape_string($string1) . "'  ,
                   `spalte2` = '" . mysql_real_escape_string($string2) . "'  ,
                   `spalte3` = " . intval($integer1) . "
";

// UPDATE - Statement
$sql = "UPDATE
              `tabelle`
        SET
              `spalte1` = '" . mysql_real_escape_string($string1_neu) . "'  ,
              `spalte3` = " . intval($integer1_neu) . "
";

// evtl. WHERE - Klausel verwenden

$sql .= " WHERE
               `id` = " . intval($id) . "
          LIMIT 1
";

// DELETE FROM - Statement
$sql = "DELETE FROM
                   `tabelle`
        WHERE
                   `id` = " . intval($id) . "
        LIMIT 1
";

// SELECT - Statement
$sql = "SELECT
              `spalte1`,
              `spalte3`
        FROM
              `tabelle`
";

// wieder evtl. WHERE Klausel verwenden
// scharfe Suche
$sql .= " WHERE
               `spalte2` = 'value'
";
// unscharfe Suche
$sql = " WHERE
              `spalte2` LIKE '%" . $var . "%'
";

// Statement senden
$result = mysql_query($sql, $connection) OR die (mysql_error());

// Werte von SELECT - Statement verwenden
// bei einem selektierten Wert kann/sollte die Schleifen wegfallen

// spalte1 und spalte3 wurden selektiert

// nur Auslesen, falls mindestens 1 Zeile selektiert wurde
if (mysql_num_rows($result) > 0) {
  // Anzahl der selektierten Zeilen wurde nicht durch LIMIT x limitiert,
  //also Schleife verwenden
  while ($row = mysql_fetch_array($result)) {
    echo $row["spalte1"] . ' ' . $row["spalte3"];
  }
}
Ist eigentlich keine große Sache! ;)

Gruß

irgendwie weiß ich trotzdem noch nicht, wie und wo ich anfange...
Hab jetzt eine Galerie in HTML fast fertig und wollte jetzt versuchen, das HTML
Stück für Stück durch PHP zu ersetzen, das dann das entsprechende HTML
generieren soll...

Hallo Bernhard,

bevor Du Dich irgendwie großartig mit der Gallerie beschäftigst, solltest Du Dich ein oder zwei Tage mit Datenbanken beschäftigen. Es ist wirklich kein Hexenwerk, und spart Dir eine Menge Arbeit, wenn Du mal irgendwas später erweitern oder ändern willst. Dann klappt das z.B. auch sehr einfach mit dem Sortieren.

Galerie schreibt man mit einem "L", hat nichts mit Galle zu tun...;-)

Wie eine Datenbank funktioniert, weiß ich -glaub ich- im groben...
Was ich noch nicht kapiert habe, ist, wie ich sie hochlade, falls ich sie fertig habe,
ob und wie z.B. eines Tages ein Providerwechsel möglich ist (d.h. ob ich mit der
Datenbank und ihren Inhalten umziehen kann), ob und wie eine Datensicherung
möglich ist etc.

Das Erstellen einer Datenbank habe ich schonmal hinbekommen...

Mir fehlt immer noch der logische Zugang zu PHP: wo und wie fange ich an?

Da alles in Schleifen abläuft, sehe ich einfach den Anfangspunkt nicht.

Ich lege mir dazu immer in der Datenbank eine Spalte `order` an in der ich eine fortlaufende Zahl abspeicher
Das sollte sich doch mit einem Formular lösen lassen, in dem man ein Bild auswählen
kann und dann die Auswahlmöglichkeiten hat:

  • an den Anfang (vor Bild 1)
  • nach Bild Nummer Eingabefeld
  • ans Ende (nach dem letzten Bild)
den Rest macht PHP dann und ändert entsprechend alle Zahlen in der Spalte 'order'...

Wie man das dann aber in PHP löst, weiß ich natürlich wieder nicht, stell's mir
aber ungefähr so vor:
nimm alle Zahlen, die größer sind, als die, die das Bild bekommen soll,
nimm davon die größte und erhöhe sie um "1",
dann nimm die nächstkleinere und erhöhe sie auch um "1",
diese Schleife mach so lange, bis Du alle um "1" erhöht hast
Das selbe bräuchte man ja auch, wenn eines Tages ein Bild gelöscht werden soll,
um zu vermeiden, dass eine Lücke entsteht...

Grüße
Bernhard
 
Hallo Bernhard,

erstmal danke für Deine orthografischen Hinweise (Du Korinthenkacker ;-))

Also mit mysqli und PDO habe ich mich auch noch nicht beschäftigt, aber ich habe hier gerade eine Seite gefunden, die vielleicht interessant sein könnte: phpBuddy.eu - Tutorial - MySQLi Erweiterung von PHP 5.
Was ich noch nicht kapiert habe, ist, wie ich sie hochlade, falls ich sie fertig habe,
ob und wie z.B. eines Tages ein Providerwechsel möglich ist (d.h. ob ich mit der
Datenbank und ihren Inhalten umziehen kann), ob und wie eine Datensicherung
möglich ist etc.
Das ist am einfachsten über phpMyAdmin. Dort kannst Du komplette Datenbanken ex- und importieren. Habe ich auch schon das ein oder andere mal geschafft ;-)
nimm alle Zahlen, die größer sind, als die, die das Bild bekommen soll,
nimm davon die größte und erhöhe sie um "1",
dann nimm die nächstkleinere und erhöhe sie auch um "1",
diese Schleife mach so lange, bis Du alle um "1" erhöht hast
Das machen wir einfacher, bzw. lassen MySQL die Arbeit der Schleife erledigen, z.B. so:
Code:
UPDATE galerie
SET order = order + 1
WHERE order > 10
So könnte ein MySQL-Statement aussehen, wenn Du ein Bild nach dem 10. Bild einfügen möchtest. Das Bild das eingefügt werden soll, muss dann natürlich noch die order-Nummer 11 erhalten ;-).

Ich hoffe, das hab ich halbwegs verständlich geschrieben.

Gruß thuemmy
 
Werbung:
Hallo Thuemmy,

Hallo Bernhard,

erstmal danke für Deine orthografischen Hinweise (Du Korinthenkacker ;-))

Ich hoffe mal, Du bist mir dafür nicht böse! Ich hab's lange selber nicht gewusst,
bis ich das mit der "Galle" irgendwo gelesen habe. Seit dem weiß ich es...

Und: ich denke, jeder von uns hat mit dem ein oder anderen Wort so seine Probleme...
So schaue ich wirklich regelmäßig nach, ob es "Standart" oder "Standard" heißt,
weil ich es mir einfach nicht merken kann...

Also mit mysqli und PDO habe ich mich auch noch nicht beschäftigt, aber ich habe hier gerade eine Seite gefunden, die vielleicht interessant sein könnte: phpBuddy.eu - Tutorial - MySQLi Erweiterung von PHP 5. Das ist am einfachsten über phpMyAdmin. Dort kannst Du komplette Datenbanken ex- und importieren. Habe ich auch schon das ein oder andere mal geschafft ;-)

beides muss ich mir nochmal besser anschauen...

phpMyAdmin kannte ich, dachte aber, dass man das nur lokal einsetzen könnte,
da ich bisher davon ausgegangen bin, dass die einzige Möglichkeit, auf den Server
zuzugreifen, FTP sei...

Das machen wir einfacher, bzw. lassen MySQL die Arbeit der Schleife erledigen, z.B. so:
Code:
UPDATE galerie
SET order = order + 1
WHERE order > 10
So könnte ein MySQL-Statement aussehen, wenn Du ein Bild nach dem 10. Bild einfügen möchtest. Das Bild das eingefügt werden soll, muss dann natürlich noch die order-Nummer 11 erhalten ;-).

Ich hoffe, das hab ich halbwegs verständlich geschrieben.

Gruß thuemmy

Hmmm, ja, es war verständlich - trotzdem könnte ich es nicht umsetzen, weil
mir die Grundlagen fehlen und ich daher nicht wüsste, wo ich anfangen sollte...;-(

Grüße
Bernhard
 
Wenn ich in einem vorherigen Post gschrieben habe, Du solltest Dich ein oder zwei Tage mit Datenbanken beschäftigen, dann meinte ich eher MySQL, womit Du Dich beschäftigen solltest. Du musst ja für den Anfang nicht das volle Programm durchziehen.

Schau Dir das mal an (ohne PDO und mysqli) PHP für dich - MySQL und phpMyAdmin

Gruß thuemmy
 
Ich kann thuemmy nur zustimmen. Du solltest dich am besten erst mal mit sql, speziell mysql auseinander setzen. Die Seite, die thuemmy gepostet hat ist, wie ich meine gut verständlich. Dort habe ich auch meine ersten Geh-Versuche mit sql gemacht :)
Datenbanken und Tabellen kannst du vorerst ja mit phpmyadmin erstellen. Aber das Verbinden , eintragen und auslesen musst du schon über php und sql machen. Wünsche dir viel Erfolg beim lernen. Wenn du dann noch irgend welche Fragen hast kannst du Diese ja hier stellen ;)
 
Werbung:
Zurück
Oben