a me sembrano pochissimi, cioe ... non è che sono chissa che cosa, anzi
inoltre considera un'importante cosa: tu non li estrai TUTTI d'un colpo bensi solo una piccola porzione che è quella che visualizzi
e comunque il lavoro che andresti a fare è molto banale:
1- Esegui query di estrazione dati
2- While sui dati che crea un'array formato cosi $prodotti[ID-PRODOTTO] = RIGA-FETCHATA, inoltre costruisci una stringa con gl
3- Costruisci l'elenco degli id usando un bel join(', ', array_keys($prodotti))
4- Esegui la query sulla tabella delle immagini usando WHERE id-foto IN ('$STRINGA-ELENCO-ID')
5- Cicli l'array con il while aggiungendo all'array prodotti un campo col nome foto che contegga elementi con la chiave corrispondente all'id della foto, quindi $prodotti[ID-PRODOTTO]['foto'][ID-FOTO] = RIGA-FETCHATA
6 per fare la visualizzazione cicli l'array $prodotti facendo while(list($id_prodotto, $informazioni_prodotto) = each($prodotti)) { ........ } e fai la normale visualizzazione. Dopo di che se ti serve visualizzare tutte le foto le cicli cosi altrimenti usi un each singolo sull'elemento e fai la normale visualizzazione
Ma anche con la normale left/inner join ti basta prima costruire l'array e poi visualizzarlo semplicemente quando costruisci l'array verifici se c'è già l'elemento e se si non lo sovrascrivi aggiungi semplicemente le informazioni alla chiave foto, tipo
codice:if (isset($prodotti[ID-PRODOTTO]) === false) { $prodotti[ID-PRODOTTO] = $informazioni_prodotto } $prodotti[ID-PRODOTTO]['foto'][ID-FOTO] = $informazioni_foto
PS: non vorrei fosse un problema legato all'harware, alla poca memoria di mysql, ad un'errata configuarzione del sistema o del db ... perché potrebberò anche causare questi problemi! Usi qualcosa di pre-pronto come easyphp, xamp o cose simili?