Php 只给我看一个结果?
我的数据库中有两个表,它们是:Php 只给我看一个结果?,php,mysql,Php,Mysql,我的数据库中有两个表,它们是: customer product 客户表: customerID sl_no(pk) name email phone 产品表: product_id(pk) sl_no(fk) product price 当我运行此查询时,它只显示一个结果: $sql = (" SELECT * FROM customer INNER JOIN product WHERE customer. sl_no LIKE '%$search%' OR product. sl_no
customer
product
客户表:
customerID
sl_no(pk)
name
email
phone
产品表:
product_id(pk)
sl_no(fk)
product
price
当我运行此查询时,它只显示一个结果:
$sql = (" SELECT * FROM customer INNER JOIN product WHERE customer. sl_no LIKE '%$search%' OR product. sl_no LIKE '%$search%'");
你可能有几个问题。因为我们看不到Php迭代的结果。。。。下面是一些与基本选择有关的问题
客户。sl_no
有一个空格。。。这行不通如果你真的是指喜欢,那么把喜欢和%放回去,但这似乎是糟糕的形式。而你不需要。php中变量前后。我在那里不是一个大的开发人员,所以我可能在考虑其他事情。您的sql查询在某个时候会返回一个不明确的错误,或者返回一个包含名称的列,找不到产品。我在SQL查询中添加了别名。如果你不明白。你可以从这里读起来 如果你 还可以尝试使用mysqli,因为从PHP开始,mysql就被弃用了 5.5.0
$servername=“yourhost”;
$username=“username”;
$password=“password”;
$dbname=“myDB”;
//创建连接
$conn=newmysqli($servername、$username、$password、$dbname);
//检查连接
如果($conn->connect\u错误){
die(“连接失败:”.$conn->connect\U错误);
}
$sql=(“选择customer.name作为名称,customer.email作为电子邮件,customer.phone作为电话,product.product作为产品名称,product.price作为来自客户的价格,其中customer.sl_no=product.sl_no和customer.sl_no类似“%$search%”或product.sl_no类似“%$search%”);
$result=$conn->query($sql);
如果($result->num_rows>0){
//每行的输出数据
而($row=$result->fetch_assoc()){
回声“客户””;
回显“客户名称:.”行[“名称”]。“
”;
回显“客户电子邮件:.”行[“电子邮件”]。“
”;
回显“客户电话:.”行[“电话”]。“
”;
回声“---”;
回声“产品””;
echo“产品名称:”.$row[“产品名称”]。“
”;
回音“产品价格:.”行[“价格”]。“
”;
回声“----”;
回声“---”;
}
}否则{
回显“0结果”;
}
$conn->close();
别忘了首先通过您的数据库测试或运行查询
UI/phpmyadmin或CLI以了解您应该期望的结果
希望这有帮助。如何获取结果如何运行此查询?很可能你忘了循环。说。即使是这样也不安全$result\u set=mysql\u查询($sql);if($row=mysql\u fetch\u数组($result\u set)){internal JOIN需要一个
on
子句。on customer.sl_no=product.sl_no
在where
之前,然后你只需要where customer.sl_no像“%$search%”
然后你必须迭代结果集。就目前而言,我很惊讶你在没有on子句的情况下使用internal JOIN得到任何结果或者没有意义。如果SL_no in product是一个FK,它就不可能存在,除非它在customer表中是pk。因此在product中搜索它没有意义。那么我猜问题在于PHP中的循环逻辑。我认为您需要纠正不止一个问题…SQL中的一些问题,PHP中的一些问题。
$sql = ("SELECT *
FROM customer C
INNER JOIN product P
ON C.sl_no = P.SL_NO
WHERE C.sl_no = '$search'");
$servername = "yourhost";
$username = "username";
$password = "password";
$dbname = "myDB";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$sql = (" SELECT customer.name AS name, customer.email AS email, customer.phone AS phone, product.product AS product_name, product.price AS price FROM customer, product WHERE customer.sl_no = product.sl_no AND customer. sl_no LIKE '%$search%' OR product. sl_no LIKE '%$search%' ");
$result = $conn->query($sql);
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
echo "<strong>CUSTOMER</strong>";
echo "Customer Name: " . $row["name"]."<br>";
echo "Customer email: " . $row["email"]."<br>";
echo "Customer phone: " . $row["phone"]."<br>";
echo "----";
echo "<strong>PRODUCT</strong>";
echo "Product Name: " . $row["product_name"]."<br>";
echo "Product Price: " . $row["price"]."<br>";
echo "-----";
echo "----";
}
} else {
echo "0 results";
}
$conn->close();