Sendeplan: Nächste Sendung

h4dhunTer

Erfahrenes Mitglied
Hallo und guten Morgen,

ich habe für ein Internetradio einen Sendeplan erstellt. Dieser basiert auf MySQL und ich hab es mir so einfach wie möglich gemacht. Hier mal die Tabellenaufstellung:
name: Sendungsname
dj: Djname
tag: Hier den Wochentag einfach Montag, Dienstag,...
start: 19
ende: 20

Nun möchte ich aber auf der Startseite anzeigen, was die nächste Sendung ist.
Als erstes rufe ich den Wochentag ab und die aktuelle Uhrzeit. Dann übersetzt ich noch den Wochentag.
PHP:
<?PHP
$tag = strftime('%A');
$timestamp = time();
$uhrzeit = date("H",$timestamp);
echo $tag."<br>".$uhrzeit;

if($tag=="Monday"){
    $tag="Montag";
}elseif($tag=="Tuesday"){
    $tag="Dienstag";
}elseif($tag=="Wednesday"){
    $tag="Mittwoch";
}elseif($tag=="Thursday"){
    $tag="Donnerstag";
}elseif($tag=="Friday"){
    $tag="Freitag";
}elseif($tag=="Saturday"){
    $tag="Samstag";
}elseif($tag=="Sunday"){
    $tag="Sonntag";
}
?>
Nun weiß ich nicht, wie ich die Abfrage machen muss, dass ich wirklich nur eine Sendung bekomme und zwar die nächste.
Über :google: bin ich nicht schlau geworden.

Vielen Dank schonmal.
 
PHP:
<?php
$tag = strftime('%A');
$timestamp = time();
$uhrzeit = date("H",$timestamp); 

$sql = mysql_query("SELECT * FROM `table` WHERE `tag` = '".$tag."' AND `start` >= '".$uhrzeit."' LIMIT 1");

?>

Sollte doch funktionieren, oder?
 
Hallo,

also wenn ich die Abfrage starte, sagt er mir:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #2' at line 1
Kann mein MySQL server einen befehl nicht lesen oder was ist falsch?
 
Hier mein Script:

PHP:
<?php
$tag = strftime('%A');
$timestamp = time();
$uhrzeit = date("H",$timestamp);

if($tag=="Monday"){
    $tag="Montag";
    $tag2="Dienstag";
}elseif($tag=="Tuesday"){
    $tag="Dienstag";
    $tag2="Mittwoch";
}elseif($tag=="Wednesday"){
    $tag="Mittwoch";
    $tag2="Donnerstag";
}elseif($tag=="Thursday"){
    $tag="Donnerstag";
    $tag2="Freitag";
}elseif($tag=="Friday"){
    $tag="Freitag";
    $tag2="Samstag";
}elseif($tag=="Saturday"){
    $tag="Samstag";
    $tag2="Sonntag";
}elseif($tag=="Sunday"){
    $tag="Sonntag";
    $tag2="Montag";
}else{
    echo "error";
}

$user="webXXX";
$passwort="XXX";
$datenbank="usr_webXXX_1";
$Verbindung=mysql_connect("localhost",$user,$passwort);
mysql_select_db($datenbank,$Verbindung);

$sql = mysql_query("SELECT * FROM `nds_sendeplan` WHERE `tag` = '".$tag."' AND `start` >= '".$uhrzeit."' LIMIT 1");
$abfrage = mysql_query($sql) OR die("Konnte Datenbank nicht benutzen.<br>Fehlermeldung: ".mysql_error());
$anzahl2 = mysql_num_rows();
while($daten = mysql_fetch_assoc($abfrage)){
    if($anzahl2=="1"){
echo "Nächste Sendung ist um ".$daten['start']." Uhr bis ".$daten['ende']." Uhr mit <b>".$daten['dj']."</b> in der Sendung: ".$daten['name']."";
}else{

$sql2 = mysql_query("SELECT * FROM `nds_sendeplan` WHERE `tag` = '".$tag2."' AND `start` >= '".$uhrzeit."' LIMIT 1");
$abfrage2 = mysql_query($sql2) OR die("Konnte Datenbank nicht benutzen.<br>Fehlermeldung: ".mysql_error());
while($daten2 = mysql_fetch_assoc($abfrage2)){

  echo "Nächste Sendung ist um ".$daten2['start']." Uhr bis ".$daten2['ende']." Uhr mit <b>".$daten2['dj']."</b> in der Sendung: ".$daten2['name']."";
}
}
}

?>
 
PHP:
$sql = mysql_query("SELECT * FROM `nds_sendeplan` WHERE `tag` = '".$tag."' AND `start` >= '".$uhrzeit."' LIMIT 1");
$abfrage = mysql_query($sql) OR die("Konnte Datenbank nicht benutzen.<br>Fehlermeldung: ".mysql_error());
$anzahl2 = mysql_num_rows();
1. Du musst mysql_num_rows ein MySQL Query übergeben, das wäre in deinem Fall:
PHP:
$anzahl2 = mysql_num_rows($sql);

Ansonsten deklarierst du $sql = mysql_query und deine Abfrage ist auch wieder mysql_query. Sprich du rufst es sozusagen doppelt ab, das ergibt keinen wirklichen Sinn und sollte dir auch sagen, wo dein Fehler ist ;)
 
Zurück