Autor Zpráva
Frantisek Kuncl
Profil
Dobrý den,
mám dvě tabulky, kdy dostávám z jedné tabulky text o někom a porovnáním id dostanu (chtěl bych dostat) fotky, které mám ve druhé tabulce (několik fotek vždy ke každému jménu).
<?php
$res = mysql_query("SELECT umelci_jmeno, umelci_prijmeni, umelci_obor, umelci_cv, umelci_fotonazev, umelci_foto, umelci_fotocopyright FROM umelci_basic INNER JOIN umelci_pics ON ub_id=umelci_nazev WHERE umelci_prijmeni = '$nazev' LIMIT 10"); /*vybere data z basic a pics*/
if($res !== FALSE){//pokud jsou data vystup ano
while($data=mysql_fetch_assoc($res)){
echo'<div id="box">';
echo $data['umelci_cv'];
echo '<img src="';
echo $data['umelci_foto'];
echo '">';
echo '</div>';}
}
else {}

Tento postup mi vypíše sice všechny fotky, ale zárověň i text několikrát za sebou. Mohl by jste mi někdo poradit, jak na to dál?

Dík moc

FraK
nightfish
Profil
Frantisek Kuncl
průběžně si ukládat do proměnné aktuálního umělce (ideálně nějakou jedinečnou identifikaci)
a při každém průchodu porovnávat starou hodnotu s aktuální
jestliže jsou stejné, nezobrazujeme text, jenom obrázek
jestliže jsou různé, tak:
1) do staré hodnoty uložíme aktuální
2) vypíšeme text a první fotku
Frantisek Kuncl
Profil
Mne napadlo řešení (které zatím neumím dát do příkazu ( to nightfish popsaný způsob taktéž ne)): Nejdříve načíst cyklem všechny fotky a když vrátí FALSE u fotek, tak načíst text a konec. Šlo by to taktéž tak a nebo se škrábu rukou n aopačné straně hlavy?
Joker
Profil
Jestli máte MySQL 4.1 a dál, dalo by se to snad řešit přes GROUP_CONCAT, tj. místo fotky udělat GROUP_CONCAT(fotky SEPARATOR ',') a celou tabulku dát GROUP BY *nějaké ID umělce*
A potom v PHP explodovat sloupec tím separátorem a vypsat položky

Nějak takhle.
Frantisek Kuncl
Profil
Pokusím se. MySQL 4.1.21 děkuji
Toto téma je uzamčeno. Odpověď nelze zaslat.

0