Value met de zelfde waarde laten zien
Wat ik wil is dat x aantal waardes met dezelfde waarde samen worden gevoegd.
Deze wil ik samen voegen als ze dezelfde waardes hebben dus moet zijn
En omdat de andere geen zelfde waardes hebben hoeven ze niet ge-echoed worden.
De waardes komen vanuit
Met PHP kan je ze dan samenvoegen.
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
SELECT
waarde,
GROUP_CONCAT(DISTINCT naam ORDER BY naam) namen
FROM
show
GROUP BY waarde
HAVING COUNT(*) > 1
waarde,
GROUP_CONCAT(DISTINCT naam ORDER BY naam) namen
FROM
show
GROUP BY waarde
HAVING COUNT(*) > 1
Ook niet ANSI SQL btw ;-)
Gewijzigd op 28/12/2014 10:12:14 door Ger van Steenderen
Toevoeging op 28/12/2014 14:46:41:
Ik gebruik nu de suggestie van Ger werkt zoals ik wil.
Kan ik de waardes ook apart aanroepen want ik wil per waarde een a href eromheen zetten.
Nu krijg ik direct de waardes in 1 array zoals
Als ik dan $i['waarde'] aanroep dan krijg ik gelijk nick1,nick2 terug.
Want dan kan ik het niet naar de specifieke pagina linken.
Of wil je juist twee rijen met daarin de losse 'nicken'?
Want de GROUP CONCAT() maakt er juist 1 veld van. Wil je dat niet, dan moet je gewoon de query aanpassen.
Uiteraard kan je nick1,nick2 ook wel met de php-functie explode() weer uit elkaar halen, maar dat lijkt mij niet logisch.
Als ik nu een a href geef is het geen valid url meer want dan krijg je
phphulp.php?id=nick1,nick1
Dit moet zijn,
phphulp.php?id=nick1
phphulp.php?id=nick2
Maar dan wel in één zin, nu krijg ik
nick1,nick2 hebben dezelfde waardes, beide zijn dan 1 url.
Gewijzigd op 28/12/2014 15:40:14 door Erwin Zenden
Nick1 hebben dezelfde waardes...
Nick2 hebben dezelfde waardes...
Ik wil dit echter als
Nick1, Nick2 hebben dezelfde waardes...
Ik probeer dit deze op te slaan in arrays maar lukt me niet echt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// het is zinloos om prepared statements te gebruiken zonder parameters
if($s = $db->query('SELECT
waarde,
GROUP_CONCAT(DISTINCT naam ORDER BY naam) namen
FROM
show
GROUP BY waarde
HAVING COUNT(*) > 1') {
while ($row = $s->fetch(PDO::FETCH_ASSOC) { //voor mysqli: $row = $s->fetch_assoc()
$c = '';
$nicks = explode(',', $row['namen']);
foreach($nicks as $nick) {
echo $c . '<a href="http://example.com/test.php?id=' .
$nick . '">' . $nick . '</a>';
$c = ', ';
}
echo ' hebben dezelfde waarde(' . $row['waarde'] . ')<br>';
}
}
?>
// het is zinloos om prepared statements te gebruiken zonder parameters
if($s = $db->query('SELECT
waarde,
GROUP_CONCAT(DISTINCT naam ORDER BY naam) namen
FROM
show
GROUP BY waarde
HAVING COUNT(*) > 1') {
while ($row = $s->fetch(PDO::FETCH_ASSOC) { //voor mysqli: $row = $s->fetch_assoc()
$c = '';
$nicks = explode(',', $row['namen']);
foreach($nicks as $nick) {
echo $c . '<a href="http://example.com/test.php?id=' .
$nick . '">' . $nick . '</a>';
$c = ', ';
}
echo ' hebben dezelfde waarde(' . $row['waarde'] . ')<br>';
}
}
?>
Gewijzigd op 28/12/2014 20:10:04 door Ger van Steenderen
@Ger, heeeeeeel er bedankt voor je moeite! Heb het nu zoals ik uit eindelijk wilde thanks to you!!!