首页 > 解决方案 > 从 mysql 表中选择并打印 2 个单独的行

问题描述

我有一个小脚本,可以从 2 个单独的表中加入 2 行并将它们打印在一起。

但是,我想从 2 个单独的表中一一拉出并打印这 2 个单独的行(以 css 分别设计每行结果)而不是 JOIN

sql JOIN 过程:

SELECT  b.topic, a.message,  a.threadID 
FROM wbb1_post a
JOIN wbb1_thread b ON b.threadID = a.threadID

整个脚本index3.php

<?php
//header('Content-Type: text/html; charset=utf-8');
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "dbname";
$id =(int)$_GET['id'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
} 
mysqli_set_charset($conn,"utf8");


$sql = "SELECT  b.topic, a.message,  a.threadID 
FROM wbb1_post a
JOIN wbb1_thread b ON b.threadID = a.threadID 
 WHERE a.threadID = $id";
//print_r
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $obj[] = $row;
    }
} else {

}
$conn->close();
?>

test1.php页面代码:

<div>
<?php
$_GET['id'] = 4;
include 'index3.php'  ;?>
</div>

要单独打印 2 行结果,我想到了这样的事情:

index3.php代码:

$sql = "SELECT  a.message,  a.threadID 
FROM wbb1_post a
 WHERE a.threadID = $id";

$sql2 = "SELECT  b.topic, b.threadID
FROM wbb1_thread b 
WHERE b.threadID = $sub";

//print_r
$result = $conn->query($sql);
$result = $conn->query($sql2);
if ($result->num_rows > 0) {
    // output data of each row
    while($row = $result->fetch_assoc()) {
        $obj[] = $row;
    }
} else {

}
$conn->close();
?>

test1.php代码:

<div>
<?php
$_GET['sub'] = 4;
include 'index3.php'  ;?>
</div>
<br><br>
<div>
<?php
$_GET['id'] = 4;  
include 'index3.php' ;?>
</div>

但我得到的只是主题行 ['id'] 两次。

标签: phpmysqlsql

解决方案


使用联合

$sql = "SELECT a.message AS Val,  a.threadID 
FROM wbb1_post a WHERE a.threadID = $id
UNION ALL 
SELECT b.topic AS Val,  b.threadID 
FROM wbb1_post a WHERE b.threadID = $id";

推荐阅读