array van namen in query plaatsen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java developer met testervaring

Java developer met testervaring Functieomschrijving "De drempel tussen de burger en de Belastingdienst zo laag mogelijk houden: dat is de belangrijke taak van ons team. Dit doen we door het burgerportaal Mijn Belastingdienst continu te verbeteren." René, Java-specialist bij de Belastingdienst. De keten Interactie is een samenwerkingsverband van alle dienstonderdelen binnen de Belastingdienst. Samen zorgen we dat het contact met burgers en bedrijven goed kan plaatsvinden. Onze belangrijkste opgave? Zoveel mogelijk digitaliseren. Dat doen we binnen het onderdeel Informatievoorzieningen (IV), de ICT-organisatie van de Belastingdienst. Denk bij de producten die IV-Interactie ontwikkelt en onderhoudt aan portalen, formulieren en authenticatie- en

Bekijk vacature »

Full Stack Developer Industriële Automatiseri

Raster wordt continu betrokken bij complexe en baanbrekende projecten in industriële automatisering. Ons team is gespecialiseerd in productie automatisering en proces automatisering projecten waarin procesveiligheid een belangrijk aspect is. Ons compact en groeiend OX (Operational Excellence) team ontwikkelt, configureert en levert support op zelfontwikkelde applicaties waarmee onze klanten hun productieprocessen slimmer, sneller, goedkoper en veiliger maken. Operational Excellence wordt zichtbaar gemaakt in resultaten. Bij bedrijven met dezelfde strategie, zal een operationeel excellent bedrijf een lager operationeel risico, lagere operationele kosten hebben en relatief meer winst maken. Het Raster OX team laat haar klanten de resultaten behalen door hun eigen procesdata

Bekijk vacature »

Anthony de meulemeester

anthony de meulemeester

03/06/2013 15:26:57
Quote Anchor link
hey,

ik heb volgende query, bedoeling is alle messages te verkrijgen waar de username gelijk is aan een van die namen. hoe krijg ik nu een array in die query?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php $q = mysql_query("SELECT *
                        FROM messages
                        WHERE username = 'een array van namen'"
);

     while($r = mysql_fetch_array($q)) {
            print "de messages"
}
?>
Gewijzigd op 03/06/2013 15:28:11 door Anthony de meulemeester
 
PHP hulp

PHP hulp

20/10/2021 01:38:06
 
- Ariën -
Beheerder

- Ariën -

03/06/2013 15:35:02
Quote Anchor link
Je kan met WHERE IN een lijst maken van bepaalde gebruikers die je als voorwaarde wilt hebben:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT * FROM messages WHERE username IN ('Jantje','Klaasje','Jasmijntje', 'Fleurtje');

maar nu wil je deze uit een PHP-array hebben? In dat geval kan je ze prima met implode() van een array naar een string knallen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$names
= implode("','", $array);
?>


En dan is je query dus:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("SELECT * FROM messages WHERE username IN ('".$names."')");
?>
Gewijzigd op 03/06/2013 15:35:28 door - Ariën -
 
Anthony de meulemeester

anthony de meulemeester

03/06/2013 15:41:08
Quote Anchor link
aha nice thx aar

Toevoeging op 03/06/2013 15:54:50:

blijkbaar wilt em niets returnen

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
<?php
function getMessages() {
        
   $q1 = query("SELECT following
                FROM followers
                WHERE follower = '"
.userData('username')."'");
        
        $r1 = f_array($q1);
            
           $names = implode("','", $r1);
                
        $q = query("SELECT *
                            FROM messages
                            WHERE username IN ('"
.$names."')");

        if(numrows($q)) {
        
           while($r = mysql_fetch_array($q)) {
                
        print "<p><a href='#'/>".$r['username']. "</a> posted on " .$r['date']."</p>";
        print "<p>".$r['body']."</p>";

            }
            }
else {
                print "no messages found";
            }
    }

?>
 
Erwin H

Erwin H

03/06/2013 16:11:50
Quote Anchor link
Dat kan je veel handiger doen door een join te gebruiken in je query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
$sql
= "SELECT messages.*
        FROM messages
        LEFT JOIN followers ON messages.username = follower.following
        WHERE follower.follower = '"
.userData('username')."'";
?>

En waart het altijd al een goed idee is om je kolommen uit te schrijven is dat bij queries met joins erin nog meer het geval. Ik gebruik hier nu alleen een * omdat ik niet weet welke kolommen je nodig hebt.
 
Anthony de meulemeester

anthony de meulemeester

03/06/2013 16:24:36
Quote Anchor link
Bedankt Erwin, werkt prima nu.
 



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.