hulp bij een query

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dirk Coppens

Dirk Coppens

06/02/2019 17:38:36
Quote Anchor link
Hulp gevraagd wan ik geraak er niet meer uit ??

Ik heb een database waarin gebruikers zitten verbonden aan groepen en ook berichten die verbonden zijn aan groepen.

De volgende query werkt perfect met de groepen die gekoppeld zijn .
Maar nu wil ik vanuit de gebruiker ook een indienstdatum meegeven.
Nu zou de query hetzelfde moeten doen maar enkel de berichten na de indienstdatum weergeven die toegekend zijn door de groepen.

Hier een stukje code waarin de query zit :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
$sleutel
= $_SESSION["UserID"] ;


//**********  Check if specific record exists  ************
global $conn;
$strSQLExists = "select * from gebruikers where PersUserID='$sleutel'";
$rsExists = db_query($strSQLExists,$conn);
$data=db_fetch_array($rsExists);
if($data)
{

if($sleutel <> "IBOXPW")
{

$gb_ID = $data['ID'];
$gb_dat = $data['indienstdat'];//moet nog verwerkt worden in de query

$strSQL = "SELECT
newsmain.ID,
newsmain.InforefDoc,
newsmain.InfoDat,
newsmain.InfoTitel,
newsmain.InfoDatBegin,
newsmain.InfoDatEind,
newsmain.Infolocatie
FROM newsmain

INNER JOIN news_cat ON newsmain.ID = news_cat.ID_news
INNER JOIN gebr_cat ON news_cat.ID_category = gebr_cat.ID_Category and ID_gebruiker ='$gb_ID'
LEFT JOIN gelezen ON gelezen.news_id = newsmain.ID AND user_id = '$sleutel'
WHERE gelezen.news_id is null "
;
}

//WHERE ID NOT IN (SELECT news_id FROM gelezen WHERE user_id = '$sleutel')
}
else
{
    // if dont exist do something else
}
?>


WIE KAN HELPEN AUB.

Dank bij voorbaat

Edit:
Ik heb code-tags geplaatst. Gelieve dit in het vervolg zelf toe te voegen aan je bericht.
Zie ook: Veel gestelde vragen: Welke UBB-codes kan ik gebruiken.
Gewijzigd op 06/02/2019 21:37:17 door - Ariën -
 
PHP hulp

PHP hulp

20/08/2019 21:36:34
 
Thomas van den Heuvel

Thomas van den Heuvel

06/02/2019 17:55:19
Quote Anchor link
Euh, een AND conditie toevoegen in de query?
AND newsmain.InfoDat (of welke kolom van toepassing is) >= <datum indiensttreding>
?

Hoe luidt het datumformaat? Hopelijk yyyy-mm-dd? Anders kun je hier niet mee rekenen.

Waarom zouden medewerkers trouwens geen eerdere berichten mogen lezen?

Ik vermoed dat een andere aanpak dan de huidige beter is. Bijvoorbeeld op basis van rechtenbeheer/subnieuwsgroep/uitnodiging in een nieuwsgroep iemand toegang geven/uitsluiten van berichten. Maar niet op grond van datum van indiensttreding.
 
Dirk Coppens

Dirk Coppens

06/02/2019 18:03:06
Quote Anchor link
Hallo thomas,

Het gaat hier om technische berichten en nieuwe mensen die in dienst komen moeten de vervallen berichten niet af punten, zij moeten enkel de huidige berichten af punten, maar de oude blijven enkel zitten om er toch nog info uit te halen als het moet.

Ik ben geen held in query, dus weet niet goed waar in de query ik dit moet plaatsen, ik heb uw and al op verschillende plaatsen gezet maar ik kom tot geen resultaat.
De query zoals hierboven werkt perfect, maar de nieuwe gebruikers zien dan ook de oude berichten en dit is overbodig, want het kunnen er honderden zijn als dit programma enkele jaren dienst doet.

Indien je mij zou kunnen zeggen waar ik het juist moet plaatsen kan ik een test doen.

alvast bedankt
 
Bart Smulders

Bart Smulders

06/02/2019 20:24:29
Quote Anchor link
Dirk,

Zoals Thomas al aanhaalde. Hoe heb je het datum formaat opgeslagen in je DB?

Het is na je WHERE dat je de AND moet toevoegen

AND (newsmain.InfoDatBegin > gebruikers.indienst) ;
 



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.