2016-08-03 125 views
-1

我有一個搜索表單,用戶將插入他/她的代碼和名稱&該代碼的電話將顯示在一個工作正常的表格(感謝堆棧溢出)。從數據庫顯示數據而不使用表單標籤?

<form action="list25.php" method="post"> 
    Search By code:<input type="text" name="code"><br><br> 


    <table border="0" width="100%" cellpadding="0" cellspacing="0" id="product-table"> 
     <tr> 
     <th class="table-header-repeat line-left"><a href="">Name</a></th> 
     <th class="table-header-repeat line-left"><a href="">telephone</a></th> 
     </tr> 
     <?php 
     if (isset($_POST['search'])) { 
     $code = $_POST['code']; 
     $connect = mysqli_connect("localhost", "root", "", "sahmiye"); 
     $query = "select * from balance where code = $code "; 
     $result = mysqli_query($connect, $query); 

     if (mysqli_num_rows($result) > 0) { 
      while ($row = mysqli_fetch_array($result)) { 
      ?> 
      <tr> 
       <td><?php echo $row['name']; ?></td> 
       <td><?php echo $row['telephone']; ?></td> 
      </tr> 
     <?php 
     } 
    } else { 
     echo "Undifined ID"; 
     $name = ""; 
     $telephone = ""; 
    } 

    mysqli_free_result($result); 
    mysqli_close($connect); 
    } else { 
    $name = ""; 
    $telephone = ""; 
    } 
    ?> 
    </table> 
    <br><br> 
    <input type="submit" name="search" value="Find">     
</form> 

但是我有一個第二完全不同的形式以及與當用戶在該第二形式寫入他/她的代碼,我需要的CODE的NAME &電話然後被顯示內部文本框,並且用戶將隨後填寫表格的其餘部分,然後提交,以便將其保存到數據庫中。

問題是我知道我不能有一個窗體內的形式,但有沒有辦法讓我運行我的第一個搜索表單,上面顯示出來使用窗體,以便我可以在我的第二個窗體中具有相同的功能,在給出CODE後,它將填寫帶有該代碼的NAME & TELEPHONE的文本框?

+0

字段「code」的數據類型是什麼? – Saty

+0

數據類型是varchar –

+0

您需要在$ code周圍引用'code ='$ code''。更好地使用準備聲明! – Saty

回答

4

從數據庫中顯示數據而不使用表單標籤?

您需要使用GET數組並使用href中的參數。

I.e.並檢查它是否設置爲空而不等於「東西」:

<a href="file.php?var=John">Name</a> 

然後使用帶參數的GET數組。

if(!empty($_GET['var']) && $_GET['var'] == 'John'){ 

    // do your thing to search for the string "John", as an example. 
    // ATT'N: John and john in the database are two different animals. 

} 

對其他href使用相同的格式。

旁註:從<form></form>標記中刪除href的標記,因爲它可能會造成一些破壞。

當它是一個字符串時,您還需要在查詢中引用該變量。

即:

$query = "select * from balance where code = '$code' "; 

...如果$code是一個字符串。

但是,如果查詢包含MySQL將會投訴的字符(如John's Bar & Grill),則會引發錯誤,因此需要準備好的語句/轉義該值,並有助於防止同時發生可能的SQL注入。

參考:


編輯:

去了這個問題又和TBH有點複雜,使用會議將什麼東西在使用爲了保持價值。

...然後檢查是否有任何會話陣列(多個)是/設定和不爲空。

  • N.B:session_start();必須駐留使用會話,以便所有頁面這個工作裏面。輸入也可以包含與會話相關的代碼和「如果設置/不爲空」。否則,你會得到關於他們未定義的錯誤。