[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
REDAXO Forum • yform | Alle Medien aus den Medialisten ausgeben
Seite 1 von 1

yform | Alle Medien aus den Medialisten ausgeben

Verfasst: 30. Sep 2016, 15:31
von Fanello
Liebe Redaxo-Community

Ich habe eine yform-Tabelle erstellt, diese besteht aus einem Text-Feld "album_name" und aus einem Medialist-Feld "album_songs". Die einzelnen Einträge sehen also so aus, dass sie aus dem Album-Name und einer Liste von Songs bestehen.

Die Ausgabe pro Album funktioniert und ich kann es also so auflisten:
Album 1
Alb1Song 1
Alb1Song 2
Alb1Song 3
Alb1Song 4
Alb1Song 5

Album 2
Alb2Song 1
Alb2Song 2
Alb2Song 3
Alb2Song 4

Album 3
Alb3Song 1
Alb3Song 2
Alb3Song 3
Alb3Song 4


Nun möchte ich aber alle Songs untereinander ausgeben, ohne den Album-Name dazwischen. So könnte ich dann die Songs z.B. in alphabetischer Reihenfolge zeigen.

Code: Alles auswählen

<?php
$db_songs = "rex_songs";
$sql_songs = rex_sql::factory();
$sql_songs->setDebug(false);
$sql_songs->setQuery("SELECT * FROM $db_songs");

if($sql_songs->getRows()) {

while($sql_songs->hasNext()) {

$medialist = $sql_songs->getValue('songs_media');
$media = explode(',', $medialist);
echo $media;

}
}
?>
Mit dem oberen Code bringt es mir 3x (es sind 3 Alben) die Lieder des 3. Albums:

Alb3Song 1
Alb3Song 2
Alb3Song 3
Alb3Song 4
Alb3Song 1
Alb3Song 2
Alb3Song 3
Alb3Song 4
Alb3Song 1
Alb3Song 2
Alb3Song 3
Alb3Song 4


Kann mir jemand einen Tipp geben, wie ich die Abfrage anpassen muss damit sie mir alle vorhandenen Songs in den Medialisten bringt? Danke!

Re: yform | Alle Medien aus den Medialisten ausgeben

Verfasst: 4. Nov 2016, 16:29
von darwin
Hi,
machs mal so ...:

Code: Alles auswählen

<?php
$db_songs = "rex_songs";
$sql_songs = rex_sql::factory();
$sql_songs->setDebug(false);
$sql_songs->setQuery("SELECT * FROM $db_songs");


$output = array();

$output[] = '<ul>';
for($i=0; $i<$sql->getRows(); $i++)
{
    
    $medialist = $sql_songs->getValue('songs_media');
    $medias = explode(',', $medialist);
    
    foreach($medias as $media){
        $output[] = '<li>' . $media . '</li>';
    }
    
    $sql->next();
}
$output[] = '</ul>';

# Ausgabe
echo join("\n", $output);

?>
*ungetestet*
grz. Chris