Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    Popolare Array da UN campo del DB

    Ciao a tutti, spero mi possiate aiutare.
    Più che un problema, non so come si faccia questa cosa.
    Mi spiego meglio:
    Ho Due Tabelle nel mio DB;
    La prima si chiama " _canzoni " è fatta così:
    id | Nome | AlbumID
    1 | nome1 | 1, 2, 8, 24
    etc

    la seconda si chiama " _Album " ed è fatta così:
    id | Album | Foto
    1 | nomeAlbum1| link alla foto1
    2 | nomeAlbum2| link alla foto2
    etc

    Interrogo il database in questo modo
    $name è una variabile che mi ricavo in altro modo e che corrisponderà sicuramente ad un elemento della prima tabella, campo Nome (perché valorizzo $name altrove)
    codice:
      $query = "SELECT AlbumID FROM jos_canzoni WHERE Nome='$name'";   
      $database->setQuery($query);
      $AlbumID = $database->loadResult();
    Mi restituisce il valore $AlbumID che corrisponde ad AlbumID sarà "1, 2, 8, 24".

    Ciò che non so fare è questo:
    Voglio che i valori di questo campo siano inseriti in un'array
    in modo da avere
    AlbumID[1, 2, 8, 24]

    Così, successivamente posso interrogare nuovamente il DB, ed andare a cercare gli Album corrispondenti agli Id. Così da poter caricare i campi corrispondenti Foto (ed eventualmente altri).

    Qualche aiuto?

  2. #2
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/explode

    E, in ogni caso, ristudiati le basi dello sviluppo dei database, con particolare attenzione alle regole di normalizzazione ed alla creazione di relazioni molti a molti

  3. #3
    Originariamente inviato da filippo.toso
    Ti suggerisco di iniziare leggendo il manuale ufficiale:

    http://www.php.net/explode

    E, in ogni caso, ristudiati le basi dello sviluppo dei database, con particolare attenzione alle regole di normalizzazione ed alla creazione di relazioni molti a molti
    Ciao, sei stato molto veloce. Come appare ovvio sono alle prime armi. Dici che non è appropriato il modo in cui voglio operare?

  4. #4
    Grazie al consiglio di cui sopra, ho inserito il campo nell'array.
    codice:
    $NuovaArray = explode(",", $AlbumID);
    Quando vado a stampare
    codice:
    echo $NuovaArray[1] //-->mi da il giusto elemento corrispondente
    Ora ho pensato di usare un ciclo for per interrogare il db e ricavare le altre informazioni (servendomi dell'array per prendere i dati corrispondeti ad id specifici).
    Quindi ho scritto:
    codice:
    //prendo la lunghezza dell'array
    $LunghezzaArray = count($NuovaArray);
    //creo il ciclo for
    		for ($i=1; $i<$LunghezzaArray; $i++)
    		{
    //la variabile che userò per interrogare il db
    			$idAlbum = $NuovaArray[i];
    //interrogo il db (creo la connessione con i parametri di joomla)
    			$database2 = & JFactory::getDBO();
    //creo query2
    			$query2 = "SELECT NomeAlbum FROM jos_album WHERE id='$idAlbum'";   
    			$database2->setQuery($query2);
    //Nome Album dunque dovrebbe corrispondere al singolo elemento dell'array..
    			$NomeAlbum = $database2->loadResult(); 
    			return $NomeAlbum;
    		}
    return $NomeAlbum;
    Ovviamente non funziona, $non mi da nessun valore.
    So che è un pastrocchio.. dove devo cominciare a correggere ?

  5. #5
    Ho risolto. Grazie al consiglio di filippo.toso ho riscritto il codice e creato una connessione manytomany.
    Terminata la parte per l'estrapolazione, ora sono alle prese con la parte per l'inserimento dei dati nelle tabelle.
    Potete chiudere ed eventualmente eliminare il thread, dato che il codice che ho inserito prima era anche sbagliato!
    Grazie

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.