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

    problema ricerca su più tabelle.

    Ragazzi vi spiego il problema:

    Io devo fare la ricerca sui campi di una tabella...(profiles)
    ma ogni risultato stampato deve contenere anche 2 campi (fname e lname) della tabella members

    le tabelle hanno in comune il campo mem_id

    ho pensato di fare la ricerca su entrambe le tabelle ma non funzione perchè mi da risultati duplicati ed errati... mi sapreste aiutare...

    ECCO IL CODICE

    <html>
    <head>
    <title>Cerca Corrispondenze</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">
    La mia rubrica</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 * FROM profiles JOIN members ";
    $query = mysql_db_query ($sql_db,$tutto)
    or die ("Non riesco ad eseguire la richiesta $tutto");
    $righe = mysql_num_rows ($query);
    ?>
    La rubrica contiene <? 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 * FROM profiles JOIN members
    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>


    Grazie molte

  2. #2
    Devi usare le join.

    Se ci dai indicazioni un po' più precise tipo nomi dei campi sui quali effettuare la ricerca, nomi delle tabelle, ecc magari ti possiamo aiutare a costruire la query.
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  3. #3
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73
    scusate pensavo si potesse evincere dal codice...

    allora:

    la tabella 1 è "members" da cui prendere i campi "fname" e "lname" corrispondenti all'id

    la tabella 2 è "profiles" in cui ricercare la key in vari campi tra cui "skills" e "interests"

    le due tabelle hanno in comune il campo "mem_id" che potrebbe servire per associare i risultati nella fase di stampa...

    Grazie dell'aiuto... sto impazzendo

  4. #4
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73
    Ecco il risultato ottenuto con lo script postato... mi ripete ogni utente più volte combinando i risultati... come ne esco...HELP!

    Maria Spinosa
    interessi:
    descrizione:
    posizioni
    Attitudini:
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    Maria Spinosa
    interessi: calcio,amore
    descrizione: amo i l calcio
    posizioni Manager
    Attitudini: marketing,tennis
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    Maria Spinosa
    interessi: Mi piace la Pesca ed amo il Nuoto. La musica classica e le buone azioni.
    descrizione:
    posizioni
    Attitudini: Karate e Marketing
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    Maria Spinosa
    interessi:
    descrizione:
    posizioni
    Attitudini:
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    alessia alessia
    interessi:
    descrizione:
    posizioni
    Attitudini:
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    alessia alessia
    interessi: calcio,amore
    descrizione: amo i l calcio
    posizioni Manager
    Attitudini: marketing,tennis
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    alessia alessia
    interessi: Mi piace la Pesca ed amo il Nuoto. La musica classica e le buone azioni.
    descrizione:
    posizioni
    Attitudini: Karate e Marketing
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------
    alessia alessia
    interessi:
    descrizione:
    posizioni
    Attitudini:
    --------------------------------------------------------------------------------
    Guarda il profilo
    --------------------------------------------------------------------------------

  5. #5
    Cioè la tabella members non ha id?
    Se è così come prima cosa devi mettercelo.

    Poi come memorizzi i vari dati?
    Gli interessi, per esempio come li memorizzi?

    Forse facciamo prima se dici direttamente cosa devi memorizzare e riorganizziamo il db perchè mi sembra di capire che non sia progettato molto correttamente nè tantomeno normalizzato!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  6. #6
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73
    allora le 2 tabelle hanno ognuna un campo che si chiama mem_id e che contiene lo stesso valore che corrisponde all'id dell'utente.

    In pratica 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 fare 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...

    Ancora grazie per la pazienza...

  7. #7
    Ok, credo di aver capito. Devi usare le JOIN. Purtroppo io non le so usare molto bene quindi non posso aiutarti. Aspetta che arrivi qualcuno che le sa usare e lui ti aiuterà. Nel frattempo abbiamo chiarito il problema rendendo le cose più facili a chi è in grado di aiutarti!

    mi dispiace! Ciao!
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

  8. #8
    Utente bannato
    Registrato dal
    Jul 2005
    Messaggi
    73
    sei stato davvero gentilissimo ... grazie lo stesso...

  9. #9
    Di niente! Finchè posso essere utile...
    eCommerceRS.NET - Commerciante, vendi on-line!
    Il mio nick è mircov e non mirco!!!

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.