我因为这个问题被阻止了两天。
我想在我的";info_array";。
http://www.noelshack.com/2022-32-4-1660224518-type-miss.png
Td’s";键入"警报";具有缺少的信息,该信息调用另一个表。但我无法解释为什么。客户端的所有信息都调用表客户端;键入"警报";调用type_alarme的表。它们之间没有柱连接。这就是为什么我使用";内部联接";在我的PDO查询中。
我搜索了不同的方法来连接两个表的结果,但没有成功。
这里是我这部分的HTML代码(它涉及"td id="alarme_type_client"gt;</td"(:
<table id="info_client" border=1>
<thead>
<tr>
<th>#</th>
<th>Nom</th>
<th>Prénom</th>
<th>Date de naissance</th>
<th>Adresse</th>
<th>Adresse mail</th>
<th>Téléphone</th>
<th>Age</th>
<th>Type d'alarme</th>
</tr>
</thead>
<tbody>
<tr id=<?php echo $client["id_client"]; ?>>
<td id="id"></td>
<td id="nom"></td>
<td id="prenom"></td>
<td id="date" name="date"></td>
<td id="adresse"></td>
<td id="mail"></td>
<td id="tph"></td>
<td id="age"></td>
<td id="alarme_type_client"></td>
<td><button data-id="<?php echo $client["id_client"]; ?>" type="button" class="hide_client">Masquer client</button></td>
</td>
</tr>
</tbody>
</table>
我的ajax功能:
$(".info").click(function () {
var datas = {
cmd: 'id_client',
id_client: $(this).attr('data-id'),
};
$.ajax({
type: "GET",
url: "function.php",
data: datas,
}).done(function (sendinfo) {
$('#alarme_type_client').html(sendinfo.nom_type_alarme),
console.log(sendinfo.nom_type_alarme);
});
});
我的PHP函数:
function read_type(){
global $db;
$id_client = $_GET['id_client'];
$sql = "SELECT nom_type_alarme FROM type_alarme
INNER JOIN alarme on type_alarme.id_type_alarme = alarme.id_type_alarme
INNER JOIN client ON alarme.id_client=client.id_client
WHERE id_client = :id_client";
$query = $db->prepare($sql);
$query->bindParam(':id_client', $id_client, PDO::PARAM_STR);
$query->execute();
$sendinfo = $query->fetch();
print_r($sendinfo);
return ($sendinfo);
}
http://www.noelshack.com/2022-32-4-1660225072-resultat-sql.png
在Heidi SQL(Laragon(中,查询是有效的。我使用2个内部连接,因为警报是我的主表,它结合了我需要的信息
如果我擦除";type_alarme.nom_type_alarme"在查询的开头。
有什么想法吗?我找不到解决办法。
谢谢你的帮助。
这是因为您根本没有加入type_alarme
表。为什么?因为在SQL查询中,在执行INNER JOIN type_alarme
之前有一个分号;
。因此查询在那里被中断,因此SELECT
子句中的type_alarme.nom_type_alarme
不知道是哪个表和列。
删除分号,它就会起作用。