Могу ли я поместить массив в запрос Mysql? - PullRequest
0 голосов
/ 22 ноября 2011

У меня есть массив:

$arrayA = array(1, 2, 3, 4, 5);

Могу ли я поместить массив, как положить постоянное число внутри запроса? как это:

SELECT id as 'ID',
       name as 'NAME',
       '1234' as 'Number'
FROM student 

Приведенный выше запрос сгенерирует следующее:

ID    NAME    Number
1     Lily    1234
2     Sherry  1234
3     Bob     1234
4     Tom     1234
5     Lucy    1234

Я хочу сделать что-то вроде этого:

SELECT id as 'ID',
       name as 'NAME',
       $arrayA as 'Number'
FROM student 

Так что, если у меня 5 учеников, когда я делаю mysql_fetch_array, он автоматически генерирует 1,2,3,4,5 в столбце Number.

ID    NAME    Number
1     Lily    1
2     Sherry  2
3     Bob     3
4     Tom     4
5     Lucy    5

Ответы [ 2 ]

1 голос
/ 22 ноября 2011

вы можете использовать php для достижения этой цели, например

$students = array();
$arr = range(1,5);
$idx = 0;
while ( $row = $mysql_result->fetch_assoc())
{
  // return array(1,2,3,4,5)
  // $row['Number'] = $arr;

  // return matched
  // $row['Number'] = $arr[$idx];

  // this is what you can try
  $row['Number'] = ++$idx;
  $students[] = $row; 
}

ПРИМЕЧАНИЕ: если вы собираетесь использовать oi и тег li для отображения,
Вы можете отказаться от этого

0 голосов
/ 22 ноября 2011

Нет, вы не можете.Кроме того, вы не должны делать это.Это нарушает первую нормальную форму.Каждое значение должно иметь свой собственный столбец, если существует фиксированное количество значений.Если нет фиксированного числа, у вас должна быть промежуточная таблица для обработки отношения «многие ко многим».

Вся идея реляционных баз данных заключается в том, что в каждом столбце хранится один элемент данных на строку.Если вам нужно сохранить более одного элемента данных, он должен быть в нескольких столбцах или нескольких строках.

См. Мой ответ на этот вопрос: хранение нескольких данных в одном столбце mysql и получение данных по отдельности

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