【发布时间】:2018-12-29 05:30:43
【问题描述】:
我对此真的很陌生,正在做这个作业,我应该在我的数据库中为作者创建一个下拉列表,当用户将鼠标悬停在其中一位作者上时,他们所写的书籍会显示在同一页面上的一个区域,现在我尝试了所有我知道的,但我一直收到这个错误。
警告:在第 21 行的 C:\xampp\htdocs\demo\books.php 中遇到非数字值
即使我的数据库中的数据都是文本,也不需要任何数值。
我就这样提交了作业,但我仍然想知道我做错了什么,非常感谢帮助
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "books";
// variables used in script
$Author =$_REQUEST["Author"];
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "SELECT BookName, BookID FROM `books`"+ 'WHERE AuthorName='+ '"'+'$Author'+'"';
$sqlData= mysqli_query($conn, $sql);
if($sqlData)
{
while($row =mysqli_fetch_assoc($sqlData)){
echo" <table style='width:100%'>"+ "<tr> <th>BookName</th> <th>BookID</th> <th>AuthorName</th> </tr>"+"<tr> <td>"+ $row[BookName] +
"</td><td>"+$row[BookID] +"</td> </tr>";
}
echo "</table>" ;
}
?>
这是我的下拉列表所在的整个代码
<!DOCTYPE html>
<html>
<head>
<meta charset = "utf-8">
<title>Books</title>
<style >
label { width: 5em; float: left; }
</style>
<script >
function ShowBook_Info(Author) {
request=new XMLHttpRequest();
request.onreadystatechange=function() {
if (request.readyState==4 && request.status==200) {
document.getElementById("books").innerHTML=request.responseText;
}
}
request.open("GET","books.php?Author="+Author,true);
request.send();
}
</script>
</head>
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "books";
$sql="SELECT AuthorName FROM `books`";
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sqlData= mysqli_query($conn, $sql);
if($sqlData){
echo "<select onchange='ShowBook_Info(this.value)'>" ;
while($row =mysqli_fetch_assoc($sqlData)){
$Value=$row["AuthorName"];
echo "<option value=";
echo '$value'.'">';
echo $row["AuthorName"];
echo "</option>";
}
echo "</select>" ;
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
?>
<body onload="ShowBook_Info('Harper Lee');" >
<div style="color:blue;" id='books'>
This is a test text
</div>
</form>
</body>
</html>
【问题讨论】:
-
+不是 PHP 中的字符串连接运算符。 -
.是。但是您应该知道,因为您在 ` 中使用了它。 mysqli_connect_error())`. -
有趣,谁对
opinion based投了赞成票:) -
将
ini_set('display_errors', 1); ini_set('log_errors',1); error_reporting(E_ALL); mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);添加到脚本的顶部。这将强制任何mysqli_错误 -
@RiggsFolly 如果你想要
"text"."text"或"text" . "text":-)
标签: php html ajax web web-deployment