2012-05-09 8 views
0

У меня возникли проблемы с добавлением предложения where к этому запросу. Я бы хотел, чтобы он выбирал, откуда находится столбец «SAT AM/SUN PM» «да» и где «подтверждено» столбцом «да».MYSQL SELECT с COUNT, FROM, WHERE, GROUP BY

Это работает без «WHERE shift_times =» СБ AM/ВС PM "- это ничего не выводит с этим:

 $query = "SELECT position, COUNT(confirmed) FROM volConfirm WHERE shift_times='SAT AM/SUN PM' GROUP BY position"; 

    $result = mysql_query($query) or die(mysql_error()); 

    // Print out result 
    while($row = mysql_fetch_array($result)){ 
     echo "There are ". $row['COUNT(confirmed)'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers."; 
     echo "<br />"; 

НЕМНОГО ПОДРОБНЕЕ: Таблица содержит записи, которые либо подтверждены с «да» или «0» (нет), а shift_times - это SAT AM/SUN PM или SAT PM/SUN AM. Существует несколько разных позиций. Я пытаюсь показать окончательные результаты, как так МОГ:

Есть: «30», «Искусство» добровольцев для «»

Есть: «SAT AM/ВС PM 30», «Искусство» добровольцев для «СБ PM/вС AM»

в идеале строки будут вращаться так эхо под что бы обратные данные для «SAT PM/SUN AM» - но это кажется немного сложнее ...

+0

является SAT AM/SUN PM столбцом в вашем запросе, который вы используете в качестве значения в столбце –

+0

Нет, SAT AM/SUN (а также SAT PM/SUN AM) являются параметрами в столбце «shift_times» – Commandrea

+0

два опции или один параметр –

ответ

3

Я изменил ваш оператор выбора, чтобы выбрать и сгруппировать по времени переключения, так что одна строка будет выбрана для каждой позиции за каждое время смены. я добавил псевдоним «НКТ» к вашему количеству() и обновил PHP использовать CNT в эхо заявление Нет закрывающей скобки в конце вашего цикла в то время (может быть копирование и вставка выпуск)

$query = "SELECT COUNT(confirmed) as cnt 
      , position 
      , shift_times 
     FROM volConfirm 
     WHERE confirmed='yes' 
     GROUP BY shift_times, position 
     order by shift_times, position"; 

$result = mysql_query($query) or die(mysql_error()); 

// Print out result 
while($row = mysql_fetch_array($result)) 
{ 
    echo "There are ". $row['cnt'] ." ". $row['position'] ." " . $row['shift_times'] . " volunteers."; 
    echo "<br />"; 
} 
+0

Я все еще изучаю mysql и AS была в списке, чтобы узнать, и этот порядок для меня новичок в этой форме - спасибо! Это отличная пьеса для изучения --- – Commandrea

+0

Удерживайте майонеза - это не так, как я надеялся, с SAT AM/SUN PM (1) и SAT PM/SUN AM (2) для каждой отображаемой позиции в строках друг на друга - я действительно ищу результаты, такие как Art = 1,2 Bar = 1,2 Merch = 1,2 и т. д. Но выше это делается для меня визуально. – Commandrea

+0

Решенный! Я просто изменил «order by shift_times, position» на «order by position» - еще раз спасибо! – Commandrea