PHP/MySQL:根据数组ID打印数组(查询结果)中的特定值
我使用以下PHP行从MySQL表中查询数据。 我想将查询结果存储在一个数组中,然后在同一页上根据其ID打印该数组中的特定值 我是PHP新手,希望有人能帮我解释一下我做错了什么或遗漏了什么。我假设我错误地创建了数组 我的PHP(相关部分,变量在本页前面定义):PHP/MySQL:根据数组ID打印数组(查询结果)中的特定值,php,arrays,mysqli,associative-array,Php,Arrays,Mysqli,Associative Array,我使用以下PHP行从MySQL表中查询数据。 我想将查询结果存储在一个数组中,然后在同一页上根据其ID打印该数组中的特定值 我是PHP新手,希望有人能帮我解释一下我做错了什么或遗漏了什么。我假设我错误地创建了数组 我的PHP(相关部分,变量在本页前面定义): $con = mysqli_connect($host_name, $user_name, $password, $database); $result = mysqli_query($con, "SELECT id, $col FROM
$con = mysqli_connect($host_name, $user_name, $password, $database);
$result = mysqli_query($con, "SELECT id, $col FROM $table ORDER BY id");
$rows = array();
if($result)
{
while($row = mysqli_fetch_array($result))
{
print_r($row);
}
}
var_dump($rows);
Array ( [0] => testid1 [id] => testid1 [1] => testval1 [en] => testval1 ) Array ( [0] => testid2 [id] => testid2 [1] => testval2 [en] => testval2 ) Array ( [0] => testid3 [id] => testid3 [1] => testval3 [en] => testval3 ) array(0) { }
我的当前阵列(如上打印时):
$con = mysqli_connect($host_name, $user_name, $password, $database);
$result = mysqli_query($con, "SELECT id, $col FROM $table ORDER BY id");
$rows = array();
if($result)
{
while($row = mysqli_fetch_array($result))
{
print_r($row);
}
}
var_dump($rows);
Array ( [0] => testid1 [id] => testid1 [1] => testval1 [en] => testval1 ) Array ( [0] => testid2 [id] => testid2 [1] => testval2 [en] => testval2 ) Array ( [0] => testid3 [id] => testid3 [1] => testval3 [en] => testval3 ) array(0) { }
示例:例如,我想打印此数组中ID为=“testid2”的项的值。 在这种情况下,打印值应为“testval2” 多谢各位, Mike将数据存储为:
for
(
$set = array();
$row = $result->fetch_assoc();
// use value of `id` as the key in your `$set`
$set[$row['id']] = $row
);
print_r($set);
// later:
$id = 1;
echo $set[$id]['en'];
// or
echo $set[$id][$lang];
您只需使用
fetch_all()
然后使用列搜索即可
$con = mysqli_connect($host, $username, $password, $database);
$result = mysqli_query($con, "SELECT id, $lang FROM $table ORDER BY id");
$set = $result->fetch_all(MYSQLI_ASSOC);
$key = array_search('testid2', array_column($set, 'id'));
echo $set[$key]['en'];
您可以使用with将查询输出(行和列)转换为键值格式(键为id
,值为en
列):
print\r
不创建数组,而是输出数组或对象中的所有值。更改为$rows[]=$row代码>在中,而。。。或者直接使用。@user3783243:谢谢。您是否有一个示例或链接来演示如何创建数组以及如何从中打印值?print\r($set['1'])代码><代码>打印($set['1']['id'])代码>?