簡體   English   中英

PHP執行多個查詢和while循環

[英]PHP execute multiple queries and while loop

我在執行多個查詢時遇到一些困難。

我一直在閱讀有關mysqli_multi_query但是我不確定如何在現有代碼中實現它。

理想情況下,我需要查詢兩個單獨的表並在同一while循環中顯示結果。 這是應該做的事,還是我要離開?

我當前的代碼是;

$id = $_GET['id'];

//setup first query
$query = ("SELECT pub_id, title FROM vw_ft_search WHERE pub_id = $id");

//setup second query
$query = ("SELECT phys_desc FROM vw_physical_descriptions WHERE publication_id = $id");

$result = $conn->query($query);

if($result === false) {
    trigger_error('Wrong SQL: ' . $query . ' Error: ' . $conn->error, E_USER_ERROR);
}

    while($row = $result->fetch_assoc()){

        //result from first query
        if (!empty($row['pub_id'])){ echo $row['pub_id'] . '<br />'; }
            else echo "no information" .'<br />';

        //result from first query
        if (!empty($row['title'])){ echo $row['title'] . '<br />'; }
            else echo "no information" .'<br />';

        //result from second query here

    }

這是新手,因此感謝您的幫助/建議。

假設這些是1:1記錄,則應嘗試JOIN查詢。 另外,我修復了您的SQL注入

$id = $conn->real_escape_string($_GET['id']);
$query = "SELECT vfs.pub_id, vfs.title, vpd.phys_desc
    FROM vw_ft_search vfs
        INNER JOIN vw_physical_descriptions vpd ON vfs.pub_id = vpd.publication_id
    WHERE vfs.pub_id = $id";

最好的方法是使用join語句:

SELECT pub_id, title, phys_desc FROM vw_ft_search 
JOIN vw_physical_descriptions ON vw_physical_descriptions.publication_id=vw_ft_search.pub_id
WHERE vw_ft_search.pub_id = $id"

JOIN將表混合在一起,ON告訴服務器如何匹配數據。

可以$result = $conn->query($query); 處理多個查詢? 也許你應該使用

$result = $conn->multi_query($query);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM