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

Форум MySQL

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

 

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

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

тема: Подсчет количества записей при помощи SELECT COUNT
 
 автор: franko   (07.05.2011 в 18:39)   письмо автору
 
 

есть table в которой (id_university; id_speciality ) могут повторяться, нет первичных ключей

пытаюсь сосчитать сколько всего id_university имеют одинаковую id_speciality
 <?php
 $res 
mysql_query("SELECT COUNT(id_university) FROM table
              WHERE id_speciality='
$id_speciality'");
              
$row mysql_fetch_row($res);
             
$total $row[0]; // всего записей
             
echo "Всего ($total)";
?>

не считает. выдает нули. подскажите, где ошибка?

  Ответить  
 
 автор: Z3RO   (07.05.2011 в 20:55)   письмо автору
 
   для: franko   (07.05.2011 в 18:39)
 


$total = mysql_num_rows(mysql_query("SELECT `id_university` FROM `table` 
              WHERE `id_speciality`='" . $id_speciality . "';")); 
             echo 'Всего (' . $total . ')';

  Ответить  
 
 автор: franko   (08.05.2011 в 01:55)   письмо автору
 
   для: Z3RO   (07.05.2011 в 20:55)
 

все равно по нулям считает

  Ответить  
 
 автор: Z3RO   (08.05.2011 в 09:44)   письмо автору
 
   для: franko   (08.05.2011 в 01:55)
 

А у вас в базе вообще есть записи и вы при проверке вводите ID, которые уже есть в базе.

  Ответить  
 
 автор: Z3RO   (08.05.2011 в 09:48)   письмо автору
 
   для: franko   (08.05.2011 в 01:55)
 

Вообще я так понял у вас есть база университетов.
Почему бы не зделать так:
CREATE TABLE `university`(
`id` INT(11) NOT NULL AUTO_INCREMENT,
`university` INT(11),
`speciality` INT(11),
PRIMARY KEY(`id`)
);
Дальше подсчет
$total = mysql_num_rows(mysql_query("SELECT * FROM `university` WHERE `speciality` = $speciality;"));
А ID использовать для манипулирования записями?

  Ответить  
 
 автор: franko   (10.05.2011 в 08:13)   письмо автору
 
   для: Z3RO   (08.05.2011 в 09:48)
 

таблицы следующие
universities (id_university)
universities_specialities (id_university, id_speciality)
specialities (id_speciality)

  Ответить  
 
 автор: franko   (19.05.2011 в 15:51)   письмо автору
 
   для: franko   (10.05.2011 в 08:13)
 

при выводе специальности нужно посчитать сколько университетов имеют эту специальность

$result2 = mysql_query("SELECT * FROM specialities WHERE cat='$cat' ORDER by title", $db);

 $res = mysql_query("SELECT COUNT(id_university) FROM universities_specialities 
              WHERE id_speciality='$id_speciality'"); 
              $row = mysql_fetch_row($res); 
             $total = $row[0]; // всего записей 

if (!$result2)
{
echo "<p>Запрос на выборку данных из базы не прошел. </p>";
exit (mysql_error()); 
}
if (mysql_num_rows($result2) > 0)
{
$myrow2 = mysql_fetch_array($result2);
$x = 0;
$z = 1;
do
{
$x++; 
if ($x%2) 

printf ("<tr bgcolor='#F4F2F1'>
<td width='15px' align='center'>$z.</td>
<td><p><a href='post_specialities.php?id_speciality=%s'>%s</a>&nbsp;&nbsp;(ОКСО: %s)<br>ВУЗов: ($total) &nbsp;&nbsp;Квалификация: %s</p>
</td></tr>", 
$myrow2["id_speciality"], $myrow2["title"], $myrow2["kod"], $myrow2["qualification"]);


Счетчик ноль показывает

  Ответить  
 
 автор: Lotanaen   (19.05.2011 в 17:36)   письмо автору
 
   для: franko   (19.05.2011 в 15:51)
 

а переменная $id_speciality с правильным значением подставляется?

  Ответить  
 
 автор: franko   (19.05.2011 в 18:37)   письмо автору
 
   для: Lotanaen   (19.05.2011 в 17:36)
 

поставил echo $id_speciality;

ничего не выводит

  Ответить  
 
 автор: Lotanaen   (20.05.2011 в 09:27)   письмо автору
 
   для: franko   (19.05.2011 в 18:37)
 

ну так тогда проблема в том что эта переменная пустая.... проверьте где вы ее инициализируете...

  Ответить  
Rambler's Top100
вверх

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