Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73

    Qualcuno sa usare la funzione JOIN?

    Premessa

    il database ha 2 tabelle ed ognuna ha un campo che si chiama mem_id e che contiene lo stesso valore che corrisponde all'id dell'utente.

    Quando un utente si iscrive i dati di base (fname e lmname) sono memorizzati nella tabella "members" e gli interessi ecc nella tabella "profiles".

    Io vorrei realizzare una ricerca con una key in alcuni campi di entrambe le taabella (profiles e members) senza che i risultati si ripetessero. In pratica le righe campi delle due tabelle dovrebbero aggregarsi in base al campo mem_id che hanno in comune comune così i risultati di ogni utente non sarebbero ripetuti...

    Lo script per la ricerca funziona ma i risultati sono mischiati e ripetuti...

    ecco il codice che utlizzo

    Vi prego aiutatemi....

    <html>
    <head>
    <title>Ricerca</title>
    </head>
    <body>
    <TABLE border="1" width="100%" bordercolor="#000000" bgcolor="#008080" cellpadding="0">
    <tr>
    <td width="100%" colspan="2">
    <p align="center"><font size="4">
    membri</font></td>
    </tr>
    <tr>
    <td width="26%" valign="top">
    <TABLE border="1" width="100%" bgcolor="#C0C0C0" bordercolor="#008000">
    <tr>
    <td width="100%" colspan="2">
    <p align="center">
    <?php
    include("data.php");
    $link=mysql_connect("$sql_host","$sql_user","$sql_ pass");

    function search_user(){
    $m_id=cookie_get("mem_id");
    $m_pass=cookie_get("mem_pass");
    login_test($m_id,$m_pass);
    }
    $tutto = "SELECT DISTINCT * FROM members JOIN profiles WHERE profiles.mem_id=members.mem_id";
    $query = mysql_db_query ($sql_db,$tutto)
    or die ("Non riesco ad eseguire la richiesta $tutto");
    $righe = mysql_num_rows ($query);
    ?>
    contenuti <? echo $righe ?> contatti
    </td>
    </tr><tr>
    <td width="100%" colspan="2">
    <p align="center">
    <form method=POST action=<? echo $PATH_INFO ?>>
    <input type="text" name="chiave" size="20"></td>
    </tr><tr>
    <td width="100%" colspan="2">
    <p align="center">
    <input type="submit" value="Cerca Corrispondenze">
    </td></form></tr></table>
    </td><td width="74%">
    <blockquote>
    <p align="left">

    <?
    if (isset($chiave)){
    $dati=mysql_db_query("$sql_db","SELECT DISTINCT * FROM members JOIN profiles
    WHERE profiles.mem_id=members.mem_id AND interests LIKE '%$chiave%' or books LIKE '%$chiave%'
    or about LIKE '%$chiave%' or skills LIKE '%$chiave%' or p_positions LIKE '%$chiave%'");
    while ($row = mysql_fetch_array ($dati)){
    $verifica=$row["books"];
    echo $row["fname"]." ".$row["lname"]."
    ";
    echo "interessi: ".$row["interests"]."
    ";
    echo "descrizione: ".$row["about"]."
    ";
    echo "posizioni ".$row["p_positions"]."
    ";
    echo "Attitudini: ".$row["skills"]."<hr size=1 color=#000000>";
    echo "<a href=\"http://www.weblow.net/friends/index.php?mode=people_card&p_id=".$row["mem_id"]."\">Guarda il profilo</a>"."<hr size=1 color=#000000>";
    }
    if (!$verifica){
    print ("Nessuna corrispondenza
    per la parola <font color=#000080>$chiave</font>");
    }
    mysql_free_result ($dati);

    }else{
    echo "Elenco Corrispondenze";
    }
    mysql_free_result ($query);
    mysql_close ($link);
    ?>
    </p></blockquote>
    </td></tr></table>
    </body>
    </html>


    GRAZIEEE

  2. #2
    La query per aggregare i campi delle tue 2 tabelle è fatta all'incirca così:

    SELECT A.*, B.* FROM members AS A INNER JOIN profiles AS B ON A.mem_id = B.mem_id ...

    Poi al posto dei ... ci piazzi tutte le condizioni di WHERE che vuoi indicando a che tabella appartengono i campi:

    ES.
    WHERE A.fname = 'mario'

    ed esagerando puoi mettere anche l'ORDER BY, sempre con A.campo o B.campo

  3. #3
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73
    GRAZIEEEE.... FUNZIONA ALLA PERFEZIONE...

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