我的数据库中有两个表:
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%'");
答案 0 :(得分:1)
您的SQL查询在某些时候会返回一个含糊不清的错误或带有名称的列,找不到产品。我在SQL查询中添加了别名。如果你不明白。你可以从这里阅读。 https://www.w3schools.com/sql/sql_alias.asp
如果你
还尝试使用 mysqli ,因为从PHP开始,不推荐使用 mysql 5.5.0
$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();
不要忘记首先通过您的数据库在数据库中测试或运行查询 UI / phpmyadmin 或 CLI ,了解您应该期待的结果。
希望这有帮助。
答案 1 :(得分:0)
您可能有几个问题。我们无法看到结果的Php迭代......这里有基本选择的一些问题...
customer. sl_no
有空间的地方......这不会有效。
$sql = ("SELECT *
FROM customer C
INNER JOIN product P
ON C.sl_no = P.SL_NO
WHERE C.sl_no = '$search'");
如果你的意思真的像那样把类似物和%回归,但这似乎是不好的形式。而且你不需要。在php之前和之后。我不是那里的大开发者,所以也许我在考虑其他事情。