Drupal SQL "Выберите количество отличных" - PullRequest
2 голосов
/ 25 октября 2010

Может кто-нибудь помочь отладить это?

В настоящее время мой скрипт выдает эту ошибку

Ошибка разбора: синтаксическая ошибка, неожиданный '=' в include / common.inc (1695): код eval () 'в строке 38

и я сузил его до этого оператора SQL. Похоже, что подсчет результатов в Drupal не так прост, как я надеялся.

$sql_checkIP = "SELECT COUNT(*) 
FROM (SELECT DISTINCT v.hostname 
FROM {pollfield_votes} v 
WHERE v.hostname = '%s' AND v.nid =%d)";

$result0 = db_result(db_query($sql_checkIP, $hostname, $nid));

1 Ответ

2 голосов
/ 25 октября 2010

Первое, что я вижу, это то, что вы не написали псевдоним для производной таблицы

$sql_checkIP = "SELECT COUNT(*) 
FROM (SELECT DISTINCT v.hostname 
FROM {pollfield_votes} v 
WHERE v.hostname = '%s' AND v.nid =%d) as new_derived_table";

Теперь я не знаю, сколько результатов вы получите по вашему запросу, но db_result используется только тогда, когда у вас есть только одна строка. Если это нормально, в противном случае вы должны реализовать цикл вроде:

$result = db_query($sql_checkIP, $hostname, $nid);
while($res=db_fetch_array($result)){  
  $count_row = $res['COUNT(*)'];  
}
...