Второго ответ в ответ на ваши изменения:
$result = mysql_query($sql);
$num = mysql_num_rows($result);
$i = 0;
$id = array();
$name = array();
$value = array();
if ($num > 0) {
while ($row = mysql_fetch_assoc($result)) {
$id[$i] = $row['id'];
$name[$i] = $row['name'];
$value[$i] = $row['value'];
$i++;
}
}
Это петля вокруг вашего результата, используя счетчик $i
в качестве ключа для ваших результатов массивов.
EDIT
Дополнительный ответ в ответ на ваш комментарий:
while ($row = mysql_fetch_assoc($result)) {
foreach($row as $column_name => $column_value) {
$temp_array[$column_name][$i] = $column_value;
}
$i++;
}
foreach ($temp_array as $name => $answer) {
$$name = $answer;
}
Этот код создает временный многомерный массив для хранения имен столбцов и значения петель вокруг этого массива, чтобы создать переменные массивы переменных. В качестве стороны я не должен был использовать временный массив, так как $$column_name[$i]
не работает, мне бы хотелось увидеть альтернативные ответы на эту проблему.
Заключительная записка @ Пайсал, я вижу, вы никогда не принимали ответа, я бы не приложил много усилий, если бы видел это раньше!
Хотя PHP действительно позволяет вам сделать это (как ответы ниже) показывают, он обычно считается плохим конструктивным принципом, и это делает ваш код намного сложнее в обслуживании. Более подходящий подход, вероятно, заключается в использовании ассоциативного массива, например '$ my_array ['id'] =" новое значение ";' – Gareth
Вам нужно будет создать отдельный вопрос для обновления. – RobertPitt