我的搜索结果没有使用php代码显示
在搜索中输入statusid时,我试图显示状态描述,但除了Array[0]=>产品正在运输之外,它没有显示任何内容 我得到了3个错误 注意:未定义变量:在中搜索 C:\wamp64\www\groupproject\checkorderstatus.php第20行注意: 未定义变量:在中搜索 C:\wamp64\www\groupproject\checkorderstatus.php第28行注意: 未定义的偏移量:C:\wamp64\www\groupproject\checkorderstatus.php中的1 第36行我的搜索结果没有使用php代码显示,php,mysqli,Php,Mysqli,在搜索中输入statusid时,我试图显示状态描述,但除了Array[0]=>产品正在运输之外,它没有显示任何内容 我得到了3个错误 注意:未定义变量:在中搜索 C:\wamp64\www\groupproject\checkorderstatus.php第20行注意: 未定义变量:在中搜索 C:\wamp64\www\groupproject\checkorderstatus.php第28行注意: 未定义的偏移量:C:\wamp64\www\groupproject\checkordersta
我看到一些问题 您的ifisset$_POST['submit'];线路没什么用。。。没有包裹任何东西的积木 及 您正在尝试将$search PHP变量插入SQL。 就像“%$search%”-顺便说一句,它位于两个位置 您需要首先设置PHP变量$search。 $search=$_PHP['search'] 此外,除非您通过name='search'为输入搜索命名,否则这将不起作用。Problems 您的代码目前存在许多问题 发布到PHP的表单使用$\u POST superglobal中的name属性 因此,您在提交表单时实际上没有提交任何内容 添加名称=。。。属性来修复此问题 您的if语句大体上是冗余的 不仅仅是因为你没有按照第1点发布任何东西 您应该为用户生成的输入使用准备好的语句,以保护数据库免受攻击和/或损坏 您的代码通常令人困惑,而且布局不太好 我不确定你的方括号、ifs和函数调用的一半应该在做什么 您收到的通知是因为您从未在PHP中设置$search 解决方案 注意 这假设所有代码都在一个文件[`checkorderstatus.php]中,并且它提交给自己。 补充说明: 我不确定像“%”这样的解决方案是否是最好的。看起来你在找一个id,大概是一个数字吧?在这种情况下,我会简单地使用:
<html>
<body>
<form action="checkorderstatus.php" method="post">
<input id="search" type="text" placeholder="Type here">
<input id="submit" type="submit" value="Search">
</form>
</body>
</html>
<?php
require_once 'loginorder.php';
$conn = new mysqli($hn, $un, $pw, $db);
if ($conn->connect_error) {
die($conn->connect_error);
}
if (isset($_POST['submit']));
$query = "SELECT statusdescription FROM deliverystatus WHERE deliverystatus.statusid LIKE '%$search%'";
$result = $conn->query($query); //run the query and get the result
if (!$result) {
die($conn->error);
}
$rows = $result->num_rows;
$query = "SELECT statusdescription FROM deliverystatus WHERE deliverystatus.statusid LIKE '%$search%'";
$result = mysqli_query($conn, $query);
($row = mysqli_fetch_row($result)); {
echo $row['1'];
print_r($row);
}
?>
下面的代码遵循这个前提。但是,如果确实需要LIKE,则应更新查询,如下所示:
WHERE deliverystatus.statusid = SEARCH_ID
并更新代码中的搜索词:
WHERE deliverystatus.statusid LIKE ?
更新的HTML表单
使用PDO
这回答了你的问题吗?没有一个输入元素具有name属性。也许想读一读,是的,因为再也不会有新的贡献了。。。也许这就是他们想要的。事实上,你真的应该只能向上投票。我们生活在一个多么悲伤的世界。。。
$search = "%".$_POST["search"]."%";
<form action="checkorderstatus.php" method="post">
<input id="search" name="search" type="text" placeholder="Type here">
<input id="submit" name="submit" type="submit" value="Search">
</form>
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$mysqli = new mysqli ($hn, $un, $pw, $db);
if(isset($_POST["submit"])){
$search = $_POST["search"]; // Prepare the search term
$sql = "SELECT statusdescription FROM deliverystatus WHERE deliverystatus.statusid = ?";
$query = $mysqli->prepare($sql); // Prepare the statement
$query->bind_param("i", $search); // Bind search valus as an integer (use "s" if it's a string)
$query->execute(); // Execute the query
$query->store_result(); // Store the result
$query->bind_result($status_description); // Bind "statusdescription" to a varaible
while($query->fetch()){ // Loop through result set
echo $status_description}."<br>"; // Echo each match to a newline
}
}
$pdo = new pdo(
"mysql:host={$hn};dbname={$db}", $un, $pw,
[
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_EMULATE_PREPARES => FALSE
]
);
if(isset($_POST["submit"])){
$search = $_POST["search"]; // Prepare the search term
$sql = "SELECT statusdescription FROM deliverystatus WHERE deliverystatus.statusid = ?";
$query = $pdo->prepare($sql); // Prepare the statement
$query->execute([$search]); // Execute the query binding search as the parameter
while($result = $query->fetchObject()){ // Loop through result set
echo $result->statusddescription."<br>"; // Echo each match to a newline
}
}