从SQL数据库中选择数据并在表中显示不起作用

时间:2013-08-07 09:28:06

标签: php mysql sql html-table

我不明白为什么这不起作用,我已经坚持了很多年并尝试了很多不同的选择,但它只是不打印数据库中的数据。

目前我只是想获取要打印的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中的内容:

enter image description here

此图像显示本地主机中的数据库,您可以看到有大量数据,但似乎没有打印出任何名称?!

enter image description here

4 个答案:

答案 0 :(得分:3)

纠正您的语法

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

从DB中选择名称然后你可以得到名字。它应该是

$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错误的错误。

答案 1 :(得分:1)

<td><?php echo $name;?></td>

或使用

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

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

答案 2 :(得分:1)

  <?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>

答案 3 :(得分:0)

除了更改mysql ==&gt; msqli,我建议使用几种调试策略,在这种情况下我会:

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

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

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

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

    <?php print_r($row); ?>
    
之后的

($ row = mysql_fetch_array($ results)){