Bepaalde tiid tonen uit Database
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
En dan een select uit de nieuwe tabel
SELECT b.* FROM mijn_nieuwe_tabel n
JOIN mijn_bestaande_tabel b ON n.mijn_bestaande_tabel_id = b.id
WHERE (NOW() BETWEEN n.starttijd AND n.eindtijd)
Gewijzigd op 14/06/2015 16:15:05 door Frank Nietbelangrijk
Dan zouden starttijd en eindtijd een datetime datatype moeten hebben.
Dank je wel voor je reactie. Ik heb nog een vraag over de code. Waar staat de b en de n in de code voor?
Nieuwe tabel en Bestaande tabel
Toevoeging op 18/06/2015 17:32:37:
Hoe kan ik de naam uit de tabel halen? Heb nu dit: $naam = mysql_fetch_assoc($result);
echo $naam['name']*
Maar krijg deze error:
Warning: mysql_fetch_assoc() expects parameter 1 to be resource, boolean given in /home/u684563094/public_html/index.php on line 93
* (name is uit de database)
Bouw nette foutafhandeling in.
Hij laat nu wel iets uit de database zien. Alleen staat de timezone van mijn Database niet goed denk ik. Hoe kan je daarachter komen?
Die code werkt niet. Er gebeurt niks. Hij blijft gewoon bij de timezone die nu is ingesteld.
Ja, dat komt omdat je iets SELECTEERT met die query. Je zou als het goed is een waarde moeten zien.
Code (php)
1
2
3
4
5
6
2
3
4
5
6
$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'];
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
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.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?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'];
?>
$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.
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
SELECT
onair2.id, onair.name, ...
FROM
onair2
JOIN
onair
ON
onair2.id = onair.id
WHERE
NOW() BETWEEN onair.starttijd AND onair.eindtijd
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.
Gewijzigd op 11/09/2015 18:55:23 door Frank Nietbelangrijk
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
$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'];
?>
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);
De foutmelding die jij geeft is omdat je query niet gelukt is op regel 10.
Gewijzigd op 11/09/2015 19:56:03 door Frank Nietbelangrijk