Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

php: bestimmtes bild aus pool auswaehlen?

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
nerd
PostRank 10
PostRank 10
Beiträge: 4023
Registriert: 15.02.2005, 04:02

Beitrag von nerd » 29.10.2009, 07:51

die ueberschrift ist nicht optimal, weiss aber nicht wie ich es anders beschreiben koennte. also folgendes problem:

ich habe ein cms mit vielen (100+) seiten, und einen ordner mit einer handvoll bildern (3-5 oder so). jetzt soll auf jeder seite irgend ein bild aus dem bilder-ordner angezeigt werden. welches ist dabei egal, aber es muss "statisch" fuer diese seite sein - soll heissen wenn ich seite_id 50 aufrufe soll auf dieser seite immer das selbe bild erscheinen.
gibts da irgend eine einfache funktion die aus meiner seite_id eine zahl auswuerfelt, nachdem man die obergrenze bestimmt (in diesem fall anzahl dateien im bilder-ordner)?
ich will mir dafuer nicht extra ne zuornungstabelle in die datenbank setzen, zumal sich anzahl seiten und anzahl bilder jederzeit aendern koennten. es ist auch nicht wichtig ob diese bilder ueberall gleichmaessig verteilt sind oder nicht.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 29.10.2009, 09:01

Interessante Frage, so was in der Art hatte ich auch mal vor und es dann doch verworfen.

Prinzipiell könntest Du anhand der ID schon eine Zufallszahl berechnen lassen die zufällig ein Bild abruft und dann immer das gleiche. Formel ist gleich, ID ist gleich, also kommt immer das gleiche Bild.

Kommt nun aber ein weiteres Bild hinzu, dann wird es schon kompliziert. Nun müsste das Script ja wissen für welche Seite es Bilder 1-5 wählen darf und für welche dann Bild 1-6. Sonst könnte sich ja doch ein Bild nachträglich ändern. Und genau da hörte ich mit meinen Versuch dann auch auf.
ich will mir dafuer nicht extra ne zuornungstabelle in die datenbank setzen, zumal sich anzahl seiten und anzahl bilder jederzeit aendern koennten.
Aber genau das wäre die Lösung. Anzahl der Bilder kann sich dabei auch ändern. Es dürfen mehr werden, aber nicht weniger, da er sonst evtl. auf ein Bild zugreift das nicht mehr da ist (oder die Zuordnung entsprechend anpassen). Seiten ist ganz egal. Mehr oder weniger funktioniert.

Nachtrag:
Das Problem ist ja an sich der dynamische Wertebereich, der aber die "alte" Seiten nicht beeinflussen darf. Theoretisch, nur mal so gesponnen, könntest Du das mit Dateinamen der Bilder abdecken.
Du bist jetzt bei max seite_ID 100. Alle Seiten dürfen aus den Bilder 1-5 wählen. Dann kommen seite_ID 100 bis 150, auch die dürfen aus Bilder 1-5 wählen. Dann kommt ein neues Bild hinzu. Das darf dann aber nur von Seiten ID > 150 gewählt werden zzgl. den 1-5.
Also könnte es theoretisch gehen, dass das verantwortliche Script einfach nur Bilder abfragt die einen Dateinamen (Datei-ID) haben die kleiner/gleich ist als die eigene Seiten_ID. Bist Du also bei Seite_ID 150 und legst ein neues Bild bild_151.jpg an, dann würde das nicht verwendet werden, erst beim nächsten Artikel und den folgenden.

Also quasi aus dem Verzeichnis nicht alle Bilder holen und davon eines per Zufall, sondern aus allen einen gewissen Bereich und aus dem Bereich eines per Zufall. Aber wie gesagt, nur so auf die Schnelle zusammengesponnen ;-)

Lord Lommel
PostRank 10
PostRank 10
Beiträge: 3227
Registriert: 18.02.2008, 02:43
Wohnort: Halle / Saale

Beitrag von Lord Lommel » 29.10.2009, 09:40

https://de.php.net/manual/de/function.rand.php

Das dürfte das sein, was du suchst.

nachfrag
PostRank 4
PostRank 4
Beiträge: 174
Registriert: 30.05.2006, 21:20
Wohnort: Westerwald

Beitrag von nachfrag » 29.10.2009, 09:55

Lord Lommel hat geschrieben:https://de.php.net/manual/de/function.rand.php

Das dürfte das sein, was du suchst.
Damit immer das gleiche kommt, müsste dann aber irgendwo gespeichert werden, welches Bild welcher Seite zugeordnet ist.
Ich würde entweder die Tabelle des CMS, in der Seiten geführt werden, um eine Spalte für das Bild erweitern, oder eine Tabelle in der Datenbank einrichten mit einer Spalte für die URL/ID der Seite und einer für das Bild. Dann kannst du beim Aufruf einer Seite abfragen, ob es schon ein Bild gibt für die Seite, wenn nicht, aus dem Pool eines rausfischen mit rand() und das dann speichern in der Datenbank ...

Lord Lommel
PostRank 10
PostRank 10
Beiträge: 3227
Registriert: 18.02.2008, 02:43
Wohnort: Halle / Saale

Beitrag von Lord Lommel » 29.10.2009, 10:04

Achso. Hat das Ding keinen Cache ? Stell ihn auf 24h ein. Dann kommt jeden Tag was anderes. Oder nimm den URL-String und mach nen Hash draus, den du in eine Zahl überführst, die du dann mod Bildanzahl rechnest. Raus kommt die Bildnummer.

SebaF
PostRank 4
PostRank 4
Beiträge: 149
Registriert: 16.08.2005, 07:02

Beitrag von SebaF » 29.10.2009, 10:30

sofern keine neuen Bilder dazu kommen, könntest Du mit modulo arbeiten.


site_id % 5 = x

Synonym
PostRank 10
PostRank 10
Beiträge: 3708
Registriert: 09.08.2008, 02:55

Beitrag von Synonym » 29.10.2009, 10:54

Er sagte aber, dass Bilder dazu kommen können und sich die bisherigen auf den Seiten nicht ändern dürfen.

Lord Lommel
PostRank 10
PostRank 10
Beiträge: 3227
Registriert: 18.02.2008, 02:43
Wohnort: Halle / Saale

Beitrag von Lord Lommel » 29.10.2009, 11:11

Dann entweder speichern oder mit der Seiten-ID arbeiten. Da kann man ja auch ein Switch einbauen.

Antworten
  • Vergleichbare Themen
    Antworten
    Zugriffe
    Letzter Beitrag