array van namen in query plaatsen
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)
1
2
3
4
5
6
7
8
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"
}
?>
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
Code (php)
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:
En dan is je query dus:
Gewijzigd op 03/06/2013 15:35:28 door - Ariën -
Toevoeging op 03/06/2013 15:54:50:
blijkbaar wilt em niets returnen
Code (php)
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
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";
}
}
?>
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";
}
}
?>
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
$sql = "SELECT messages.*
FROM messages
LEFT JOIN followers ON messages.username = follower.following
WHERE follower.follower = '".userData('username')."'";
?>
$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.
Bedankt Erwin, werkt prima nu.