Py学习  »  DATABASE

PHP MySQL查询2个表以获取数据,并合并成一个json数组用于echo?

James Bargon • 4 年前 • 842 次点击  

如何将这两个查询组合成一个php数组,以json格式回显ajax请求?每一个声明都被确认是单独工作的。
看起来像:

 'fname' => $fname,
 'lname' => $lname,
'gender' => $gender,
  'city' => $city,
 'state' => $state
   'bio' => $bio


PHP MySQL请求

<?php
include 'sqlconnection.php';
$conn = OpenCon();

$stmt = $conn->prepare('SELECT fname,lname,gender,city,state FROM users WHERE uid='.$_POST['info']);
$stmt->execute();
$stmt->bind_result($fname,$lname,$gender,$city,$state);
while($stmt->fetch()) {
    $output=array(
        'fname' => $fname,
        'lname' => $lname,
        'gender' => $gender,
        'city' => $city,
        'state' => $state
    );
}
$json=json_encode($output);
echo $json;

$stmt = $conn->prepare('SELECT bio FROM profile WHERE uid='.$_POST['info']);
$stmt->execute();
$stmt->bind_result($bio);
while($stmt->fetch()) {
    $output=array(
        'bio' => $bio
    );
}
$json=json_encode($output);
echo $json;

$stmt->close();
CloseCon($conn);
?>
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/55752
 
842 次点击  
文章 [ 1 ]  |  最新文章 4 年前
Nick
Reply   •   1 楼
Nick    4 年前

你可以简单地 JOIN 你的两张桌子 uid 将两个查询合并为一个。注意,您没有正确使用准备好的语句,应该在 然后使用 bind_param 附加值:

$stmt = $conn->prepare('SELECT u.fname,u.lname,u.gender,u.city,u.state,p.bio
                        FROM users u
                        JOIN profile p ON p.uid = u.uid
                        WHERE u.uid=?');
$stmt->bind_param('s', $_POST['info']);
$stmt->execute();
$stmt->bind_result($fname,$lname,$gender,$city,$state,$bio);
while($stmt->fetch()) {
    $output=array(
        'fname' => $fname,
        'lname' => $lname,
        'gender' => $gender,
        'city' => $city,
        'state' => $state,
        'bio' => $bio
    );
}

profile 桌子,你应该用 LEFT JOIN 而不是 .