Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292

    cercare corrispondenze tra due tabelle

    Ciao ragazzi, vi spiego il mio problema. In poche parole ho una tabella interessi e una tabella interessi richiesta, la struttura è la seguente:


    Tabella Interessi:

    id | id_macro | id_utente
    1 | 1 |4
    2 | 1 |5
    3 | 2 |4

    Tabella interessi richiesta

    id | id_macro | id_richiesta
    1 | 1 | 2
    2 | 2 | 3


    in poche parole devo confrontare i valori della prima tabella con i valori della seconda, se id_macro ( Tabella interessi richiesta) corrisponde con id_macro (Tabella Interessi) mi deve mandare una email ma l'email la deve mandare solo una volta a quell'utente. Ad esempio:

    l'id_macro di "Tabella interessi richiesta" ha valore 1 siccome l'id_macro è uguale a id_macro di "Tabella Interessi" gli deve inviare una email sia all'utente 4 che all'utente 5 ma quando l'id_macro di "Tabella interessi richiesta" ha valore 2 è quindi uguale a id_macro di "Tabella Interessi" la seconda email non la deve inviare più perchè già all'utente 4 è stata inviata l'email precedentemente.

    Potete aiutarmi a risolvere?

    Grazie

    M4tt86

  2. #2
    Puoi creare un ciclo if ,inserisci in un array gli id degli utenti a cui hai inviato la mail.
    ad ogni record della query controlli nell'array se è già presente quell'id, in questo caso non la rimandi.

    es.

    while($data = sqlite_fetch_array($query))
    {
    if (in_array($data[id_utente], $id_inviati))
    {
    echo "non mando la mail";
    }
    else
    {
    $id_inviati[]=$data[id_utente];
    //codice invio mail
    ...
    ...
    }
    }

  3. #3
    Suppongo che in una delle tante tabelle cia sia anche un riferimento all'email dell'utente, per cui la query che st per scriverti è sicuramente monca di partenza, ad ogni modo:
    Codice PHP:
    $sql "
    SELECT interessi.id, interessi.id_utente, interessi_richiesta.id_richiesta, interessi_richiesta.id
    FROM  interessi, interessi_richiesta
    WHERE interessi_richiesta.id_macro = interessi.id_macro
    AND interessi_richiesta.id_macro = 1 
    "

    Spero di avere capito di preciso cosa sia necessario.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    E se invece utilizzo LIKE? secondo voi va bene? li mando postati e li unisco in una sola variabile tipo:

    Codice PHP:
    $id_macro $_POST['id_macro1'].",".$_POST['id_macro2'
    e poi faccio

    Codice PHP:
    SELECT FROM interessi
    WHERE ID_MACRO like 
    '%$id_macro%'
    secondo voi può funzionare? oppure se ad esempio $id_macro=2 e nel db ho l'id_macro 22 lui me la manda lo stesso?

  5. #5
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ciao clausevic, mi potresti dire come inserisco i dati dal db in un array? Non ho capito come fare.

  6. #6
    Originariamente inviato da m4tt86
    E se invece utilizzo LIKE? secondo voi va bene?
    Il LIKE serve a tutt'altro!!!!
    Utilizzato come lo hai scritto te poi, genererebbe una pletora di falsi positivi.
    Se usi il % prima e dopo la variabile, significa che ogni stringa (qui poi parliamo di numeri, quindi non so neanche se potrebbe funzionare o meno) che contiene la variabile sarebbe utilizzata per lo script.

    Ti posto un esempio: la query funzionerebbe sia se passi il numero 1, sia il numero 11, sia il numero 2315.

    Ti ho postato il codice SQL che estrapola dal DB solo i valori ottenuti con il confronto tra le due tabelle e di tutte solo quelle che hanno solo un determinato valore.
    Non riesco a capire dove sia il tuo problema, quindi.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2006
    Messaggi
    292
    Ma in questo modo l'email anche avendo l'id_utente ripetuto lui mi manda l'email una sola volta?

  8. #8
    Si. Se, una volta invitata l'email fai anche l'UPDATE della tabella e porti a 2 il valore di ID_MACRO.

    <ALCIO />
    Per cortesia: no PVT Tecnici
    ******* LINKS *******
    SRL
    MetalWave

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.