За последние 24 часа нас посетили 55528 программистов и 1714 роботов. Сейчас ищет 821 программист ...

Присвоить переменное значение в цикле

Тема в разделе "MySQL", создана пользователем obivankenobi, 6 мар 2012.

  1. obivankenobi

    obivankenobi Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Делаю запрос
    Код (Text):
    1. $query = "SELECT category, count(*) FROM request GROUP BY category";
    2. $result = mysql_query($query) or die ("Ошибка. ".mysql_error());
    3. while ($q = mysql_fetch_array($result))
    4. {
    5.     echo $q[1]."<br>";
    6. }
    На выходе получается
    Код (Text):
    1. 1
    2. 2
    3. 1
    4. 1
    5. 3
    Как мне присвоить получившиеся значения отдельной переменной, т.е. чтобы $per0 = 1, $per1 = 2, $per2 = 1, $per3=1, $per4=3. Зараене спасибо
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    через $$, например.
    а зачем это, собственно? какую задачу вы пытаетесь решить созданием помойки из переменных?
     
  3. obivankenobi

    obivankenobi Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    а каким образом, мне без переменных сохранить результат выполнения цикла? т.е. куда мне их помещать?
    кстати, а что такое $$ ?

    Добавлено спустя 12 минут 59 секунд:
    вот смотри... результат запроса выдает 1 2 1 1 3... это количество повторяющихся индексов, т.е. мне нужно, грубо говоря их подписать, т.е.
    количество индексов с 0 равняется 1 и т.д.
    а подписать мне их надо, чтобы другой страничке, где этот скрипт будет подключен в месте где стоит переменная, например, $index_s_nulem показалось количество этих самых индексов с нулем.
     
  4. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Код (PHP):
    1. $ary = array();
    2. while( $r = mysql_fetch_array($result) )
    3. {
    4.   $ary[$r[0]] = $r[1];
    5. }  
    сделайте вардамп $ary и подумайте как с этими данными можно дальше работать.

    Код (PHP):
    1. while( $r = mysql_fetch_array($result) )
    2. {
    3.   $varname='per'.$r[0];
    4.   $$varname = $r[1];
    5. }  
    при дебаге, чтоб их все увидеть - делайте вардамп суперглобальной переменной

    рекомендую использовать более понятные имена переменных. что есть Q в данной строке?
     
  5. obivankenobi

    obivankenobi Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    $q массив, в который заносится результат запроса sql

    Добавлено спустя 2 минуты 3 секунды:
    такс, сейчас посмотрю... спасибо ganzal
     
  6. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну вообще-то данные строки из результата запроса. но это придирка. а что же сама по себе Q значит? я вот, читая код, буду отбегать к определению, чтоб понять, что хранит эта переменная.
     
  7. obivankenobi

    obivankenobi Активный пользователь

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    окей, учту..фантазии просто не хватает на каждый запрос придумывать имена переменных.

    Добавлено спустя 4 минуты 55 секунд:
    Спасибо, еще раз. Прочитал еще раз про массивы.Разобрался.
     
  8. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    запрос он один же раз
    я использую префикс sql чтоб понимать что в переменной должен быть текст в формате запроса
    для результата - префикс res
    для строк ответа - префикс r
    но это кому как удобнее. просто ваше q выходит за рамки ожидаемой логики.