php - 有很多值的数组

标签 php mysql sql arrays json

我有一张表格(见下图),其中包含一些不同草药的波兰语和拉丁语名称。

我想获得一个 $herbs[] 数组,其中每一行都包含一个数组,例如:

$herbs = [[mieta pieprzowa, mentha piperita],[kozlek lekarski, valeriana medicinalis]...]

接收latin_name的代码是这样的,我应该改什么?

<?php
$connection = new mysqli("127.0.0.1","root","password","herbarium");
if ($connection→connect_error) die("Fatal Error");
$herb = $_GET['q'];
$query = "SELECT * FROM herbs WHERE (latin_name LIKE '%$herb%') OR (polish_name LIKE '%$herb%')";
$result = $connection→query($query);
$data = array();
while ($row=$result→fetch_assoc()){
$data[] = $row['latin_name'];
}
echo json_encode($data);
?>

my table

最佳答案

我相信您正在寻找 mysqli_fetch_all() + 对您的 SQL 查询进行一些小改动。

在下面的示例中,我将您的查询更改为仅获取两列(拉丁语和波兰语名称),而不是使用 while() 循环,您可以一次获取所有记录(直到您不需要处理这些数据)。

$connection = new mysqli("127.0.0.1","root","password","herbarium");
if ($connection→connect_error) die("Fatal Error");
$herb = $_GET['q'];
$query = "SELECT latin_name, polish_name FROM herbs WHERE (latin_name LIKE '%$herb%') OR (polish_name LIKE '%$herb%')";
$result = $connection→query($query);
$data = mysqli_fetch_all($result);
echo json_encode($data);

它应该返回一个包含key=>value 结果的数组,如下所示:

[
  [
    'latin_name' => 'Abc',
    'polish_name' => 'Abc_PL'
  ],
  // ...
]

这可能比只返回值更好一些。

关于php - 有很多值的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52060010/

相关文章:

mysql - 体育近史

sql - 使用 INNER JOIN 更新 SQL Server 中的多个表

javascript - HTML Javascript $_post 响应显示 PHP header 位置页面并且不转发

javascript - 使用 PHP/Javascript 创建图像,在图像周围提供灰色输出

javascript - 更改 DatePicker JQuery 的日期格式

php - 如果列存在则mysql更新表(foreach)

mysql - 如何删除 MySQL 中 varchar 字段开头和结尾的制表符?

python - 使用python在mysql查询中插入错误

mysql - 如果 2 个表(例如 B 和 C)中的一个存在值,我如何使用表 A 中的值插入或更新数据?

javascript - Websql插入查询