MySQL sorgu tek satır çıkışları sadece

4 Cevap php

Ben MySQL sorgudan bir JSON dize döndürür aşağıdaki PHP yöntemi var:

$sys_words_ref_join_query = mysql_query("
 SELECT user_words.*, sys_words.*
 FROM user_words, sys_words
 WHERE user_words.sys_words_ref = sys_words.sys_words_ref 
 & user_words.user_info_ref = '1'
 LIMIT 0, 7
");

$json_array = array();

while($words_obj = mysql_fetch_object($sys_words_ref_join_query)) {
 $json_array[] = $words_obj;
}

$result = json_encode($json_array);

echo $result;

Ben yaşıyorum sorun $result, örneğin, sadece tek DB satırları yankılanan olmasıdır. 1,3,5 ..., vs

Herhangi bir fikir neden? Teşekkürler.

4 Cevap

Muhtemelen kullanarak gereken Logical AND (AND) yerine Bitwise AND (&) burada yan tümcesindeki:

WHERE user_words.sys_words_ref = sys_words.sys_words_ref 
 AND user_words.user_info_ref = '1'

Bu durum:

user_words.sys_words_ref = sys_words.sys_words_ref & user_words.user_info_ref = 1

ima bit AND sys_words.sys_words_ref ve user_words.user_info_ref, burada daha sonra user_words.sys_words_ref ile karşılaştırılır arasında

Yani user_words.sys_words_ref (son bit seti ile) tek satır muhtemelen sadece doğrudur bu iki alan arasındaki bitsel AND ile eşleşen tek satır olsun.

Eğer mysql_query fonksiyonu çalıştırmak mı? Ben orada göremiyorum. Ayrıca bu yankı deneyin:

print '<pre>';
print_r ($result);

Bir ilişkisel veritabanı Satırlar harici sipariş yok, dolayısıyla hiçbir satır numaraları var. Bir RDBMS geliştiriciler diliyorum iç ne olursa olsun sipariş kullanmak serbesttir. Eğer bir sipariş isterseniz, açıkça bir ORDER BY fıkra ile belirtmeniz gerekir.