У меня есть таблица с 6 столбцоввыборки 2 столбца из таблицы в 2 массива PHP MySQL
Сортировать как:
База данных -> дети
|CANDY | COLOR | DRINK | PET | SONG | TOY |
---------------------------------------------------
|cookie | blue | juice | dog | if | ball |
|cake | red | coke | cat | ask | doll |
Я хочу сохранить
- все конфеты в одном
Array
под названиемCandy[];
- все цветы на
color[];
- все напитки на
drink[];
и т.д ....
мне удалось создать массив с именами столбцов с FORLOOP
с этими линиями, который работает отлично:
$ fieldName = mysqli_fetch_field_direct ($ result, $ i) -> name; $ {$ fieldName} = array();
Но когда код попадает в WHILE часть, которая также находится внутри цикла, чтобы добавить элементы столбцов внутри массива [], это добавляет только первый элемент и возвращается к FORLOOP, идет и добавляет один элемент к следующему массиву [] и переходит к следующему массиву [] ....
while($row = mysqli_fetch_array($result)){
//inserts itens in the "$array" with columns name
${$fieldName}[] = $row[$i];
}
Если я пытаюсь "echo"
arrays[]
и don't поставить "BREAK"
в конце WHILE
, он возвращает погрешность
"Undefined смещение: 0 в строке ..."
И когда я поставил "BREAK
", он работает на:
echo candy[0]; = cookie
, но не работает для:
echo candy[1]; = Undefined offset: 1 in line...
Вот весь код:
$sql="SELECT candy, color, drink, pet, song, toy FROM kids";
$result = mysqli_query($con,$sql);
$colNumber = mysqli_num_fields($result);
for($i=0;$i<=$colNumber -1;$i++){
$fieldName = mysqli_fetch_field_direct($result, $i)->name;
echo . $fieldName . "<br /><br />";
//Creates an Array with Coll Name from DB
//with dynamic-variable ${$fieldname}
${$fieldName} = array();
while($row = mysqli_fetch_array($result, MYSQLI_NUM)){
//inserts the received itens into the array ${$fieldName}
${$fieldName}[] = $row[$i];
printf ("%s (%s)\n", $row[$i], $row[1]);
}
echo ${$fieldName}[0];
echo candy[0];
echo ${$fieldName}[1];
echo candy[1];
echo "<hr />";
}
в исследовании WHI LE код работает, когда подмигнули не внутри FORLOOP
и если я делаю query()
как:
SELECT candy FROM kids.
Но тогда, как и что, как я бы нужно 600 строк повторяющегося кода, чтобы получить то, что я хочу, и копировать/вставьте снова и снова каждый новый столбец в таблице DB.
Любые идеи?
мне это нужно, чтобы положить массивы внутри HTML <SELECT><OPTION></SELECT>
, а затем использовать mt_rand()
перетасовать и получить разные «profiles
». Это не будет использоваться с малышами, это был всего лишь пример. Это будет виртуальный преступник, который будет перетасовывать переменные, чтобы создать другую гипотезу о преступлении для студентов юридических школ.
я уже провел 3 дня, чтение документации на http://php.net/manual/pt_BR/mysqli-result.fetch-array.php
и «прибегая к помощи» его, но не смог найти какой-либо ответ.
Потому что я не знаю, как заставить его работать. Я уже пробовал, но все, что у меня есть, было ошибкой. Любое предложение кода было бы оценено. –
дорогой я удалил свой ответ. И я теперь знаю, чего ты хочешь. Сорр, я не могу помочь вам в этом. –
Спасибо, в любом случае! –