Visualizzazione risultati 1 fino 3 di 3

Discussione: aiuto per scrivere query con SELECT e JOIN (era:problemi invio newsletter)

  1. #1
    Guest

    Predefinito aiuto per scrivere query con SELECT e JOIN (era:problemi invio newsletter)

    Ciao a tuttiho un problema con una query ovvero ho due tabelle:

    la prima 'CTAEGORIA'

    cate_id | cate_nome

    la seconda 'utente'

    ute_id | ute_email | ute_nome | ute_cate_id

    il codice che ho è questo:

    Codice PHP:
    $cat1='';if (isset($_POST['utente'])){$cat1=$_POST['utente'];}
    $cat2='';if (isset($_POST['azienda'])){$cat2=$_POST['azienda'];}
    $cat3='';if (isset($_POST['enoteca'])){$cat3=$_POST['enoteca'];}
    $cat4='';if (isset($_POST['ristorante'])){$cat4=$_POST['ristorante'];}
    $cat5='';if (isset($_POST['winebar'])){$cat4=$_POST['winebar'];}
    $cat6='';if (isset($_POST['prova'])){$cat4=$_POST['prova'];}


    $sql='SELECT ute_id,ute_email FROM utente INNER JOIN categoria WHERE utente.ute_cate_id=categoria.cate_id AND categoria.cate_nome="'.$cat1.'" ';
    if (
    $cat2!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat2.'"';}
    if (
    $cat3!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat3.'"';}
    if (
    $cat4!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat4.'"';}
    if (
    $cat5!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat5.'"';}
    if (
    $cat6!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat6.'"';}
    Facendo così in teoria dovrebbe mandarmi la mail SOLO alla o alle categorie selezionate, ma me lo manda a tutte indipendentemente da quella che seleziono: la quesry che mi stampa è questa:

    SELECT ute_id,ute_email FROM utente INNER JOIN categoria WHERE utente.ute_cate_id=categoria.cate_id AND categoria.cate_nome="" OR categoria.cate_nome="enoteca"

    cosa c'è che non va? chi può aiutarmi? grazie simone

  2. #2
    Guest

    Predefinito

    Non usi correttamente la JOIN:
    Codice PHP:
    $sql = 'SELECT u.ute_id, u.ute_email
    FROM utente AS u
    INNER JOIN categoria AS c ON u.ute_cate_id=c.cate_id
    WHERE c.cate_nome="'
    .$cat1.'" ';
    if (
    $cat2!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat2.'"';}
    if (
    $cat3!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat3.'"';}
    if (
    $cat4!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat4.'"';}
    if (
    $cat5!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat5.'"';}
    if (
    $cat6!=''){$sql=$sql.' OR categoria.cate_nome="'.$cat6.'"';}

    Ciao!

  3. #3
    Guest

    Predefinito

    no..anche così non cambia nulla, qualsiasi categoria seleziono mi manda la mail a tutte le categorie, dev'essere un problema della query che verifica sempre le condizioni e mi manda a tutti...ma non vedo l'errore :(
    Ultima modifica di symontest : 19-05-2009 alle ore 09.20.24

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •