Hallo,

Ik heb een mysql database. Nu wil ik sommige gegevens voor een tijdje in PHP laten tonen. Een soort van DJ rotator. Wanneer er dus een tijd is gegeven alleen die naam en foto laten tonen. Is die tijd voorbij komt er een andere naam en foto. Hoe kan ik zoiets maken?

Juul
De code die je gaf geeft alleen SYSTEM aan. Ik ben ook gaan kijken op welke timezone hij ingesteld staat en dan geeft hij aan EST.
Ik heb een probleem. Afgelopen nacht is heel mijn database verwijderd. Hoe weet ik nog steeds niet. Ik heb nu een deel weer werkend, alleen de onair niet. Ik heb twee tabellen "onair" een met de naam en een id, en de andere "onair2" met een starttijd en een eindtijd een id dat wordt gekoppeld aan "onair". Nu krijg ik elke keer deze fout: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given. Dit is mijn code:
$query = "SELECT * FROM onair2
JOIN onair ON id = id
WHERE (NOW() BETWEEN starttijd AND eindtijd)";
$result = mysql_query($query);
$naam = mysql_fetch_assoc($result);
echo $naam['name'];


Onair is de tabel met naam
onair2 is de tabel met de starttijd en de eindetijd, een een id gekoppeld aan onair.

Is er iemand die me zou kunnen helpen?

Juul
<?php
while($naam = mysqli_fetch_assoc($query))
{
echo $naam['name'];
}
?>
Ik vermoed dat het probleem zit in:

JOIN onair ON id = id

SQL weet niet welk id-veld bij welke tabel hoort. Maak er dus van

JOIN onair ON onair.id = onair2.id

of

JOIN onair USING(id)
onair.id = onair2.id herkent ie niet. Hij wordt in mijn code ook paars (sublime text). JOIN onair USING(id) ook geprobeerd zelfde fout. Hiervoor heeft ie met deze code gewerkt.
<?php
$query = "SELECT * FROM onair2
JOIN onair ON id = id
WHERE (NOW() BETWEEN starttijd AND eindtijd)";
$result = mysql_query($query);
if(! $result) {
echo mysql_error();
exit;
}
$naam = mysql_fetch_assoc($result);
echo $naam['name'];
?>

Bovenstaande levert wellicht iets zinnigs op.
Database leeg door SQL Injection?
Krijg dit terug: "Column 'id' in on clause is ambiguous". Weet niet waardoor. Website was redelijk goed beveiligd ben nu eerst alles opnieuw aan het opstarten en daarna extra beveiligen.
Oke hij zegt dus feitelijk dat ie niet weet welke id je bedoelt. Willem gaf dat al aan. Wellicht zou je het * ook moeten vervangen.


SELECT
	onair2.id, onair.name, ...
FROM 
	onair2
JOIN
	onair
ON
	onair2.id = onair.id
WHERE
	NOW() BETWEEN onair.starttijd AND onair.eindtijd


Ik weet alleen niet welke kolommen in welke tabel staan dus hier en daar moet je mogelijk onair en onair2 omwisselen.
Heb het nu zo:
$query = "SELECT onair2.id, onair.name, onair2.starttijd, onair2.eindetijd; 
FROM 
    onair2
JOIN
    onair
ON
    onair2.id = onair.id
WHERE
    NOW() BETWEEN onair2.starttijd AND onair2.eindetijd";
$result = mysql_query($query);
$naam = mysql_fetch_assoc($result);
echo $naam['name'];
?>


Krijg nu deze error: Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given.
Dat geeft hij voor deze code: $naam = mysql_fetch_assoc($result);
Je hebt de foutafhandeling die ik je eerder gegeven heb er weer uitgehaald:
<?php
if(! $result) {
echo mysql_error();
exit;
}
?>
De foutmelding die jij geeft is omdat je query niet gelukt is op regel 10.

Reageren