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
?
Onbekende gebruiker
28-06-2015 17:31
gewijzigd op 28-06-2015 17:31
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.
?
Onbekende gebruiker
11-09-2015 14:58
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.
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)
?
Onbekende gebruiker
11-09-2015 15:24
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'];
?>
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.
?
Onbekende gebruiker
11-09-2015 19:43
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.