我创建了一个从用户输入的HTML表单,现在我需要在Mysql数据库中搜索用户输入的名称,并打印与该用户输入相关的详细信息,该名称存储在Mysql数据库中。
下面的脚本是创建HTML表单以获取用户输入,保存为" ProcessTracking.html"。
<form action="details.php" method="get"/>
<h3 align="center"><FONT color=#CCFF66>ENTER SO NUMBER</h3>
<p align="center">
<input type="text" id="SO_Number" name="SO_Number"/>
</p>
<div style="text-align:center">
<button type="submit" value="SEARCH">
<img alt="ok" src=
"http://www.blueprintcss.org/blueprint/plugins/buttons/icons/tick.png"/>
SEARCH
</button>
</form>
在PHP脚本下面命名为&#34; details.php&#34;
<?php
$userinput = $_GET['SO_Number'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ProcessTrackingSystem";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_errno) {
printf("Connect failed: %s\n", $conn->connect_error);
exit();
}
$result = mysqli_query($conn, "SELECT * FROM ProcessTrackingSystem.ProcessDetails WHERE SO_Number = '$userinput'") or die(mysqli_error($conn));
$row = mysqli_fetch_assoc($result);
#printf ("SO_Number: %s \n",$row["SO_Number"])
#print_r($row);
printf ("SO_Number:");
printf($row["SO_Number"]);
printf ('--||--');
printf ("Name:");
printf($row["Name"]);
printf ('--||--');
$conn->close();
?>
答案 0 :(得分:1)
您将mysql
和mysqli
api混合在一起。尝试使用其中之一。
注意:mysql
api自php 5.5.0起已被删除
答案 1 :(得分:1)
首先,您没有在SQL语句的WHERE中使用$ _GET [&#39; SO_Number&#39;]参数。其次你使用的是mysql和mysqli,它们完全不同并且不能一起工作。有关用法,请参阅mysqli_fetch_row()和mysqli_query()。也可以使用print_r($row);
。
以下是更正后的代码:
<?php
$userinput = $_GET['SO_Number'];
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ProcessTrackingSystem";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_errno) {
printf("Connect failed: %s\n", $conn->connect_error);
exit();
}
$result = mysqli_query($conn, "SELECT * FROM ProcessTrackingSystem.ProcessDetails WHERE SO_Number = '$userinput'") or die(mysqli_error($conn));
$row = mysqli_fetch_row($result);
print_r($row);
$conn->close();
?>
编辑:添加了代码示例。
答案 2 :(得分:0)
第一次错误
正如saty所说,这是因为你在这一行中有语法错误
print_r"$row";
应为print_r($row)
第二次错误
你正在混合mysql
&amp; mysqli
我不确定你的桌子。
推荐:
我建议你打开 error_reporting ,如果不是那些错误将出现在errors_log
文件中
另外,对于调试你的sql ,你可以先构建你的sql查询,在phpmyadmin或相关工具中运行查询,然后激活查询并完成此操作。
注意:
如果您在线使用这些代码,则error_log
将位于您执行此页面的目录中。 (但根据您的托管情况,它可能会有所变化)
如果您在本地计算机上运行,则错误日志可能会根据您使用的服务器找到...
您可以通过phpinfo
打印php的配置找到并找到
error_log
答案 3 :(得分:0)
愿这件事能解决你的问题
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "ProcessTrackingSystem";
$so = $_POST['SO_Number'];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$stmt = $conn->prepare("SELECT * FROM ProcessDetails WHERE SO_Number=$so");
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
print_r($row[SO_Number]);
$conn->close();
?>