2016-08-12 7 views
0

私は、連絡先のIDからフィルタをかける参加者のすべてのレコードを表示するSQL文を持っています。すべてのレコードを返すと、同じレコードが複数ある場合にのみ1レコードしか表示されない

<?php 
query = mysql_query("SELECT * FROM participants WHERE contactperson = '$session_id'"); 

while($cys_row = mysql_fetch_array($cys_query)){ 
returns all the records of the participants 
} 
?> 

私は私のSQLステートメントにHAVING句を追加することによって、同じcontactpersonに1つの以上のレコードを持つ参加者を表示する方法を見つけました。私は達成するために必要なもの

<?php 
query = mysql_query("SELECT * FROM participants HAVING Count(*)"); 


while($cys_row = mysql_fetch_array($cys_query)){ 
returns all the records of the participants with more than 1 of the same information 
} 
?> 

は、私はそのcontactperson上のすべての参加者を選択するが、同じ参加者の記録は、私はそれを達成するにはどうすればよい1以上である場合には1つのレコードだけを選択したいということでしょうか?

答えて

0

は、MySQLでDISTINCT句を使用します。ここ

query = mysqli_query("SELECT DISTINCT(contactperson) AS contactperson, colum2, colum3 FROM participants WHERE contactperson = '$session_id'"); 

をするmysql_queryは廃止されると、あなたは、mysqli_query()を使用する必要があります。

+1

また、$ session_idがクライアントから来る可能性がある場合は、バインドされたパラメータを使用します。それは明らかですが、ちょっと、OP *はmysql_queryを使用しています... – Will

+0

ええ、それで、私は彼にmysqli_queryを使用するようアドバイスしています... mysql_queryは現在推奨されていません。そして、とにかくmysql_query()は同じ方法。 @ user866762 –

関連する問題