[PHP] Esportare con PHP dati da MySQL a CSV

myprobsql

Nuovo Utente
24 Mar 2017
4
0
1
34
Buonasera , vorrei espormi il mio dilemma.
Io sto cercando di creare un file PHP che mi permetta di esportare i dati da MySQL in un file CSV.
Il problema principale è che riesco a "richiamare" una tabella specifica, ma non riesco a richiamarne altre e integrarle in un unica tabella.
Cerco di fare un esempio:

Ho due tabelle utenti e categorie strutturate in questo modo:
Utenti
ID. ragionesociale. indirizzo. codpostale. citta. catego.
1. panificiomario. Via Roma. 40100. Treviso. 1
2. salumierefra. Via Venezia. 40200. Venezia. 2
Categorie
ID. | nome.
1 Consumatore
2 Fornitore

Al momento ho strutturato il codice in questo modo.
Ora quando esporto vedo soltanto la categoria con il numero, quando vorrei vedere il nome della tabella categorie.
PHP:
$urlData = $db->getRows("SELECT * FROM utenti");
foreach ($urlData AS $row)
{
        $lArr = array();
        $lArr[] = $row['id'];
        $lArr[] = $row['ragionesociale'];
        $lArr[] = $row['indirizzo'];
        $lArr[] = $row['codpostale'];
        $lArr[] = $row['citta'];
        $lArr[] = $row['catego'];

    $formattedCSVData[] = "\"" . implode("\",\"", $lArr) . "\"";
}

Spero di essermi spiegato bene :)
Confido in un vostro aiuto! Grazie
 
Ultima modifica di un moderatore:
ciao
hai due strade
o fai una join nella select di estrazione
PHP:
$query="SELECT ut.* cat.nome as categoria FROM utenti as ut, categorie as cat WHERE ut.catego=cat.nome";
$urlData = $db->getRows($query);
foreach ($urlData AS $row)
{
        $lArr = array();
        $lArr[] = $row['ut.id'];
        $lArr[] = $row['ut.ragionesociale'];
        $lArr[] = $row['ut.indirizzo'];
        $lArr[] = $row['ut.codpostale'];
        $lArr[] = $row['ut.citta'];
        $lArr[] = $row['categoria'];

    $formattedCSVData[] = "\"" . implode("\",\"", $lArr) . "\"";
}
o
PHP:
$urlData = $db->getRows("SELECT * FROM utenti");
foreach ($urlData AS $row)
{
        $lArr = array();
        $lArr[] = $row['id'];
        $lArr[] = $row['ragionesociale'];
        $lArr[] = $row['indirizzo'];
        $lArr[] = $row['codpostale'];
        $lArr[] = $row['citta'];
        if($row['catego']=="1"){//oppure switch($row['catego']){...}
            $lArr[] = "consumatore";
        }elseif($row['catego']=="2"){
            $lArr[] = "fornitore";
        }else{
                $lArr[] = "ferrore";
        }
    $formattedCSVData[] = "\"" . implode("\",\"", $lArr) . "\"";
}
p.s.
se usi la join verifica quello che ho scritto, fatto di corsa mattina presto
 
  • Like
Reactions: myprobsql

Discussioni simili