2013-02-15 2 views
1

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

Это мой PHP:

$query = "SELECT x.price 
      FROM price_pints x, price_pints y 
      GROUP BY x.price 
      HAVING SUM( 
         SIGN( 
          1 - SIGN(y.price - x.price) 
          ) 
        )/COUNT(*) > .5 
      LIMIT 1"; 

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

// Print out result 
while($row = mysql_fetch_array($result)){ 
echo "The average price of a pint ". $row['type']. " is £".$row['x.price(price)']; 
echo "<br />"; 
} 

Результат показывает, как 5, когда я протестировать запрос SQL в PHPMyAdmin, но она не отображается, когда эхо результат.

Ранее я вычислил средний и это было легко печатать как:

echo "The average price of a pint ". $row['type']. " is £".$row['AVG(price)']; 

Теперь я застрял о том, как изменить $ строки [цена (стоимость)] ^^^

+2

Прекратите использование MySQL, вместо того, чтобы использовать PDO просто искать его – samayo

+0

Вы хотите медиану * все * цены, или медиану * для каждого типа *, в моде группы? – PGallagher

+0

По всем ценам. Я рассчитал правильный ответ, но я просто не могу его отобразить. Где-то в '£ '. $ Row [' x.price (price) '];' Мне не хватает точки. –

ответ

1

Как следует из комментариев, рассмотрите возможность перехода к PDO или mySQLi, поскольку все команды mysql_ устарели.

Ваш PHP должен читать;

echo "The average price of a pint ". $row['type']. " is £".$row['price']; 

Однако, мне интересно, что вы ожидаете получить в столбце Тип? Поскольку вы не выбираете его выше, и в дальнейшем вы будете возвращать только одно значение и один тип курса, даже если вы вычисляете медиану по всем ценам.

По крайней мере, ваш SQL будет;

 SELECT x.price, x.type 
     FROM price_pints x, price_pints y 
     GROUP BY x.price 
     HAVING SUM( 
        SIGN( 
         1 - SIGN(y.price - x.price) 
         ) 
       )/COUNT(*) > .5 
     LIMIT 1 
+0

Спасибо! Да, я вижу, что мой тип теперь совершенно не нужен. для создания вещей кажется более сложными, чем они есть на самом деле. Он работает сейчас. Cheers! –

+0

Ха-ха ... Никаких проблем вообще! Вы вообще не сбивали с толку, просто любопытно! Рад, что у вас это работает ... Пожалуйста, не стесняйтесь принять ответ, если это поможет! Congrats! – PGallagher

0

первым. вы должны изучить использование mysqli или PDO для запуска вашего запроса, вы полностью восприимчивы к SQL-инъекциям с использованием mysql_query и его амортизации в любом случае, и в скором времени будут удалены. Если вы говорите, что ваш запрос работает при запуске непосредственно на вашей базе данных, он должен запускаться с php.

Проверьте, чтобы увидеть, сколько строк вы возвращаете

$numrows = mysql_num_rows($result) 

Убедитесь, что вы ссылаетесь соответствующие столбцы.

+0

Отмечено, что я буду изучать PDO сейчас. Вопрос относится к этой строке: 'echo" Средняя цена пинты ". $ row ['type']." is £ ". $ row [ 'x.price (price)']; ' Я не знаю, как получить это, чтобы отобразить« 5 », как это делает запрос. –

Смежные вопросы