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

    Collegare più tabelle MySQL nella restituzione di un valore

    Ciao a tutti,
    ho creato un codice che genera un file xml prelevando dati da una tabella MySQL, e funziona tutto.
    Alcuni campi però restituiscono il valore ID di una determinata voce, perchè l'associazione viene fatta in MySQL attraverso un'altra tabella.

    Es.
    tabella "automobili"
    CAMPI: (id, id_modello, id_sottomodello, id_contratto, prezzo, foto_1, commenti)

    tabella "modelli"
    CAMPI: (id, descrizione)

    Il mio codice php è questo:
    Codice PHP:
    $dbhost = 'miohost'; // database host ( usually localhost )
        $dbuser = 'miouser'; // database username
        $dbpass = 'miapass'; // database password
        $dbname = 'miodb_name'; // database name
        $mysql = mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db($dbname);
        
        $Query="SELECT * from automobili";
        $Result=mysql_query( $Query );
        $Return="<?xml version=".'"1.0"'." encoding=".'"UTF-8"?>'."\n"."<clients>";
        
        while(
    $client=mysql_fetch_object($Result))
        {
         
    $Return.="<client><id><![CDATA[".$client->id."]]></id><name><![CDATA[".$client->id_modello."]]></name><surname><![CDATA[".$client->id_sottomodello."]]></surname><address><![CDATA[".$client->id_contratto."]]></address><city><![CDATA[".$client->prezzo."]]></city><state><![CDATA[".$client->foto_1."]]></state><email><![CDATA[".$client->commenti."]]></email></client>"; 
        }
        
    $Return.="</clients>";
        mysql_free_result(
    $Result);
        echo (
    $Return);
    ?>
    Come vi dicevo viene restituito l'ID per quanto riguarda il modello, il sottomodello e il contratto. Vorrei invece fare in modo che nell'xml si vedesse la descrizione corrispondente a quell'ID, che dovrei leggere dalle altre tabelle. Qualcuno mi dà qualche dritta?

    Grazie mille
    Cecco
    www.inconsueta.com - Grafica, Web e Timbri

  2. #2

    Re: Collegare più tabelle MySQL nella restituzione di un valore

    Direi che devi fare una join fra le tue tabelle.
    Codice PHP:
    $Query="SELECT a.id, m.descrizione, a.prezzo, a.commenti from automobili a, modelli m where a.id_modello=m.id"
    Ciao!

    Originariamente inviato da cecco
    Ciao a tutti,
    ho creato un codice che genera un file xml prelevando dati da una tabella MySQL, e funziona tutto.
    Alcuni campi però restituiscono il valore ID di una determinata voce, perchè l'associazione viene fatta in MySQL attraverso un'altra tabella.

    Es.
    tabella "automobili"
    CAMPI: (id, id_modello, id_sottomodello, id_contratto, prezzo, foto_1, commenti)

    tabella "modelli"
    CAMPI: (id, descrizione)

    Il mio codice php è questo:
    Codice PHP:
    $dbhost = 'miohost'; // database host ( usually localhost )
        $dbuser = 'miouser'; // database username
        $dbpass = 'miapass'; // database password
        $dbname = 'miodb_name'; // database name
        $mysql = mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db($dbname);
        
        $Query="SELECT * from automobili";
        $Result=mysql_query( $Query );
        $Return="<?xml version=".'"1.0"'." encoding=".'"UTF-8"?>'."\n"."<clients>";
        
        while(
    $client=mysql_fetch_object($Result))
        {
         
    $Return.="<client><id><![CDATA[".$client->id."]]></id><name><![CDATA[".$client->id_modello."]]></name><surname><![CDATA[".$client->id_sottomodello."]]></surname><address><![CDATA[".$client->id_contratto."]]></address><city><![CDATA[".$client->prezzo."]]></city><state><![CDATA[".$client->foto_1."]]></state><email><![CDATA[".$client->commenti."]]></email></client>"; 
        }
        
    $Return.="</clients>";
        mysql_free_result(
    $Result);
        echo (
    $Return);
    ?>
    Come vi dicevo viene restituito l'ID per quanto riguarda il modello, il sottomodello e il contratto. Vorrei invece fare in modo che nell'xml si vedesse la descrizione corrispondente a quell'ID, che dovrei leggere dalle altre tabelle. Qualcuno mi dà qualche dritta?

    Grazie mille
    Cecco
    ***************************
    Non può piovere per sempre...
    ***************************

  3. #3
    Io ho fatto così, ma non so se ho capito bene, perchè mi restituisce errore:

    Codice PHP:
    $dbhost = 'miohost'; // database host ( usually localhost )
        $dbuser = 'miouser'; // database username
        $dbpass = 'miapass'; // database password
        $dbname = 'miodbname'; // database name
        $mysql = mysql_connect($dbhost,$dbuser,$dbpass);
        mysql_select_db($dbname);
        
        $Query="SELECT a.id, m.descrizione, s.descrizione, c.descrizione, a.prezzo, a.foto_1, a.commenti from automobili a, modelli m, sottomodelli s, contratto c where a.id_modello=m.id, a.id_sottomodello=s.id, a.id_contratto=c.id";
        $Result=mysql_query( $Query );
        $Return="<?xml version=".'"1.0"'." encoding=".'"UTF-8"?>'."\n"."<clients>";
        
        while(
    $client=mysql_fetch_object($Result))
        {
         
    $Return.="<client><id><![CDATA[".$client->id."]]></id><name><![CDATA[".$client->id_modello."]]></name><surname><![CDATA[".$client->id_sottomodello."]]></surname><address><![CDATA[".$client->id_contratto."]]></address><city><![CDATA[".$client->prezzo."]]></city><state><![CDATA[".$client->foto_1."]]></state><email><![CDATA[".$client->commenti."]]></email></client>"; 
        }
        
    $Return.="</clients>";
        mysql_free_result(
    $Result);
        echo (
    $Return);
    www.inconsueta.com - Grafica, Web e Timbri

  4. #4
    La query è:

    Codice PHP:
    $query ="SELECT * FROM automobili INNER JOIN modelli ON automobili.id_modello=modelli.id" 
    Prova così...
    LittleChe

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 © 2025 vBulletin Solutions, Inc. All rights reserved.