繁体   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