从2数组php mysql中的表中获取2列
我有一张有6列的桌子 有点像: 数据库->儿童从2数组php mysql中的表中获取2列,php,arrays,select,mysqli,fetch,Php,Arrays,Select,Mysqli,Fetch,我有一张有6列的桌子 有点像: 数据库->儿童 |CANDY | COLOR | DRINK | PET | SONG | TOY | --------------------------------------------------- |cookie | blue | juice | dog | if | ball | |cake | red | coke | cat | ask | doll | 我想去商店 一个数组中的所
|CANDY | COLOR | DRINK | PET | SONG | TOY |
---------------------------------------------------
|cookie | blue | juice | dog | if | ball |
|cake | red | coke | cat | ask | doll |
我想去商店
- 一个
数组中的所有糖果称为
Candy[]代码>
color[]上的所有颜色代码>
drink[]上的所有饮料代码>等
FORLOOP
的数组,效果很好:
$fieldName=mysqli\u fetch\u field\u 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”
数组[],并且在的末尾不放置“BREAK”
,它将返回一个错误
“未定义的偏移量:第0行…”
当我把“BREAK
”放进去时,它适用于:
echo candy[0]; = cookie
echo candy[1]; = Undefined offset: 1 in line...
但不适用于:
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 />";
}
但是,像那样,我需要600行重复的代码才能得到我想要的,并为DB表上的每个新coll一次又一次地复制/粘贴
有什么想法吗
我需要它将数组放入HTML中
,然后使用mt_rand()
洗牌并获得不同的“profiles
”。这不会用于儿童用品,这只是一个例子。
这将是一个虚拟的犯罪创造者,它将洗牌这些变量,为法学院学生创建不同的犯罪假设
我已经花了3天的时间阅读了
“谷歌”搜索,但找不到任何答案。找到了一种方法。我把代码翻译成了英语,这样别人就可以用了。如果有任何变量名错误,请使用注释修复它,然后享受
$sql = "SELECT parquet, defendant, action, modusOperandi, victim, crime FROM crime_elements";
//runs '$sql' query to get database data
$result = mysqli_query($con,$sql);
$collNumber = mysqli_num_fields($result);
echo "ColL Number :" . $collNumber;
// Creates $data Array[]
$data = array();
while($row = mysqli_fetch_array($result)){
//inserts received data into "$data" and makes available by array[]index
$data[] = $row;
}
for($i=0;$i<=$collNumber -1;$i++){
// Gets the column name from the query()
$fieldName = mysqli_fetch_field_direct($result, $i)->name;
echo "</br><b>Coll Name:</b> " . $fieldName . "<br /><br />";
${$fieldName} = array_column($data, $i);
print_r(${$fieldName});
echo "<br /><b>Specified item choice[]:</b> ". ${$fieldName}[2];
echo "<hr />";
}
$sql=“从犯罪元素中选择拼花地板、被告、行动、作案手法、被害人、犯罪”;
//运行“$sql”查询以获取数据库数据
$result=mysqli\u查询($con,$sql);
$collNumber=mysqli\u num\u字段($result);
回显“ColL编号:”$科勒数;
//创建$data数组[]
$data=array();
while($row=mysqli\u fetch\u数组($result)){
//将收到的数据插入“$data”并按数组[]索引提供
$data[]=$row;
}
对于($i=0;$iname;
echo“Coll Name:”.$fieldName.“
”;
${$fieldName}=array\u列($data,$i);
打印(${$fieldName});
echo“
指定的项选择[]:”${$fieldName}[2];
回声“
”;
}
因为我不知道如何让它工作。我已经试过了,但我得到的只是错误。任何代码建议都将不胜感激。亲爱的,我删除了我的答案。是的,我现在知道你想要什么。所以我不能帮你。给我这个。我接受任何东西。哈哈哈!阿里夫,我明天试试这个,让你知道。因为现在是凌晨1点24分,我没有明天有工作。从现在开始,谢谢!我照你说的做了,得到了这个,Arif:mysql\u fetch\u assoc()期望参数1是资源,布尔值在…中给出,不知道是否相关,但我使用mysqli()进行连接