Bepaalde tiid tonen uit Database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 volgende »

14/06/2015 15:12:27
Quote Anchor link
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
 
PHP hulp

PHP hulp

16/04/2024 21:07:34
 
Frank Nietbelangrijk

Frank Nietbelangrijk

14/06/2015 16:03:09
Quote Anchor link
extra tabel met starttijd, eindtijd en een id naar de juiste naam en foto.

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
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

14/06/2015 20:28:27
Quote Anchor link
@Frank
Dan zouden starttijd en eindtijd een datetime datatype moeten hebben.
 

18/06/2015 15:38:41
Quote Anchor link
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?
 
- Ariën  -
Beheerder

- Ariën -

18/06/2015 15:40:33
Quote Anchor link
Dat zijn de aliassen voor de tabelnamen, die gebruik worden in de JOIN.
Nieuwe tabel en Bestaande tabel
 

18/06/2015 15:49:45
Quote Anchor link
Oke dank je wel!

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)
 
- SanThe -

- SanThe -

18/06/2015 18:00:23
Quote Anchor link
Waarschijnlijk is de query mislukt.
Bouw nette foutafhandeling in.
 

18/06/2015 21:13:30
Quote Anchor link
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?
 
Ward van der Put
Moderator

Ward van der Put

19/06/2015 08:09:35
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT @@global.time_zone, @@session.time_zone;
 

26/06/2015 16:01:37
Quote Anchor link
Die code werkt niet. Er gebeurt niks. Hij blijft gewoon bij de timezone die nu is ingesteld.
 
- Ariën  -
Beheerder

- Ariën -

26/06/2015 16:06:25
Quote Anchor link
Ja, dat komt omdat je iets SELECTEERT met die query. Je zou als het goed is een waarde moeten zien.
 

28/06/2015 17:31:42
Quote Anchor link
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.
Gewijzigd op 28/06/2015 17:31:57 door
 

11/09/2015 14:58:53
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];


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
 
DavY -

DavY -

11/09/2015 15:03:17
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
while($naam = mysqli_fetch_assoc($query))
{

      echo $naam['name'];
}

?>
 
Willem vp

Willem vp

11/09/2015 15:04:36
Quote Anchor link
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)
 

11/09/2015 15:24:04
Quote Anchor link
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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/09/2015 16:49:48
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
?>


Bovenstaande levert wellicht iets zinnigs op.
Database leeg door SQL Injection?
 

11/09/2015 17:04:51
Quote Anchor link
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.
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/09/2015 18:54:32
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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


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
 

11/09/2015 19:43:34
Quote Anchor link
Heb het nu zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
?>


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);
 
Frank Nietbelangrijk

Frank Nietbelangrijk

11/09/2015 19:53:47
Quote Anchor link
Je hebt de foutafhandeling die ik je eerder gegeven heb er weer uitgehaald:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(! $result) {
    echo mysql_error();
    exit;
}

?>

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
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.