亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

試圖從 url 之后比較數據庫中的值?

試圖從 url 之后比較數據庫中的值?

PHP
一只甜甜圈 2022-01-08 17:46:17
我正在嘗試從數據庫中獲取一個值并將其與設置的任何 id href 進行比較。但什么也沒有發生。<?php$servername = "127.0.0.1";$username = "root";$password = "";$dbname = "products";$conn = new mysqli($servername, $username, $password, $dbname);if ($conn->connect_error) {    die("Connection failed: " . $conn->connect_error);}$sql = "SELECT id FROM items";$result = $conn->query($sql);if ($result->num_rows > 0) {    while($row = $result->fetch_assoc()) {        $id =  $row["id"];        echo <<<EOT                <br>                <form action='index.php?$id' method="POST">                    <input type='submit' name="submit" value="more">                </form>        EOT;    }} else {    echo "0 results";}if (isset($_POST['submit'])) {    while($row = $result->fetch_assoc()) {        if ($_SERVER["QUERY_STRING"] == $row) {            echo 'you clicked something from the database' . $id;        }    }}$conn->close();?>嘗試最終從數據庫中獲取一個值,然后在單擊更多 href 時單獨顯示描述。
查看完整描述

2 回答

?
小怪獸愛吃肉

TA貢獻1852條經驗 獲得超1個贊

您將永遠不會看到“您從數據庫中單擊了某些內容”消息,因為您已經在第一個循環中從查詢中獲取了結果,請檢查這個問題why-cant-i-loop-twice-on-mysqli-fetch-array-results


一種選擇是將結果保存在數組中,以便稍后在第二個循環中使用


//your first loop

$savedRows = [];

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

    $savedRows[] = $row;

    //the rest of your code

}


// ......

// your second loop

if (isset($_POST['submit'])) {

    foreach($savedRows as $row) {

        if ($_SERVER["QUERY_STRING"] == $row['id']) {

            echo 'you clicked something from the database ' . $id;

        }

    }

}

另請注意,如果這是您的實際代碼,則需要將 herodoc 的結束標識符作為其 line 上EOT; 的第一個字符,否則文件的其余部分將成為此字符串的一部分


查看完整回答
反對 回復 2022-01-08
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

你的答案有很高的時間復雜度你可以很容易地讓你 SQL查詢

SELECT id FROM items WHERE id = ?

如果行號是0這意味著沒有記錄,id 您可以從中檢查行號num_rows


查看完整回答
反對 回復 2022-01-08
  • 2 回答
  • 0 關注
  • 132 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號