За последние 24 часа нас посетили 49823 программиста и 1755 роботов. Сейчас ищут 732 программиста ...

cоздать массив и поместить его в сессию, пoдскажите

Тема в разделе "PHP для новичков", создана пользователем sc2r2bey, 26 авг 2009.

  1. sc2r2bey

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

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    через форму с помощью checkbox передается неопределенное значение параметров, как выбрать из БД нужные столбцы по количеству переданных значений checkbox и id разным значениям checkbox и выбранные значения массивом поместить в сессию?

    данные выбираются

    Код (Text):
    1. $_SESSION['id_service'] = $_POST['service'];
    2. for ($i=0; $i<count($_SESSION['id_service']); $i++)
    3. {
    4. $service = "SELECT * FROM service WHERE id=".$_SESSION['id_service'][$i];
    5. $service_query = mysql_query("$service");
    6. while ($service_select = mysql_fetch_assoc($service_query))
    7. {
    8. echo $service_select['service'];
    9. echo  $service_select['price'];
    10. }
    11. }
    а вот как $service_select['service'] и $service_select['price'];
    поместить в соответствующие массивы $_SESSION['service'] и $_SESSION['price'], чтоб их потом можно было разобрать по элементам, не получается
    помещает только последнюю выбранную запись и все :(
     
  2. admyx

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

    С нами с:
    14 мар 2008
    Сообщения:
    2.159
    Симпатии:
    1
    sc2r2bey
    Ну конечно, последнюю. У вас цикл крутится.
     
  3. sc2r2bey

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

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    где я ошибся?
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    А зачем while, когда выбираете по id? Там же, по идее, одна запись всего возвращется.
     
  5. sc2r2bey

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

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    так что надо сделать?
    ну убрал я while а как поместить все выбранные переменные в один массив?

    вот так заработало
    Код (Text):
    1. $_SESSION['id_service'] = $_POST['service'];
    2.  
    3. for ($i=0; $i<count($_SESSION['id_service']); $i++)
    4. {
    5. $services = "SELECT * FROM service WHERE id=".$_SESSION['id_service'][$i];
    6. $service_query = mysql_query("$services");
    7. $service_select = mysql_fetch_assoc($service_query);
    8. $service[] = $service_select['service'];
    9. $sprice[] = $service_select['price'];
    10. }
     
  6. Silicium

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

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    Если я правильно понял
    PHP:
    1.  
    2. $_SESSION['id_service'] = $_POST['service'];
    3. for ($i=0; $i<count($_SESSION['id_service']); $i++) {
    4.     $service = "SELECT * FROM service WHERE id=".$_SESSION['id_service'][$i];
    5.     $service_query = mysql_query("$service");
    6.  
    7.     $serv_arr = array();
    8.     $price_arr = array();
    9.  
    10.     while ($service_select = mysql_fetch_assoc($service_query)) {
    11.       $serv_arr[] = $service_select['service'];
    12.       $price_arr[] = $service_select['price'];
    13.     }
    14. }
    15.  
    и вот получили два массива данных и заганяем их в сессию:
    PHP:
    1.  
    2. $_SESSION['arr_service'] = $serv_arr;
    3. $_SESSION['arr_price'] = $price_arr;
    4.  
     
  7. Silicium

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

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    возможно id это не id ИМХО
    З.Ы. у людей по разному бывает, хотя привычно конечно что id это и есть id
     
  8. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
    Ну да, у кого-то паспорт, а у кого-то фамилия на туалетной бумаге написана.
     
  9. Silicium

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

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    :D
     
  10. sc2r2bey

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

    С нами с:
    25 апр 2009
    Сообщения:
    76
    Симпатии:
    0
    спасибо!
     
  11. Fduch

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

    С нами с:
    1 июл 2009
    Сообщения:
    140
    Симпатии:
    0
    // малость не в тему, просто думаю не стоит отдельную тему под этот вопрос городить

    а вот так
    PHP:
    1.  
    2. for ($i=0; $i<count($_SESSION['id_service']); $i++) {
    3. foreach ( $_SESSION['id_service'] as $items )
    4. {
    5.      $service = "SELECT * FROM service WHERE id=".$items;
    6.  }
    7.  
    не оптимистичней будет по сравнению с

    PHP:
    1.  
    2. for ($i=0; $i<count($_SESSION['id_service']); $i++) {
    3.  
    ? В форе же count() будет выполняться каждый проход цикла. Или я не прав и в плане оптимизации моя замена ни чего не дает?