【发布时间】:2014-12-11 07:23:51
【问题描述】:
我有一个 6 列的表
排序:
数据库 -> 孩子
|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} = 数组();
但是当代码到达 WHILE 部分时,也就是循环内部,要在数组 [] 中添加列项,它只添加第一个元素并返回到 FORLOOP,然后将一个元素添加到下一个数组[] 并跳转到下一个数组[]....
while($row = mysqli_fetch_array($result)){
//inserts itens in the "$array" with columns name
${$fieldName}[] = $row[$i];
}
如果我尝试 "echo" arrays[] 并且不要在 WHILE 的末尾添加 "BREAK",它会返回错误
“未定义的偏移量:0 in line...”
当我输入“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 />";
}
当 WHILE 代码不在 FORLOOP 内并且我创建 query() 时,它可以工作:
SELECT candy FROM kids.
但是,像这样,我需要大约 600 行重复的代码来获得我想要的内容,并为数据库表上的每个新 coll 一次又一次地复制/粘贴。
有什么想法吗?
我需要它来将数组放入 HTML
<SELECT><OPTION></SELECT> ,然后使用mt_rand() 洗牌,得到不同的“profiles”。这不会与孩子的东西一起使用,这只是一个例子。
它将是一个虚拟犯罪创造者,它将对变量进行洗牌,为法学院学生创造不同的犯罪假设。
我已经花了 3 天时间阅读 http://php.net/manual/pt_BR/mysqli-result.fetch-array.php 上的文档
并“谷歌搜索”它,但找不到任何答案。
【问题讨论】:
-
因为我不知道如何让它工作。我已经尝试过了,但我得到的只是错误。任何代码建议将不胜感激。
-
亲爱的我删除了我的答案。是的,我现在知道你想要什么。抱歉,我无法在这方面为您提供帮助。
-
给我那个。我什么都接受。哈哈哈!
-
Arif,我明天试试这个,然后告诉你。因为现在是凌晨 1 点 24 分,我明天还要上班。从现在开始,谢谢!
-
我按照你说的做了,得到了这个,Arif:mysql_fetch_assoc() 期望参数 1 是资源,布尔值在... 不知道是否相关,但我使用 mysqli() 进行连接
标签: php arrays select mysqli fetch