Tip des Tages Anzeige

  • Themenstarter Themenstarter Blümchen
  • Beginndatum Beginndatum
B

Blümchen

Guten Morgen,

stehe gerade vor einem Problem. Und zwar auf unsere Seite möchte ich so einer Art Tip des Tages anzeigen lassen.

Nun habe ich mal folgende Tabelle gemacht:


CREATE TABLE `tip_des_tages` (
`id` INT( 6 ) NOT NULL AUTO_INCREMENT ,
`titel` VARCHAR( 100 ) NOT NULL ,
`text` VARCHAR( 200 ) NOT NULL ,
`ab_wann` DATETIME NOT NULL ,
`bis_wann` DATETIME NOT NULL ,
`name` VARCHAR( 30 ) NOT NULL ,
PRIMARY KEY ( `id` )
) TYPE = MYISAM ;


So nun eine kleine Erklärung. Bei ID muss ich ja nichts sagen. Bei TITEL geben ich an wie das ganze heißt. Bei TEXT gebe ich an was eben ausgegeben wird. Bei AB_WANN kommt dann rein, ab wann das ganze zu sehen ist. BIS_WANN da kommt dann eben rein, wie lange das ganze Angezeigt werden soll.

Jetzt kommt mein Problem, wie kann ich das nun machen, dass jedes mal, wenn ich die Seite neu lade, dass dann eben auch ein anderer Tipp kommt und vor allem, dass die auch wirklich nur angezeigt werden, wenn das Datum stimmt.

Versteht Ihr was ich meine? Und stimmt denn die Tabelle oder fehlt da noch was?

Gruß Blümchen
 
Moin.
Bei der auswahl deiner Einträge nutzt du einfach WHERE.
PHP:
$sql = "SELECT
							 id,
							 blabla,
							 ab_wann,
							 bis_wann
			 FROM
							 tip_des_tages 
#edit: hatte ne abfarg kopiert und vergessen den tabnamen zu ändern aba nu stimmts
			 WHERE ab_wann < '".$heute."' AND bis_wann > '".$heute."'				";
 
$result=mysql_query($sql) OR die("Es gab einen MySQL Fehler:".mysql_error());

Dann holst du alles in einen Array und übergibst das ganze in einer
whileschleife in einen Zweidimensionalen Array:
PHP:
$i=0;
while($row = mysql_fetch_array($result)){
$i++;
for($u=0;$u<6;$u++){
$array[$i][$u]=$row[$u];
}
}
Nun kannst du die Elemente des Arrays Zählen die in
der Ersten Dimension vorhanden sind bzw. das ist ja
dein $i. Mit rand() kannst du nun eine Zufallszahl generieren
und dir einen der Array ausgeben lassen.

Ich hoffe du hast einigermasen verstanden was ich meine.
Den code hab ich nicht getestet sondern einfach mal hier
eingetippt, sind also wahrscheinlich noch fehler drinn.

Gruß Benny
 
Zuletzt bearbeitet:
Guten Morgen kle-ben,

danke für deine Hilfe ich werde das gleich mal versuchen. Wenn ich dann noch Fragen habe, dann melde ich mich einfach nochmals.

Gruß Blümchen
 
Hallo,

so da bin ich nochmals. Hab mir das gerade mal mit Rand durchgelesen, aber das kapier ich ja gerade ganz und gar nicht.

Ich habe nun folgenden Code:

PHP:
<?php  $sql = "SELECT
id,
titel,
ab_wann,
bis_wann
FROM
tip_des_tages
WHERE ab_wann < '".$heute."' AND bis_wann > '".$heute."'";

$result=mysql_query($sql) OR die("Es gab einen MySQL Fehler:".mysql_error()); 
$i=0;
while($row = mysql_fetch_array($result)){
$i++;
for($u=0;$u<6;$u++){
$array[$i][$u]=$row[$u];
}
} 
?>

So wenn ich den so einsetzte, dann kommt keine Fehlermeldung, wie muss ich denn nun weiter machen?

Gruß Blümchen
 
Ich denke als naechstes solltest Du den Tip ausgeben.

Denn wie es aussieht hast Du Dir jetzt (mindestens) einen Tip aus der DB geholt, also wartet dieser brennend darauf dem User praesentiert zu werden.
 
So generierst du die zufallszahl:
PHP:
$zufallszahl = rand(1,$i);
SIe deckt genau die erste Dimension Deines Arrays ab
und nu kannst du den ausgeben:
PHP:
echo "titel:".array[$zufallszahl][1]." !";
 
Hallo,

hmm wenn ich das nur so alles mache, dann bekomme ich nun folgende Meldung:

Parse error: parse error, unexpected '[', expecting '(' in XXXX

Mein Code sieht nun so aus:

PHP:
<?php  $sql = "SELECT
id,
titel,
ab_wann,
bis_wann
FROM
tip_des_tages
WHERE ab_wann < '".$heute."' AND bis_wann > '".$heute."'";

$result=mysql_query($sql) OR die("Es gab einen MySQL Fehler:".mysql_error()); 
$i=0;
while($row = mysql_fetch_array($result)){
$i++;
for($u=0;$u<6;$u++){
$array[$i][$u]=$row[$u];
}
} 
 $zufallszahl = rand(1,$i); 
 echo "titel:".array[$zufallszahl][1]."!"; 
?>

Gruß Blümchen
 
Zurück