0

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

目前我只是想打印 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 中的样子:

在此处输入图像描述

这张图片显示了本地主机中的数据库,你可以看到有很多数据,但似乎没有一个名字打印出来?!

在此处输入图像描述

4

4 回答 4

3

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

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

于 2013-08-07T09:28:49.253 回答
1
<td><?php echo $name;?></td>

或使用

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

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

于 2013-08-07T09:32:53.930 回答
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>

于 2013-08-07T13:11:03.237 回答
0

除了更改 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)) {

于 2013-08-07T09:54:38.627 回答