Value met de zelfde waarde laten zien
Ik ben al een tijdje bezig met 2 dezelfde waardes samen te voegen maar heb niet echt veel succes hiermee.
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
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 de volgende SQL krijg je de 5 namen die meer dan 1 x voorkomen, met hun waarde.
Met PHP kan je ze dan samenvoegen.
Met PHP kan je ze dan samenvoegen.
Afgezien van de niet ANSI SQL kan dit eenvoudiger:
Ook niet ANSI SQL btw ;-)
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
Weer iets nieuws geleerd, beide hartstikke bedankt! Zo simpel kan het dus zijn.
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.
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.
Wil je nick1,nick2 in 1 rij krijgen?
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.
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.
Ja ik wil ze uit elkaar, in ieder geval moeten ze beide een apart a href krijgen.
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.
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
Als ik deze gebruik krijg ik ze nu appart, wel met de juiste links.
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.
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.
Vooruit dan:
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!!!




