За последние 24 часа нас посетил 16631 программист и 1681 робот. Сейчас ищут 886 программистов ...

Проблема при добавке виртуального поле

Тема в разделе "PHP и базы данных", создана пользователем fern1986, 10 мар 2016.

  1. fern1986

    fern1986 Новичок

    С нами с:
    10 мар 2016
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток. У меня возникла следующая проблемка.
    Есть таблица j_invoice, там есть поле
    torgovaya_tochka_id (только номера)
    Код (PHP):
    1. id    torgovaya_tochka_id       summa
    2. 6    3                             302800
    3. 7    2                             111600
    4. 8    3                             33000
    5. 9    4                             85200
    6. 10    1                            80880
    7. 11    2                            24000
    и есть массив
    $ttt[1] = 'AAA'
    $ttt[2] = 'BBB'
    $ttt[3] = 'CCC'
    $ttt[4] = 'DDD'

    Хочу сделать такой запрос, чтобы по номерам torgovaya_tochka_id вышел виртуальный столбец из массива, естественно ключ равно к записи номеру torgovaya_tochka_id .
    Код (PHP):
    1. id    virtualcolumn       summa
    2. 6    CCCC                              302800
    3. 7    BBBB                             111600
    4. 8    CCCC                             33000
    5. 9    DDDD                            85200
    6. 10    AAAA                             80880
    7. 11    BBBB                             24000
    Вот мой запрос, но, не работает ((
    Код (PHP):
    1. SELECT id, '$ttt[torgovaya_tochka_id]' as virtualcolumn, summa FROM j_invoice
     
  2. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    кажется, есть не со стыковки (;
     
  3. fern1986

    fern1986 Новичок

    С нами с:
    10 мар 2016
    Сообщения:
    3
    Симпатии:
    0
    а по подробнее можно? Я не совсем профи этого дело
     
  4. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    а в sql-запросе
    (:)
     
  5. fern1986

    fern1986 Новичок

    С нами с:
    10 мар 2016
    Сообщения:
    3
    Симпатии:
    0
    а в sql-запросе
    (:)[/quote]
    можете как то посоветовать как исправить?
     
  6. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    Во-первых включить вывод ошибок, а во-вторых сделать вывод запроса в браузере, перед выполнением (:)
     
  7. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    А нельзя сделать сначала запрос, получить результат, а потом уже подставить в него нужные значения из массива?
     
  8. denis01

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

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Код (PHP):
    1. <?php
    2. $virtualcolumn = [1=>'AAA', 'BBB', 'CCC', 'DDD'];
    3. $result = [
    4.     [
    5.         'id' => '6',
    6.         'torgovaya_tochka_id' => '3',
    7.         'summa' => '302800',
    8.     ],
    9.     [
    10.         'id' => '7',
    11.         'torgovaya_tochka_id' => '2',
    12.         'summa' => '111600',
    13.     ],
    14.     [
    15.         'id' => '8',
    16.         'torgovaya_tochka_id' => '3',
    17.         'summa' => '33000',
    18.     ],
    19.     [
    20.         'id' => '9',
    21.         'torgovaya_tochka_id' => '4',
    22.         'summa' => '85200',
    23.     ],
    24.     [
    25.         'id' => '10',
    26.         'torgovaya_tochka_id' => '1',
    27.         'summa' => '80880',
    28.     ],
    29.     [
    30.         'id' => '11',
    31.         'torgovaya_tochka_id' => '2',
    32.         'summa' => '24000',
    33.     ],
    34. ];
    35.  
    36. $data = array_map(function ($array) use ($virtualcolumn) { $array['virtualcolumn'] = $virtualcolumn[$array['torgovaya_tochka_id']]; return $array; }, $result);
    37. var_export($data); 
    Результат:
    Код (PHP):
    1.   0 => 
    2.   array (
    3.     'id' => '6',
    4.     'torgovaya_tochka_id' => '3',
    5.     'summa' => '302800',
    6.     'virtualcolumn' => 'CCC',
    7.   ),
    8.   1 => 
    9.   array (
    10.     'id' => '7',
    11.     'torgovaya_tochka_id' => '2',
    12.     'summa' => '111600',
    13.     'virtualcolumn' => 'BBB',
    14.   ),
    15.   2 => 
    16.   array (
    17.     'id' => '8',
    18.     'torgovaya_tochka_id' => '3',
    19.     'summa' => '33000',
    20.     'virtualcolumn' => 'CCC',
    21.   ),
    22.   3 => 
    23.   array (
    24.     'id' => '9',
    25.     'torgovaya_tochka_id' => '4',
    26.     'summa' => '85200',
    27.     'virtualcolumn' => 'DDD',
    28.   ),
    29.   4 => 
    30.   array (
    31.     'id' => '10',
    32.     'torgovaya_tochka_id' => '1',
    33.     'summa' => '80880',
    34.     'virtualcolumn' => 'AAA',
    35.   ),
    36.   5 => 
    37.   array (
    38.     'id' => '11',
    39.     'torgovaya_tochka_id' => '2',
    40.     'summa' => '24000',
    41.     'virtualcolumn' => 'BBB',
    42.   ),
    43. )