• User Newbie

    Problema con cicli while. Qualcuno mi può aiutare?

    Sto cercando di creare uno script che permetta di leggere i dati dal database di Virtuemart e permetta di creare automaticamente un file txt o csv che rispetti le specifiche di kelkoo, ciao! ecc...:x

    Per ora sono arrivato al punto in cui rieco a leggere tutti i dati e creare il file.
    C'è un piccolo problema:

    Per come ho strutturato il tutto il file prodotto ha la seguente impaginazione:

    Categoria|Marca|nome prodotto|link alla pagina|prezzo|URL immagine|disponibilità|costi di spedizione|descrizione breve|

    Il file dovrebbe avere per ogni riga le informazioni relative al prodotto nell'ordine descritto invece mi genera prima tutti i campi categoria, poi tutti i campi marca ecc...

    Il codice che ho usato ha la seguente struttura:

    NOME

    $dati=mysql_query("select * from ....... ");
    while($array=mysql_fetch_array($dati)) {
    echo"$array[product_name]|";
    }

    ALTRODATO

    $dati1=mysql_query("select * from ALTRODB");
    while($array1=mysql_fetch_array($dati1)) {
    echo"$array1[ALTRODATO]|";
    }

    ECC....______________________________________________

    se provo a chiudere i cicli while alla fine della pagina i dati vengono forniti in modo correttoma la pagina entra in loop (per controllare i dati ho dovuto interrompere la creazione del file e vedere il risultato fino a quel punto.

    Come faccio ad evitare di entrare in loop?

    Grazie in anticipo.


  • Super User

    Rielaboro il concetto...

    Devi utilizzare l'istruzione JOIN di mysql, così facendo otterrai un unico recordset e in un unico ciclo potrai realizzare il tutto.


  • User Newbie

    grazie del consiglio.
    Sono riuscito a fare il join tra due tabelle.

    Ora mi sorge un ultimo problemino:
    I dati li devo prendere da 6 tabelle diverse.... come faccio a fare un join tra 6 tabelle?:x


  • Moderatore

    come hai fatto per due fai per 3 etc 🙂


  • User Newbie

    Ossia?
    Il concetto l'hocapito ma nonso come scriverlo!!!!!!!!!!


  • Moderatore

    eheheeh
    da quanto avevi scritto avevo capito che c'eri riuscito 😉

    [php]
    SELECT
    campi
    FROM
    prima_tabella
    INNER JOIN
    seconda_tabella
    ON
    prima_tabella.chiave_primaria = seconda_tabella.chiave_esterna
    [/php]

    questo è l'esempio di 2 tabelle, ma basta utilizzare un'altro innerjoin e lo puoi usare su più tabelle 🙂