Door
Brecht S
op 29-08-2016 14:11
gewijzigd op 29-08-2016 14:15
5.303 views
Ik heb nu een database met als tabel blog. Daaronder zitten verschillende rijen met resultaten (blog-items).
Nu zou ik van al deze rijen het veld tags willen samenvoegen.
Even een voorbeeld:
Titel Artikel Tags
Titel 1 Artikel inhoud 1 wonen, leven, cultuur
Titel 2 Artikel inhoud 2 werken, leven, inrichten
...
Nu kan je zien dat de laatste tag dus geen komma meer heeft. En ik zou al die tags willen samenvoegen. Dus dacht ik aan een str_replace
$tags = str_replace(',', '<br>', $row['tags']);
Maar dat gaat dus niet aangezien de laatste tag nooit een komma heeft.
Iemand een idee hoe dit wel kan opgelost worden?
Dit gaat nu niet meer. De database is al jaren geleden opgebouwd en er hangt een website aan. Ik zou een oplossing moeten hebben voor de huidige situatie.
<?php
// ergens je connectie (MySQLi) maken en in $mysqli zetten
// lege array aanmaken waarin alle tags komen
$tags = array();
// de tags ophalen uit database, let op: met MySQLi
$tagsophalen = $mysqli->query("SELECT tags FROM blog WHERE actief = 'ja'");
// alleen iets doen als er uberhaupt tags zijn
if(mysqli_num_rows($tagsophalen) > 0){
// door de tags heen lopen
while($tagres = mysqli_fetch_assoc($tagsophalen)){
// splitsen op de komma
foreach(explode(',',$tagres['tags']) AS $tag){
// opslaan in de array $tags
$tags[] = $tag;
}
}
}
// ontdubbelen
$tags = array_unique($tags);
// eventueel nog op alfabetische volgorde zetten of whatever
// zie php.net
// printen
foreach($tags AS $tagnaam){
echo $tagnaam.'<br>';
}
?>
<?php
// ergens je connectie (MySQLi) maken en in $mysqli zetten
// lege array aanmaken waarin alle tags komen
$tags = array();
// de tags ophalen uit database, let op: met MySQLi
$tagsophalen = $mysqli->query("SELECT tags FROM blog WHERE actief = 'ja'");
// alleen iets doen als er uberhaupt tags zijn
if(mysqli_num_rows($tagsophalen) > 0){
// door de tags heen lopen
while($tagres = mysqli_fetch_assoc($tagsophalen)){
if(trim($tagres['tags']) !== ''){
// splitsen op de komma
foreach(explode(',',$tagres['tags']) AS $tag){
// opslaan in de array $tags
$tags[] = $tag;
}
}
}
}
// ontdubbelen
$tags = array_unique($tags);
// eventueel nog op alfabetische volgorde zetten of whatever
// zie php.net
// printen
foreach($tags AS $tagnaam){
echo $tagnaam.'<br>';
}
?>
Sorry, maar had mijn bericht even aangepast want de code werkte toch niet. Het was mijn eigen probeersel die er nog op stond. Even je nieuwe versie aan het bekijken. Ik kreeg daarnet geen resultaat.