2 record giống nhau nhưng chỉ show cái dc select trước? 2010-03-02 09:26:26
e có table thế này:
matched(id,name,match)
id | name | matched_with
1 | Boy | 2
2 | Girl | 1
3 | Ms.A | 4
4 | Mr.B | 3
nếu select thông thường thì nó sẽ ra cả 4 => dư thừa
e muốn nó chỉ hiện ra record số 1 và 3 thôi vì 2 với 4 nội dung giống với 1 và 3 :(
mong các bro giúp dùm, e bí chỗ này rùi :(
matched(id,name,match)
id | name | matched_with
1 | Boy | 2
2 | Girl | 1
3 | Ms.A | 4
4 | Mr.B | 3
nếu select thông thường thì nó sẽ ra cả 4 => dư thừa
e muốn nó chỉ hiện ra record số 1 và 3 thôi vì 2 với 4 nội dung giống với 1 và 3 :(
mong các bro giúp dùm, e bí chỗ này rùi :(
Tra loi 7 comment(s) 2010-03-02 09:26:26
TG 2010-03-02 09:47:03
Tra loi
gaulucky92 2010-03-02 10:37:28
e nghĩ ra cách này:
<?
$query = mysql_query(...);
$i = 0;
while ($row = mysql_fetch_array($query)){
$except[$i] = $row['match'];$i++;
if (!in_array($row['match'],$except))
{
// show data
}
}
?>
khi tạo vòng lặp sẽ kiểm tra dữ liệu id có được nêu trong phần match trước đó chưa (dùng hàm in_array)
chạy thử thấy đúng là chỉ hiện ra có 1 và 3 :)
Tra loi
choncon 2010-03-02 05:05:31
Tra loi
gaulucky92 2010-03-02 08:31:35
e có google ra dc hàm in() trong query, nhưng ko biết xài :(
để mai châm cứu lại... có lẽ là do viết lại query cho cái vòng lặp nên nó cứ load mãi ko xong
e viết kiểu thế này này:
<?
$query = mysql_query(...);
while (...){
$except = array(1,2,3);
$query = mysql_query(... WHERE data not in($except));
}
?>
lúc trước dính cái lỗi này khi làm dạng đệ quy, root với sub mà đặt dung biến $query rốt cuộc nó hiện sai tùm lum... giờ dùng lại thì nó treo luôn ko ra dc =.=
Tra loi
choncon 2010-03-03 09:56:54
Tìm hiểu GROUP_CONCAT cũng khá hay.
Tra loi
hmc 2010-03-03 11:08:29
Tra loi
gaulucky92 2010-03-03 12:55:42
dùng IN dĩ nhiên là tiện hơn vì nó nằm ở mảng query... khổ nỗi ko biết xài :(
Tra loi
Y kien