簡體   English   中英

為什么我的PHP代碼沒有返回任何結果?

[英]Why doesn't my PHP code return any results?

運行此PHP代碼時,它可以工作,但不會返回任何結果-有人可以告訴我為什么嗎? 我已經嘗試檢查代碼,但是在運行時並不太明顯。 因此,我認為它與回顯SQL語句有關。

  <!doctype html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>Bed & Breakfast</title>
    <style type = "text/css">
        </style>
        </head>
        <body>
        <form style = "text-align:center; margin-top:200px;"method="POST" action ="">
            <span> Hotel Venue<span><input style ="margin-left:20px;" type="number" Name ="HotelVenueRef"/><br/><br/><br/>
            <input style = "margin-left:100px;" type='submit' value='HotelVenueRef' Name ="HotelVenueRef"/>
        </form>

        <?php
            if (isset($_POST['HotelVenueRef']))
            {
            require_once 'connecttodatabase.php'; 



        $sql=" select * from`B&B` where Hotel_Venue_ref =" .$_POST['HotelVenueRef'];

        $result = mysql_query($sql);

        while ($row = mysql_fetch_assoc($result))
        {


        echo'
        <td align="center">'.$row['Delegate_Student_uid'] .' </td>';

        echo'
        <td align="center">'.$row['Name'] .' </td>';

        echo'
        <td align="center">'.$row['Event_uid'] .' </td>';

        echo'
        <td align="center">'.$row['Hotel_Venue_ref'] .' </td>';


        }
}
?>
</body>
</head>

我知道注入漏洞,目前這不是問題。 只需要暫時使它工作即可。

$sql=" select * from `B&B` where Hotel_Venue_ref =  '" . mysql_escape_string($_POST['HotelVenueRef']) . "'");
    $result = mysql_query($sql);        
$result = mysql_query($sql);
if (!$result) {
    echo "Could not successfully run query ($sql) from DB: " . mysql_error();
    exit;
}
if (mysql_num_rows($result) == 0) {
    echo "No rows found, nothing to print so am exiting";
    exit;
}

在while語句之前添加此代碼

我覺得您的問題是由於您有2個具有相同名稱的輸入元素(HotelVenueRef)而導致的。

這是您的表單,我已經清理了格式並刪除了一些樣式屬性,因為它們與問題無關,並且沒有它們就更干凈。 我還將所有屬性名稱都小寫(因為一致性是關鍵!!)

<form "method="POST" action ="">
    <span>Hotel Venue<span>
    <input type="number" name="HotelVenueRef"/>
    <br/>
    <br/>
    <br/>
    <input type="submit" value="HotelVenueRef" name="HotelVenueRef"/>
</form>

an <input type="submit"/> that have the same name. 問題是您同時具有同名的<input type="number"/> <input type="submit"/>

當表單提交給PHP時, $_POST數組將填充鍵-值對,其中鍵基於html input元素的name屬性,並且值是該輸入的值。

假設您將輸入的數字設置為5,然后提交表單。

PHP現在將自動生成$_POST數組。 在幕后,它做了類似的事情

$_POST['HotelVenueRef'] = 5;

基於數字輸入中的值。 然后它去做類似的事情

$_POST['HotelVenueRef'] = 'HotelVenueRef';

這是您沒有注意到的部分! 提交按鈕還作為表單的一部分提交給PHP,它的值現在將覆蓋您感興趣的值。

您未獲得任何結果的原因是查詢解析為:

SELECT * FROM `B&B` WHERE `Hotel_Venue_ref`='HotelVenueRef'

用提交按鈕的值,而不是數字輸入的值。

您可以通過刪除“提交”按鈕上的“名稱”屬性來解決您的問題,這將阻止其值與表單的其余部分一起提交給PHP。 您還可以選擇重命名提交按鈕。

暫無
暫無

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

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