Выборка из MySQL в индексный массив

Тема в разделе "Базы данных", создана пользователем senty, 3 окт 2011.

Модераторы: latteo
  1. senty

    senty Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    62
    Симпатии:
    1
    Вот такой запрос
    Код:
        $sql = "SELECT	product_id, product_name 
                FROM 	product
                WHERE	catalogue_id='".$prodItem['catalogue_id']."' 
    			AND 	product_visible='1'";
    А его содержимое необходимо поместить в массив такого вида:
    Код:
    $arr = array();
    
      $arr[1] = "22";
    
      $arr[2] = "23";
    
      $arr[3] = "24";
     
  2. dino

    dino

    Регистр.:
    28 май 2009
    Сообщения:
    550
    Симпатии:
    204
    Исходя из указанных условий скорее всего так:
    PHP:
    $arr = array();
    $ssql=mysql_query($sql);
    while(
    $ars=mysql_fetch_assoc($ssql)){
    $arr[$ars[product_id]] = $ars[product_name];//или наоборот $arr[$ars[product_name]] = $ars[product_id];
    }
    print_r($arr);
     
  3. senty

    senty Постоялец

    Регистр.:
    23 дек 2009
    Сообщения:
    62
    Симпатии:
    1
    Спасибо, тио что нужно

    ---------- Post added at 11:09 ---------- Previous post was at 09:54 ----------

    dino, оказалось что не так =)
    Все таки необходимо что бы было именно
    Код:
    $arr = array();
      $arr[1] = "22";
      $arr[2] = "23";
      $arr[3] = "24";
    т.к. выглядеть он будет по другому, а именно:
    Код:
    $arr = array();
      $arr[1] = "50";
      $arr[2] = "40";
      $arr[3] = "30";
    Потому что при выборке из базы данных будет еще происходить сортировка по полю, в котором хранится значение вес продукта.
    А ключи используются для перехода на следующий товар и предыдущий =)
    Т.е., я сделал как ты написал во втором после и вывел этот массив, выдало:
    Код:
    Array ( [22] => 22 [23] => 23 [24] => 24 [27] => 27 [28] => 28 [29] => 29 [30] => 30 [31] => 31 [32] => 32 [33] => 33 [34] => 34 [35] => 35 [36] => 36 [37] => 37 [38] => 38 [39] => 39 [40] => 40 [41] => 41 [42] => 42 [43] => 43 [44] => 44 [45] => 45 [46] => 46 [47] => 47 [48] => 48 [49] => 49 [50] => 50 [51] => 51 [52] => 52 [53] => 53 [54] => 54 [55] => 55 [56] => 56 [57] => 57 [58] => 58 [59] => 59 [60] => 60 )
    А надо:
    Код:
    Array ( [1] => 22 [2] => 23 [3] => 24 [4] => 27 [5] => 28 [6] => 29 [7] => 30 [8] => 31 [9] => 32 [..] => .. 
    Добавлено через 14 минут
    Нумерацию сделал так:
    PHP:
    $arr = array();
    $ssql=mysql_query($query);
    $i=1;
    while(
    $ars=mysql_fetch_assoc($ssql)){
    $arr[$i++] = $ars[product_id];
    //$arr[$ars[product_id]] = $ars[product_id];
    А как обратится к значению элемента, к примеру 1?
    Т.е., если:
    Код:
    Array ( [1] => 22 [2] => 23 [3] => 24 [4] => 27 [5] => 28 [6] => 29 [7] => 30 [8] => 31 [9] => 32 [10] => 33 [11] => 34 [12] => 35 [13] => 36 [14] => 37 [15] => 38 [16] => 39 [17] => 40 [18] => 41 [19] => 42 [20] => 43 [21] => 44 [22] => 45 [23] => 46 [24] => 47 [25] => 48 [26] => 49 [27] => 50 [28] => 51 [29] => 52 [30] => 53 [31] => 54 [32] => 55 [33] => 56 [34] => 57 [35] => 58 [36] => 59 [37] => 60 ) 
    то как обратится к [1] и вывести на экран значение 22? :)

    Добавлено через 17 минут
    Разобрался, спасибо еще раз.
    Код:
    echo $arr[2];