【发布时间】:2014-02-03 23:55:22
【问题描述】:
我创建了一个要求用户添加的表单: 名字、姓氏、位置、状态
一段时间后,我收到了 5 个输入。 mysql表名为users,表数据如下:
id first_name location status
== ========== ======== ========
1 Chris UK Married
2 Anton Spain Single
3 Jacob UK Single
4 Mike Greece Married
5 George UK Married
也是我通过 POST 方法接收输入的方式。所以:
$firstname=$_POST['FIRST_NAME']; // First Name: <input type="text" name="FIRST_NAME">
$location=$_POST['LOCATION']; // Location: <input type="text" name="LOCATION">
$status=$_POST['STATUS']; // Status: <input type="text" name="STATUS">
我创建了一个查询来选择来自英国的所有已婚用户:
$query = "SELECT * FROM users WHERE location='UK' AND status='Married'";
$result = mysqli_query($dbc,$query); //$dbc is the connection to my database
$row = mysqli_fetch_array($results, MYSQLI_BOTH);
换句话说:
id first_name location status
== ========== ======== ========
1 Chris UK Married
5 George UK Married
问题:
1) $row 数组是否如下所示:
$row= array(
array(1 Chris UK Married),
array(5 George UK Married)
);
2) 实现过滤 WHERE location='UK' AND status='Married' 后如何回显数据库内容?
我需要它是这样的:
Hello Chris! You are from UK and you are married!
Hello George! You are from UK and you are married!
我知道我必须使用 foreach 循环(回声数组),但我已经尝试过了,但它不起作用。我尝试过的事情之一是我在 php.net 中找到的:
用 list() 解包嵌套数组
(PHP 5 >= 5.5.0)
PHP 5.5 添加了迭代数组数组并将嵌套数组解压缩为循环变量的功能,方法是提供 list() 作为值。
例如:
<?php
$array = [
[1, 2],
[3, 4],
];
foreach ($array as list($a, $b)) {
// $a contains the first element of the nested array,
// and $b contains the second element.
echo "A: $a; B: $b\n";
}
?>
当我使用上述内容时,我收到以下错误:
Parse error: syntax error, unexpected T_LIST in C:\wamp\www....
有什么建议吗?
据我了解,我必须以某种方式将 ID 与其他数据关联起来。
提前致谢。
【问题讨论】:
-
你需要循环来获取所有数据 while($row = mysqli_fetch_array($results, MYSQLI_BOTH)) {echo $row['id']; // 所有其他}
-
对于问题1:如果你想知道某个东西的结构,你可以使用
var_dump,例如。var_dump($row)