php/mysql/ajax 加入查询并访问结果变量

标签 php mysql ajax join

我有一个连接两个表的 mysql 数据库的查询。在第一个表中,它只是根据 id 提取记录。对于第二个表,可能存在也可能不存在基于第一个表中的值的匹配。我想获得匹配项(如果有的话),否则,结果记录集的这些值可能是空的。

该查询似乎生成了正确数量的记录。然而,当我尝试访问一些应该存在的变量的值时,我没有得到任何东西,要么因为我可能调用了错误的名称,要么它们不在记录集中。我对 mysql 查询有点模糊,所以非常感谢任何建议..

表1公园

id | name | stateid 

表2参观过的公园

id | visited | parkid | userid

PHP 脚本

$sql = "SELECT * 
FROM `parks` p
LEFT JOIN `parksvisited` pv
ON p.id = pv.parkid
WHERE p.stateid = '44'"

运行查询...

while($row = mysql_fetch_array($res))
{
if ($row['visited'] == 1) {
$visited = 1; }  
else {
$visited = 0; }
<a href="javascript:void(0);" onclick="loadParks(\''.$row['stateid'].'\',\''.$row['p.id'].'\',\''.$visited.'\');">Visited</a>

}

基本上,我得到了 stateid,但我没有得到 p.id 或访问过。可能是我把它们命名错误,或者它们可能以某种方式被排除在结果之外......感谢您的任何建议。

最佳答案

p.id 可能会丢失,因为 p.idpv.id 都将作为 id 返回,而不是 p.idpv.id。试试这个:

SELECT p.id pid,
       p.*,
       pv.id pvid,
       pv.*
FROM `parks` p
LEFT JOIN `parksvisited` pv
ON p.id = pv.parkid
WHERE p.stateid = '44'

看起来您也没有从原始查询中的 pv 中选择任何内容,而只是选择 p。看看这个新查询是否也处理visited。并确保将 pid 引用为 $row['pid'],而不是 $row['p.id']

关于php/mysql/ajax 加入查询并访问结果变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11414262/

相关文章:

javascript - 实现 ajax 时遇到问题。 if 语句不起作用

javascript - 加载文档时填充选择框

php mysql从用户输入动态选择查询

MySQL 慢双连接

php - 使用 jquery 用 $.post 更新 mysql 时出错

jquery - 通过 AJAX 将数据传递到 Laravel Controller

php - Firebase 云消息传递 PHP 集成发送推送通知

php - Ajax 从 mySQL 数据库中检索数据并创建表

php - n 个数组(或对象)中唯一元素的算法

php - 在 Mysql 数据库 PHP 中搜索多个 MySql 表