【问题标题】:Warning: A non-numeric value encountered for text Values警告:文本值遇到的非数字值
【发布时间】: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


【解决方案1】:

您的代码中有很多错误。 请检查 php 的语法以更好地理解 php 上的编码

$sql = "SELECT BookName, BookID FROMbooks"+ 'WHERE AuthorName='+ '"'+'$Author'+'"';

AuthorName='+ '"'+'$Author'+'"'; 不对。只是简单的使用。 `AuthorName='{$Author}'"; 完整的将是:

$sql = "SELECT BookName, BookID FROMbooks` WHERE AuthorName='{$Author}' ";

$row[BookName] => $row['BookName']$row["BookName"]

【讨论】:

  • @RiggsFolly 我不明白你在说什么。您是否阅读了评论或您的关注点是什么?
猜你喜欢
  • 2020-01-04
  • 1970-01-01
  • 2018-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多