簡體   English   中英

來自數據庫的數據未顯示

[英]Data from database is not showing

我怎樣才能從我的數據庫中獲取數據來顯示。 我對 PHP 或 MySQL 不是很有經驗。

我沒有收到錯誤消息,但沒有數據顯示,所以我做錯了什么?

PHP

<?php
if(strlen(trim($_POST['search'])) > 0) {

$search = "%" . $_POST["search"] . "%";
$searchterm = "%" . $_POST["searchterm"] . "%";

mysql_connect ("cust-mysql-123-03", "", "");
mysql_select_db ("weezycouk_641290_db1");
if (!empty($_POST["search_string"])) 
{ 

}  

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%$search%' AND 
lastname      LIKE '%$searchterm%'";

$result = mysql_query ($query);
echo mysql_error();
if ($result) {
while ($row = mysql_fetch_assoc($result)) {

echo $row["name"];
echo $row["lastname"];
echo $row["email"];
} ?>


<?php echo $row["name"]; ?>
<br>
<?php echo $row["lastname"]; ?>
<br>
<?php echo $row["email"]; ?>


<?php
}
}
?>

它應該是這樣的:

<?php
if(strlen(trim($_POST['search'])) > 0) {

mysql_connect ("cust-mysql-123-03", "", "");
mysql_select_db ("weezycouk_641290_db1");

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%" . mysql_real_escape_string($_POST['search']) . "%' AND lastname LIKE '%" . mysql_real_escape_string($_POST['searchstring']) . "%'";

$result = mysql_query ($query);
echo mysql_error();
if ($result) {
while ($row = mysql_fetch_assoc($result)) {

echo $row["name"];
echo $row["lastname"];
echo $row["email"];
} ?>


<?php echo $row["name"]; ?>
<br>
<?php echo $row["lastname"]; ?>
<br>
<?php echo $row["email"]; ?>


<?php
}
}
?>

mysql_real_escape_string 是為了防止 mysql 注入,這是一個嚴重的風險。

確保您正在執行的查詢返回記錄。 您可以通過添加一個 echo 語句來檢查這一點,該語句將在您的屏幕上打印查詢。 復制它並在數據庫中再次運行它。您可以使用任何 mysql 前端工具(php myadmin,mysqlyog 運行查詢。如果查詢中有任何錯誤,您可以看到。

$query = "SELECT name,lastname,email FROM contact WHERE name LIKE '%$search%' AND 
lastname      LIKE '%$searchterm%'";
//the below line will print the query on the screen
echo $query;

$result = mysql_query ($query);

暫無
暫無

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

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