【问题标题】:Select data from SQL database and display in table does not work从 SQL 数据库中选择数据并在表中显示不起作用
【发布时间】:2013-08-08 14:39:10
【问题描述】:

我不明白为什么这不起作用,我已经坚持了很长时间并尝试了许多不同的替代方案,但它只是不打印数据库中的数据。

目前我只是想打印 id,但最终我想打印数据库中的大部分数据(不包括哈希)。

这是我的代码:

<!DOCTYPE html>
<html>
    <head>
        <title>Staroids Leaderboard</title>
    </head>
    <body>
    <table border=1px>
        <thead>
            <tr>
                <td>name</td>
                <td>score</td>
            </tr>
        </thead>
        <tbody>
        <?php
            $connect = mysql_connect("localhost","root", "password");
            if (!$connect) {
                die(mysql_error());
            }
            mysql_select_db("staroids");
            $results = mysql_query("SELECT id FROM scores");
            while($row = mysql_fetch_array($results)) {
            $name = $row['id']
            ?>
                <tr>
                    <td><?php echo '$name'?></td>

                </tr>

            <?php
            }
            ?>
        </tbody>
        </table>
    </body>
</html>

下图显示了它在 html 中的样子:

此图显示本地主机中的数据库,您可以看到有很多数据,但似乎没有打印名称?!

【问题讨论】:

    标签: php mysql sql html-table


    【解决方案1】:

    在可能的地方更正你的语法

    $name = $row['id'];   //Put ; here
    <?php echo $name;?>   //Remove quotes and put ;
    

    从数据库中选择名称,然后您可以获取名称。应该是

    $results = mysql_query("SELECT id,name FROM scores");
    while($row = mysql_fetch_array($results)) {
        $name = $row['name'];
    ?>
       <td><?php echo $name;?></td>
    

    并且不要使用mysql_* 函数,因为它们已被弃用。而是使用mysqli_* 函数或PDO 语句。

    正如@Nedstark 所说,使用try die(mysql_error()); 处理有关mysql 错误的错误。

    【讨论】:

    • 绝对不应该是mysql_*,因为它已被弃用。
    • 不,仍然没有输出:(
    • 我已将它们全部更改为 mysqli_... 仍然无法正常工作
    • 试死(mysql_error()); .如果有的话,它会打印任何mysql错误
    • 干杯,解决了我的问题!我会在 6 分钟内接受答案
    【解决方案2】:
    <td><?php echo $name;?></td>
    

    或使用

     <td><?php echo "$name";?></td>  <!--(Bad idea but works)->
    

    变量用双引号(“”)而不是单引号('')

    【讨论】:

      【解决方案3】:

      除了改变 mysql ==> msqli,我推荐几个调试策略,在这种情况下我会:

      • 修复回声,您需要选择以下两个选项之一:

        <?php echo $variable; ?>
        <?php echo "this is my variable {$variable}"; ?>
        

      如果你放一个单引号 PHP 不解析要打印的内容,它只是将它打印为文本,所以你应该在 HTML 中打印 $name ...但是,因为我不'在黑色屏幕截图中看不到任何 $name 文本我想你甚至可能不会进入那个循环......

      • 一个好的调试策略是查询更广泛的内容,即“SELECT * FROM `scores`”,然后你可以做一个

        <?php print_r($row); ?>
        

      就在while ($row = mysql_fetch_array($results)) {

      之后

      【讨论】:

        【解决方案4】:
          <?php
            session_start();
           if (!(isset($_SESSION['UserName'])))
            {
              echo "<script type=\"text/javascript\">alert('Unauthorize user are redirected to Login page');".
          header('Location:http://localhost/campus');
        
          }
        
          include_once "connect.php";
          $find = mysql_query("YOUR SELECT STATEMENT ") or die('error');
          ob_start();
         ?>
         <!DOCTYPE html>
         <html>
            <head>   
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>ST. MICHAEL's COLLEGE ILIGAN CITY</title> 
            <style>
                AlignJst  {
                            text-align:justify;
                            text-justify:inter-word;
                          }
        
                 pTable   {
                            margin:2cm 4cm 3cm 4cm;
                          }
        
                body {color: black; font-size: 10px; font-family: Helvetica, Arial, non-serif;}
                a:link {color: #FF8C00;} 
                a:visited {color: #FF8C00;}
                a:hover {color: #FF8C00; background: #ADD8E6; text-decoration:none;}
                a:active {color: #FF0000;}
                p {line-height: 2em;
                    font-size:85%;
                    color:black;
                    letter-spacing: 0.3em
                  }
        
               h1 {
                    font-family: Verdana, Geneva, Arial, Helvetica, sans-serif;
                    font-size: 12pt;
                    color: navy;
                    padding-top: 12px;
                    padding-bottom: 3px;
                  }
        
            </style>
        
            </head>
        <body>
                              <?php
        
                                                             echo "<CENTER>"."<H1>TABLE TITLE</H>" . "<BR />";
                                                             echo "<H1>SUBTITLE</H>"."</CENTER>"."<BR/>";
        
                                                             echo "<CENTER>"."<p>"."<b>" . "PAST MORNING PRAYER SCHEDULE" ."</b>"."</p>"."</CENTER>"."<BR/>";
                                                             echo "<table border='1' width='100%' align ='center'>";
                                                             echo "<tr>";
                                                                      echo "<th>SPONSOR NAME</th>";
                                                                      echo "<th>VENUE </th>";
                                                                      echo "<th>DATE EVENT</th>";
                                                                      echo "<th>TIME </th>";
        
                                                                   while($row = mysql_fetch_array($find)){
                                                                      echo "<tr>";
                                                                      echo "<td>".$row['sponsor_name']."</td>";
                                                                      echo "<td>".$row['Venue']."</td>";
                                                                      echo "<td>".$row['Date_Event']."</td>";
                                                                       echo "<td>".$row['Time_Event']."</td>";
        
                                                                      echo "</tr>";
                                                                                    }
                                                                    echo "</table>";
                                                                    echo "<br />". "<br />" ."<br />";
                                                                    echo "<p align = 'right'>"."Prepared By:" . $_SESSION['UserName'] ."</p>";
                                                                ?>
        
        
        
        </body>
        

        【讨论】:

        • 尝试一下,将所有内容更改为您的表值
        猜你喜欢
        • 2014-06-02
        • 1970-01-01
        • 2014-05-20
        • 1970-01-01
        • 2022-01-16
        • 1970-01-01
        • 1970-01-01
        • 2014-02-26
        • 1970-01-01
        相关资源
        最近更新 更多