Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource
 
 автор: Medulla   (15.08.2007 в 08:21)   письмо автору
 
 


$column='answer2';
$table='opros2';
$max="SELECT max($column) as max FROM $table" or die (mysql_error());
$max_rez = mysql_query($max) or die (mysql_error());
$max_row = mysql_fetch_assoc($max_rez); 

for ($i=1; $i<=$max_row['max']; $i++)
    {    
    $sql.$i="SELECT count($column) as value.$i FROM $table where $column=$i" or die (mysql_error());
   $result.$i = mysql_query($sql.$i) or die (mysql_error());
   $row.$i = mysql_fetch_assoc($result.$i); 
   echo $row['value.$i'];
   echo "</p>";
   }

mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource i
возможно ли оптимизировать выполнение большого кол-ва запросов подобным способом?
что нужно исправить?

   
 
 автор: Unkind   (15.08.2007 в 09:38)   письмо автору
 
   для: Medulla   (15.08.2007 в 08:21)
 

Во-первых, уберите " or die (mysql_error())" из третьей и девятой строк.
Во-вторых, если я правильно Вас понял, что Ваш код можно заменить на

<?php
$column 
'answer2'
$table 'opros2';

$sql mysql_query("SELECT COUNT(*) AS `answers` FROM `" $table "` GROUP BY `" $column "` ORDER BY `answers` DESC;");

while(
$result mysql_fetch_assoc($sql))
{
    echo(
$result["answers"] . "<br />\r\n");
}
?>


P.S. В одинарных кавычках интерполяция переменных не происходит, поэтому echo $row['value.$i']; неверно тоже.

P.P.S. Для того, чтобы достать одиночное значение, лучше использовать mysql_result(), а не mysql_fetch_*().

   
 
 автор: Medulla   (15.08.2007 в 09:52)   письмо автору
 
   для: Unkind   (15.08.2007 в 09:38)
 

спасибо большое.

   
 
 автор: Unkind   (15.08.2007 в 10:01)   письмо автору
 
   для: Medulla   (15.08.2007 в 09:52)
 

>спасибо большое. а как сделать, чтобы отображались 0 значения?
Если существует только "opros2", то никак. Наверное, должна быть еще таблица с вариантами ответов.

   
 
 автор: Medulla   (15.08.2007 в 10:21)   письмо автору
 
   для: Unkind   (15.08.2007 в 10:01)
 

Допустим:

<input type=radio name=answer2 value=1>Ответ1
<input type=radio name=answer2 value=2>Ответ2
<input type=radio name=answer2 value=3>Ответ3


Ответы заносятся в базу данных.
Например:
answer2
1
2
2
2
ответа value=3 в бд нет.

запрос вида

$sql2="SELECT count(answer2) as cr2 FROM `opros2` where answer2=3";
$result2 = mysql_query($sql2);
$row2 = mysql_fetch_assoc($result2); 
echo $row2['cr2'];

возвращает 0.

   
 
 автор: Faraon   (15.08.2007 в 10:39)   письмо автору
 
   для: Medulla   (15.08.2007 в 10:21)
 

А что тут собственно удивительного? По Вашему, что должно возвратить если answer2=3 не существует ?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования