Visualizzazione risultati 1 fino 2 di 2

Discussione: confrontare i nomi inseriti in due tabelle

  1. #1
    MedMax non è connesso Utente
    Data registrazione
    14-11-2002
    Messaggi
    234

    Predefinito

    in uno script devo inserire delle righe che mi facciano un controllo se i nomi degli utenti presenti in una tabella sono presenti anche in un'altra.
    io l'ho fatto così:

    [code:1:803445a1b3]
    $result = mysql_query("SELECT name,chiff,typ,media FROM voting ORDER BY media DESC LIMIT 1", $dbi);
    list($picid,$typ,$rating) = sql_fetch_row($result, $dbi);
    $row=sql_fetch_array($result);
    $resultx = mysql_query("select * from $user_prefix"."_user_profile1 as p1, $user_prefix"."_user_profile2 as p2 where p1.ffusername='$uname' AND p2.ffusername='$uname'")
    or die(mysql_error());
    $rowx=sql_fetch_array($resultx);
    for ($rowx['id']=1;$rowx['id']=eof ;$rowx['id']++){
    if ($rowx['uname']==$row['name']& #41; {
    echo "<a href=\"modules.php?name=FriendFinder&op=u serinfo&ffusername=$rowx['uname']\&quo t;>UTENTE ISCRITTO</a>!";
    } else {
    echo "L'UTENTE NON E' ISCRITTO";
    }
    }
    [/code:1:803445a1b3]

    è giusto?
    quali modifiche devo fare?
    TrickMaster.It

    The Web Tutorial Resource

  2. #2
    Guest

    Predefinito

    non posso dirti con matematica certezza se il codice sia giusto o meno. Posso suggerirti alcune modifiche (non ho il manuale PHP sottomano per cui se scrivo stupidate confondendomi tra linguaggi correggimi):

    - il confronto tra stringhe in PHP è case-sensitive, per cui è meglio che confronti le stringe passandole entrambe in maiuscolo (o minuscolo) così:

    [code:1:387492d27b]if (strtolower($rowx['uname'])==s trtolower($row['name'])) { [/code:1:387492d27b]

    - cerca, in questo caso, di fare un'unica query tra tabelle, in quanto il confronto tra stringhe in MySql (se l'installazione è standard) NON è case-sensitive.

    Ricordo la sintassi per effettuare in SQL la LEFT JOIN (che permette di ricavale le informazioni di due tabelle, recuperando i valori della seconda tabella solo se la corrispondenza è corretta, e restituendo NULL altrimenti):

    [code:1:387492d27b]SELECT FROM Tab1
    LEFT JOIN Tab2
    ON Chiave2 = Chiave1
    WHERE Condizione1[/code:1:387492d27b]

Regole di scrittura

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