Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Hat dir das Tutorial gefallen? |
Ja |
|
28% |
[ 2 ] |
Nein |
|
71% |
[ 5 ] |
|
Stimmen insgesamt : 7 |
|
Autor |
Nachricht |
Impi Mitglied
Angemeldet: 06.05.2006 Beiträge: 530
|
Verfasst am: 06.05.2006, 19:50 Titel:
Zufallsbild/-text per PHP |
|
|
|
|
Im Folgenden Tutorial werde ich erklären wie man mit PHP eine Banner- bzw. Textrotation scriptet.
Vorweg:
Ich arbeite mit MySQL also benutze ich auch diese Datenbankform für das Tutorial.
Der Datenbankaufbau
Tabelle 'banner' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und url(varchar 100)
Code: |
CREATE TABLE banner (
id int(11) NOT NULL auto_increment,
url varchar(100) NOT NULL,
PRIMARY KEY (id),
KEY id (id)
)
|
Tabelle 'texte' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und inhalt(TEXT)
Code: |
CREATE TABLE texte (
id int(11) NOT NULL auto_increment,
inhalt TEXT,
PRIMARY KEY (id),
KEY id (id)
)
|
Die Struktur sollte wohl verständlich sein, deshalb gehe ich hier mal nicht weiter darauf ein .
Das Script
Das Script wird ersteinmal die Datenbankverbindung bestimmen und diese Verbindung dann als 'Default' selectieren.
Das geht so
Code: |
<?php
$db_fehler = "
Es konnte keine Verbindung zur Datenbank aufgebaut werden ...
";
$dbserver = "localhost"; // Hostname, meistens localhost
$nutzer = "impi"; // Username der Datenbank
$passwort = "ganzgeheim"; // Passwort der Datenkbank
$dbname = "rotationtutorial"; // Datenbankname
$db = mysql_connect($dbserver,$nutzer,$passwort) OR die($db_fehler); //Verbindung zur Datenbank herstellen
mysql_select_db($dbname,$db) OR die($db_fehler); //Datenbank als 'Default' selectieren
|
Jetzt haben wir alle Vorbereitungen für den Hauptteil des Scriptes geschaffen. Jetzt gilt es die Datenbankinhalte ( die Du natürlich vorher eingetragen hast ) zufällig abzurufen.
Das macht man so
Code: |
//Anzahl der Datenbankzeilen zählen
$sql = mysql_query("SELECT Count(*) FROM banner");
while($row = mysql_fetch_assoc($sql)){
$foo = $row[Count(id)];
}
//Zufallszahl ermitteln
$zufall = rand(1, $foo);
//Zufälligen Banner auswählen und darstellen
$sql = mysql_query("SELECT * FROM banner WHERE id = '$zufall'");
while($row = mysql_fetch_assoc($sql)){
echo "<img src='$row[url]'>";
}
?>
|
Das wars schon ! Garnicht so schwer, oder? Mit den Texten verläuft es genau so, man muss nur Tabellenname und Spaltenname ändern bzw. die Ausgabe abändern, das kannst du jetzt allerdings selbst.
Ich hoffe das Tutorial hat Dir geholfen.
Impi
P.S.: Hab das Ganze noch nicht getestet, es sollte dennoch funktionieren
Zuletzt bearbeitet von Impi am 07.05.2006, 11:01, insgesamt einmal bearbeitet |
|
Nach oben |
|
|
Panda Mitglied
Angemeldet: 25.03.2005 Beiträge: 190 Wohnort: Marburg
|
Verfasst am: 06.05.2006, 23:15 Titel:
Re: Zufallsbild/-text per PHP |
|
|
|
|
Impi hat folgendes geschrieben: |
Der Datenbankaufbau
Tabelle 'banner' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und url(varchar 100)
Code: |
CREATE TABLE banner (
id int(11) NOT NULL auto_increment,
url varchar(100) NOT NULL,
PRIMARY KEY (id),
KEY id (id)
)
|
Tabelle 'texte' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und inhalt(TEXT)
Code: |
CREATE TABLE banner (
id int(11) NOT NULL auto_increment,
inhalt TEXT,
PRIMARY KEY (id),
KEY id (id)
)
|
|
hab da nen fehler gefunden
hab aber noch nicht weiter reingeguckt, weiteres kommt per edit |
|
Nach oben |
|
|
syrec Mitglied
Angemeldet: 03.03.2006 Beiträge: 163
|
Verfasst am: 07.05.2006, 00:12 Titel:
Re: Zufallsbild/-text per PHP |
|
|
|
|
[quote="Impi"]
Code: |
<?php
$db_fehler = "
Es konnte keine Verbindung zur Datenbank aufgebaut werden ...
";
$dbserver = "localhost"; // Hostname, meistens localhost
$nutzer = "impi"; // Username der Datenbank
$passwort = "ganzgeheim"; // Passwort der Datenkbank
$dbname = "rotationtutorial"; // Datenbankname
$db = mysql_connect($dbserver,$nutzer,$passwort) OR die($db_fehler); //Verbindung zur Datenbank herstellen
mysql_select_db($dbname,$db) OR die($db_fehler); //Datenbank als 'Default' selectieren
|
Kenn mich null aus aber heisst das nicht
Code: | $db = @mysql_connect($dbserver,$nutzer,$passwort) |
? |
|
Nach oben |
|
|
Panda Mitglied
Angemeldet: 25.03.2005 Beiträge: 190 Wohnort: Marburg
|
Verfasst am: 07.05.2006, 00:29 Titel:
|
|
|
|
|
nein, man braucht kein @ davor |
|
Nach oben |
|
|
Yada Mitglied
Angemeldet: 08.06.2004 Beiträge: 267
Interessen: zuviel
|
Verfasst am: 07.05.2006, 00:33 Titel:
|
|
|
|
|
Ähm... SELECT * FROM banner ORDER BY RAND() ?!
Dauert 1 Sekunde zum Schreiben, ist viel einfacher - und wenn du bei deiner Variante einen Eintrag löschst kommts zu Fehlern
hf, Yada |
|
Nach oben |
|
|
syrec Mitglied
Angemeldet: 03.03.2006 Beiträge: 163
|
Verfasst am: 07.05.2006, 00:40 Titel:
|
|
|
|
|
Panda hat folgendes geschrieben: | nein, man braucht kein @ davor |
sry dachte weil ich das so oft gesehen habe....wie gesagt hab null ahnung... |
|
Nach oben |
|
|
Impi Mitglied
Angemeldet: 06.05.2006 Beiträge: 530
|
Verfasst am: 07.05.2006, 10:21 Titel:
Re: Zufallsbild/-text per PHP |
|
|
|
|
Panda hat folgendes geschrieben: |
hab da nen fehler gefunden
hab aber noch nicht weiter reingeguckt, weiteres kommt per edit |
Der Fehler wäre ... ? |
|
Nach oben |
|
|
Impi Mitglied
Angemeldet: 06.05.2006 Beiträge: 530
|
Verfasst am: 07.05.2006, 10:24 Titel:
|
|
|
|
|
Yada hat folgendes geschrieben: | Ähm... SELECT * FROM banner ORDER BY RAND() ?!
Dauert 1 Sekunde zum Schreiben, ist viel einfacher - und wenn du bei deiner Variante einen Eintrag löschst kommts zu Fehlern
hf, Yada |
Es gibt sicherlich noch einige andere Varianten, man könnte auch die Banner von 1-x durchnummerieren und dann per Rand(); die jeweilige Datei aus dem Ordner xy auswählen oder mit der Array(); funktion zuweisen.
Das es zu fehlern kommen kann stimmt ...
Impi
P.S.: Lasst mal Nachsicht walten ich hab das gestern mal als Einstiegspost genutzt! |
|
Nach oben |
|
|
Panda Mitglied
Angemeldet: 25.03.2005 Beiträge: 190 Wohnort: Marburg
|
Verfasst am: 07.05.2006, 10:54 Titel:
Re: Zufallsbild/-text per PHP |
|
|
|
|
Panda hat folgendes geschrieben: | Impi hat folgendes geschrieben: |
Der Datenbankaufbau
Tabelle 'banner' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und url(varchar 100)
Code: |
CREATE TABLE banner (
id int(11) NOT NULL auto_increment,
url varchar(100) NOT NULL,
PRIMARY KEY (id),
KEY id (id)
)
|
Tabelle 'texte' besteht aus 2 Spalten:
id(Integer + auto_increment + Primärschlüssel) und inhalt(TEXT)
Code: |
CREATE TABLE banner (
id int(11) NOT NULL auto_increment,
inhalt TEXT,
PRIMARY KEY (id),
KEY id (id)
)
|
|
|
den hier, 2mal die tabelle banner |
|
Nach oben |
|
|
Impi Mitglied
Angemeldet: 06.05.2006 Beiträge: 530
|
Verfasst am: 07.05.2006, 11:02 Titel:
|
|
|
|
|
Das war dann wohl ein TIPPfehler |
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
vercci Mitglied
Angemeldet: 10.04.2019 Beiträge: 436162
|
|
Nach oben |
|
|
|