2012-11-02 4 views
0

J'ai un script de recherche que j'utilise. il trouve les utilisateurs par nom ou par emplacement. J'essaie d'ajouter une image à chaque utilisateur qui se trouve dans la recherche. mais quand je le fais chaque liste image utilisateurs, même si pas dans la recherche et les doublons le nom recherché et l'image d'une douzaine de fois comme ceci:Afficher l'image Limite d'un par résultat?

utilisateur image1.jp: michael utilisateur image1.jp: michael utilisateur image1.jp : Michael utilisateur image1.jp: Michael utilisateur image1.jp: Michael utilisateur image1.jp: Michael

utilisateur image2.jp: Eric utilisateur image2.jp: Eric utilisateur image2.jp: Eric image2. utilisateur jp: eric image2.jp utilisateur: eric image2.jp utilisateur: eric

et ainsi de suite. quelqu'un peut-il s'il vous plaît laissez-moi savoir comment je peux le limiter pour montrer juste une image pour chaque profil d'utilisateur qui apparaît dans la recherche sans limiter les utilisateurs qui apparaissent dans la recherche à 1 évidemment?

Heres mon code:

<form method="get" action=""> 
<input type="text" name="query" class="search" placeholder="Search Name/Location" style="width:120px;"/> 
<input type="image" src="../PTB1/assets/img/icons/loginarrow1.png" class="searchbutton" name="submit" value="Start Search" /> 
</form> 

<?php 
//PHP CODE STARTS HERE 

if(isset($_GET['submit'])){ 

// Change the fields below as per the requirements 
$db_host="localhost"; 
$db_username="root"; 
$db_password=""; 
$db_name="playtime"; 
$db_tb_atr_name="display_name"; 

//Now we are going to write a script that will do search task 
// leave the below fields as it is except while loop, which will display results on screen 

mysql_connect("$db_host","$db_username","$db_password"); 
mysql_select_db("$db_name"); 

$query=mysql_real_escape_string($_GET['query']); 

$query_for_result=mysql_query("SELECT * 
         FROM ptb_profiles 
         WHERE display_name like '%".$query."%' 
     OR location LIKE '%".$query."%' OR orientation LIKE '%".$query."%'"); 
echo "<div class=\"results\">"; 
while($data_fetch=mysql_fetch_array($query_for_result)) 
{ 
     $search_set = get_searched_escorts(); 
     while ($searched = mysql_fetch_array($search_set)) { 
    echo "<div class=\"spacing\"><a href=\"profile.php?id={$data_fetch['user_id']}\" class=\"search\">"; 
    echo "<img width=80px height= 80px src=\"data/photos/{$searched['id']}/_default.jpg\" class=\"boxgrid\"/> "; 
    echo substr($data_fetch[$db_tb_atr_name], 0,160); 
    echo "</a></div>"; 

} 
} 

mysql_close(); 
} 

?> 

Merci.

+0

Vous pourriez vouloir 'GROUP BY user_id' ou quelque chose de similaire? – Zar

+0

que fait get_searched_escorts()? alors que dans un certain temps pourrait être la cause que votre demande de profils montrés ne sera pas dupliquer les lignes – Waygood

Répondre

0

essayer de placer GROUP BY user_id
$ query_for_result = mysql_query (»
SELECT *
DE ptb_profiles
OU display_name comme '% " $ query." %'
ou l'emplacement LIKE « % » . $ query. "% 'OU orientation LIKE'%". $ requête. "% '
GROUP BY id_utilisateur");

+0

merci mais cela ne semble pas fonctionner. –

+0

@MatthewWilliams quel est le résultat? Y a-t-il un champ user_id ou essayez-vous de group_by display_name? –