Visualizzazione dei risultati da 1 a 10 su 10

Discussione: dati da due tabelle 2

  1. #1

    dati da due tabelle 2

    Codice PHP:
    <?

       $data_odierna 
    date("Y/m/d");

       include (
    "config.php");

       
    $connessione = @mysql_connect($server,$utente,$password)or die("non riesco a connettermi al server MySql: $server");

       
    $db =@mysql_select_db($database,$connessione) or die("non riesco a selezionare il database $database");

       
    $gino "SELECT contatto FROM users LEFT JOIN feedback ON users.tabid=feedback.agente WHERE feedback.data_appuntamento='".$data_odierna."'"

       
    $query mysql_query ($gino,$connessione

       or die (
    "Non riesco ad eseguire la richiesta $gino. Errore:".mysql_error()); 
        
       while (
    $valori mysql_fetch_array ($query))
     
       { 
       
        
    $a1 $valori ["feedback.ragione_sociale"]; 

        
    $a2 $valori ["feedback.localita"]; 

        
    $a3 $valori ["feedback.indirizzo"]; 

        
    $a4 $valori ["feedback.telefono"];

        
    $a5 $valori ["feedback.cellulare"];

        
    $a6 $valori ["feedback.fax"];

        
    $a7 $valori ["feedback.email"];

        
    $a8 $valori ["feedback.agente"];  

        
    $a9 $valori ["feedback.riferimento"]; 

        
    $a10 $valori ["feedback.data_appuntamento"];

        
    $a11 $valori ["feedback.ora_appuntamento"];

        
    $a12 $valori ["feedback.telemarketer"];

        
    $a13 $valori ["feedback.nota_telemarketer"];

        
    $a14 $valori ["feedback.reminder_telemarketer"];

        
    $a15 $valori ["feedback.data_chiusura"];

        
    $a16 $valori ["feedback.note"]; 

        
    $a17 $valori ["feedback.reminder"]; 

        
    $id_feedback $valori ["feedback.id_feedback"];
        
        
    $mail $valori ["users.contatto"];
             
         
           
        
           
    mail ("$mail",

           
    "Reminder appuntamento",

           
    "
            Appuntamento
           
            Ragione Sociale 
    $a1

            localita 
    $a2

            Indirizzo 
    $a3

            Telefono 
    $a4

            cellulare 
    $a5

            Fax 
    $a6

            E-mail 
    $a7

            Agente 
    $a8

            Riferimento 
    $a9

            Data Appuntamento 
    $a10

            Ora Appuntamento 
    $a11

            Telemarketer 
    $a12

            Nota Telemarketer 
    $a13

            Note 
    $a16

            "
    );

           }



    ?>

    come vedete sto codice?
    Ha una qualche possibilità di funzionare?
    Come funziona il "$aX = $valori ["xxx"]; " selezionando la tabella da cui prendere i dati?

    Grazie

    :master:


  2. #2
    Speranze zero.

    SELECT contatto FROM users ... estrae "solo" il campo contatto.

    altro..

    in mysql_fetch_array non trovi "tabella.campo" ma solo "campo" e se hai due campi con lo stesso nome su tabelle diverse, l'ultimo estratto ti sovrascrivera' il primo.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  3. #3
    ...e la soluzione quale potrebbe essere?

  4. #4
    .... no ideas???

    please...


  5. #5
    [supersaibal]Originariamente inviato da tommyxxx
    .... no ideas???

    please...

    [/supersaibal]
    devi rivedere lo script.... le indicazioni le ho dette su...

    SELECT * e non mettere il nome della tabella nell'estrazione del risultato. Se hai campi con lo stesso nome nelle due tabelle e ti servissero entrambi, dovrai elencare i campi assegnando ad essi un alias per diversificare il nome.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    sul manuale ho trovato una cosa del genere:

    SELECT users.*, feedback.* FROM users, feedback WHERE feedback.data_appuntamento = $data_odierna

    che dici?

    Poi una volta tirati fuori i dati, dovrei mandare una mail all'agente di riferimento.

  7. #7
    [supersaibal]Originariamente inviato da tommyxxx
    sul manuale ho trovato una cosa del genere:

    SELECT users.*, feedback.* FROM users, feedback WHERE feedback.data_appuntamento = $data_odierna

    che dici?

    Poi una volta tirati fuori i dati, dovrei mandare una mail all'agente di riferimento.
    [/supersaibal]
    Se intendi dire il riferimento ai campi estratti equivale ad un SELECT * perche' chiedi tutti i campi di entrambe le tabelle.

    Se intendi il tipo di INNER JOIN che fai tra le due tabelle allora questo non e' corretto perche' manca la relazione che unisce i record delle due tabelle.

    Non entro nel merito della e-mail perche' siamo gia' piu' nel complicato. Stiamo nella query:

    Se hai due campi con nome uguale nelle tabelle e ti servono entrambi devi mettere un alias. Significa:

    SELECT tab1.pippo as pippo1, tab2.pippo as pippo2

    in questo modo troverai i dati di entrambe i campi rispettivamente in pippo1 e pippo2.

    Poi associare due tabelle nell'estrazione dei dati significa prendere i dati di un record dalla tab1 solo dove il valore di un campo specifico della tab1 corrisponde ad un valore identico di un campo specifico della tab2.

    es.:
    codice:
    SELECT tab1.pippo as pippo1, tab2.pippo as pippo2
    from tabella1 as tab1, tabella2 as tab2
    where tab1.id = tab2.id_tab1
    AND tab1.data_odierna = CURDATE()
    ovviamente questo e' un esempio. Quindi la tua query nel primo post non era errata, ma cercavi dei dati che non estraevi, ed alcuni di questi si sovrascrivevano. Questo era e rimane quel che ti ho detto.
    codice:
    SELECT * 
    FROM users as u
    LEFT JOIN feedback as f ON u.tabid = f.agente 
    WHERE f.data_appuntamento='".$data_odierna."'";
    Se vuoi semplificarti la vita, non mettere mai nomi di campo uguali su tabelle che dovranno essere unite. Ragiona in termini di vedere come una unica grande tabella, e quindi con campi univoci, tutte le tabelle che dovranno essere unite da una JOIN. In quel modo puoi fare un select * senza dover elencare tutta una serie di valori e rispettivi alias.


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  8. #8
    ho risolto così:

    Codice PHP:
    $gino "SELECT feedback.*, users.tabid, users.contatto FROM feedback, users WHERE feedback.agente = users.tabid"

       
    $query mysql_query ($gino,$connessione

       or die (
    "Non riesco ad eseguire la richiesta $gino. Errore:".mysql_error()); 
        
       while (
    $valori mysql_fetch_array ($query))
     
       { 
               
         
    $a1 $valori ["ragione_sociale"]; 
        
         
    $a2 $valori ["localita"]; 

         
    $a3 $valori ["indirizzo"]; 

         
    $a4 $valori ["telefono"];

         
    $a5 $valori ["cellulare"];

         
    $a6 $valori ["fax"];

         
    $a7 $valori ["email"];

         
    $a8 $valori ["agente"];  

         
    $a9 $valori ["riferimento"]; 

         
    $a10 $valori ["data_appuntamento"];

         
    $a11 $valori ["ora_appuntamento"];

         
    $a12 $valori ["telemarketer"];

         
    $a13 $valori ["nota_telemarketer"];

         
    $a14 $valori ["reminder_telemarketer"];

         
    $a15 $valori ["data_chiusura"];

         
    $a16 $valori ["note"]; 

         
    $a17 $valori ["reminder"]; 

         
    $id_feedback $valori ["id_feedback"];
        
         
    $mail $valori ["contatto"];
             
              
         if (
    $a10 == $data_odierna)
         
         {
               
           
    mail ("$mail",

           
    "Reminder appuntamento",

           
    "
            Appuntamento
           
            Ragione Sociale 
    $a1

            localita 
    $a2

            Indirizzo 
    $a3

            Telefono 
    $a4

            cellulare 
    $a5

            Fax 
    $a6

            E-mail 
    $a7

            Agente 
    $a8

            Riferimento 
    $a9

            Data Appuntamento 
    $a10

            Ora Appuntamento 
    $a11

            Telemarketer 
    $a12

            Nota Telemarketer 
    $a13

            Note 
    $a16

            "
    );

            }

           } 
    non sarà la soluzione migliore ma almeno funziona....


    Ciao

  9. #9
    Ok!

    potresti ancora mettere direttamente il valore estratto senza il giro buffo array -> variabile....


    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  10. #10
    effettivamente si....


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.