php - 如何在同一个向量中组合 2 个查询(json_encode 和 php)
问题描述
我相信这是一个简单的问题,我想同时运行这两个查询,但我不知道如何
大家好,我相信这是一件简单的事情,我想执行这两个查询
SELECT * FROM diligencias WHERE idprocesso = '$process_id'
和
SELECT * FROM processos WHERE id = '$process_id'
仅适用于一个查询的代码:
<?php
include("../../includes/conectar.php");
if(isset($_POST['id']) && isset($_POST['id']) != "")
{
$process_id = $_POST['id'];
$qryLista = mysqli_query($con, "SELECT * FROM processos WHERE id = '$process_id'");
while($resultado = mysqli_fetch_assoc($qryLista)){
$vetor[] = array_map('utf8_encode', $resultado);
}
echo json_encode($vetor);
}
?>
解决方案
如果表没有相同的列名,您可以JOIN
使用以下查询来简单地使用它们:
SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
如果表确实具有相似的列名,您将需要为重叠名称提供列别名,例如
SELECT p.*, d.id AS diligencias_id, d.xxx AS diligencias_xxx
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = '$process_id'
请注意,在您现有的代码中
isset($_POST['id']) != ""
应该
$_POST['id'] != ""
此外,您很容易受到 SQL 注入的影响,并且应该使用准备好的查询。例如:
$process_id = $_POST['id'];
$stmt = $con->prepare("SELECT *
FROM processos p
JOIN diligencias d ON d.idprocesso = p.id
WHERE p.d = ?");
$stmt->bind_param('i', $process_id);
$qryLista = $stmt->get_result();
while($resultado = $qryLista->fetch_assoc()){
$vetor[] = array_map('utf8_encode', $resultado);
}
echo json_encode($vetor);
推荐阅读
- python-3.x - 如何加入标签列表而不将它们转换为字符串?
- javascript - 从 AJAX 发送文件并从 PHP 检索
- css - 悬停时放大图像并覆盖其他图像
- node.js - 用户有邀请时添加角色的问题
- vue.js - 使用 Quasar (Vue) 进行服务器端输入验证
- javascript - 在用户单击的位置向页面添加随机图像
- solr - 如何在 SolrJ 中指定默认搜索字段
- javascript - (Vue.js) 类绑定不适用于引用另一个数据属性的变体
- python - 需要代码让用户重复尝试
- android - kotlin android Realm DB 创建外键(链接对象)