PHP из базы данных и запроса - PullRequest
0 голосов
/ 09 января 2011

У меня есть таблица:

id, филиал

Каждый раз, когда кто-то нажимает на ссылку, вставляется новая строка,

ID - это идентификатор страницы, а партнер - это идентификатор партнера.

Например:

ID страницы: 9 ID партнера: 1

ID страницы: 9 ID партнера: 2

ID страницы: 9 ID партнера: 3

У меня только 3 филиала.

Я хочу выбрать эту информацию и сгруппировать их по идентификатору.

Я пробовал этот запрос:

ВЫБРАТЬ СЧЕТ (*) ОТ table ГДЕ id = '9' ГРУППА ПО affiliate

Работает нормально, когда я делаю это в php моего администратора, как мне получить информацию в PHP?

Я пробовал:

$ q = mysql_query ("ВЫБЕРИТЕ СЧЕТЧИК (*) ОТ table ГДЕ id = '". $ Id."' GROUP BY affiliate ");

$ r = mysql_fetch_array ($ q);

При попытке распечатать данные на странице я получаю только один результат.

Нужно ли использовать цикл foreach / while для получения всех 3? Как мне это сделать?

Спасибо!

Ответы [ 4 ]

3 голосов
/ 09 января 2011

Вы должны выполнить mysql_fetch_array () (или mysql_fetch_assoc () ) в цикле:

while ($row = mysql_fetch_assoc($q)) {
    echo $row["id"];
    echo $row["affiliate"];
}

ОБНОВЛЕНИЕ (в соответствии с комментарием):

Если у вас ВСЕГДА есть 3 строки в вашем результате, вероятно, будет полезна функция mysql_result () :

$firstAffiliate = mysql_result($q, 0, "affiliate");
$secondAffiliate = mysql_result($q, 1, "affiliate");
$thirdAffiliate = mysql_result($q, 2, "affiliate");

Кстати, будьте осторожны и проверьте, действительно ли запрос возвращает 3 результата.

2 голосов
/ 09 января 2011

Петля такая:

while($row = mysql_fetch_array($q)) {
        print_r($row);
}
0 голосов
/ 09 января 2011

вы можете использовать переменную для хранения состояния внутри самого оператора mysql. Попробуйте следующее:

филиалы: page_id afil_id

set @ page_id = 0; выберите page_id, если (@page_id <> page_id, count (*), 0), @page_id: = page_id из группы кликов по page_id;

Надеюсь, что поможет

0 голосов
/ 09 января 2011

Если вы просто хотите получить список Affiliate ID, вы можете рассмотреть этот запрос

select group_concat(affiliate)
from table 
where id=9;

Вышеприведенное вернет значение, разделенное запятыми, например 1,2,3 в одной строке

Итак, вы можете в PHP взорваться, используя ,, и размер взорванного массива будет таким же, как count(*)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...