Wij als Radiostation hebben het volgende script om onze programmering op te halen, het onderstaande wordt gebruikt voor nu on air:


<?php	
	// Configuratie voor de programmering
	
  $dag_en = date("w");

  /* $dagen = array('Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag', 'Zondag');  */
  $dagen = array('Woensdag', 'Vrijdag');  
  $dag_nl = $dagen[$dag_en];
  		
	$query_1 = " SELECT * FROM programmering WHERE programmering_dag = '".$dag_nl."' AND programmering_uur = '".date("H")."' ";
				
	$sql_1 = mysql_query($query_1) or die ( mysql_error( ) );		
	
	if(mysql_num_rows($sql_1) == 0){
		
	$programmering_show = "Momenteel is er geen uitzending op Radijow.nl";
	$programmering_img = "images/programmas/offline.png";
		
	} else {
	
	while($rij_1 = mysql_fetch_object($sql_1)){	
	$programmering_show = $rij_1->programmering_show; 
	$programmering_img = $rij_1->programmering_img;
	
	}
	
	}    
?>


Database gegevens even weggehaalt, maar het probleem is: als er een live uitzending is op het uur 16:00 dan laat hij dat niet zien terwijl alles in de database gewoon klopt en het heeft gewerkt.
Maak gebruik van datum en tijd functie's van mysql.
Dat voorkomt problemen zoals dit.
Heb ik ookal naar gekeken, zou je het me één keer voor kunnen doen bij deze Query?
Je moet je database model veranderen.
date('w') = 6 (begint van zondag (0))
je array met dagen telt maar 2 dagen, $dagen[6] bestaat niet.
Dus kun je ook geen resultaat krijgen.
@Karl; Hoe kan ik het beste doen?

@Tumbler, hmm
SELECT * FROM programmering WHERE programmering_dag = DAYOFWEEK(NOW()) AND programmering_uur = HOUR(NOW())


Zou dan toch moeten werken?

Reageren