簡體   English   中英

從SQL數據庫中選擇數據並在表中顯示不起作用

[英]Select data from SQL database and display in table does not work

我不明白為什么這行不通,我已經堅持了很長時間,並嘗試了許多不同的替代方法,但是它只是不打印數據庫中的數據。

目前,我只是想獲取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中的外觀:

在此處輸入圖片說明

此圖顯示了本地主機中的數據庫,並且您可以看到有很多數據,但是似乎沒有一個名稱可以打印?

在此處輸入圖片說明

更正您的語法

$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錯誤的錯誤。

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

或使用

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

變量使用雙引號(“”)而不是單引號(“)

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

除了更改mysql ==> msqli之外,我還建議一些調試策略,在這種情況下,我將:

  • 要修復回聲,您需要選擇以下兩個選項之一:

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

如果您用單引號引起來,PHP不會解析將要打印的內容,而是將其打印為文本,因此您應該在HTML中打印$ name ...但是,因為我看不到任何內容黑色屏幕快照中的$ name文本,我想您甚至可能不會進入該循環...

  • 一個好的調試策略是查詢更廣泛的內容,即“ SELECT * FROM`scores”,然后您可以執行

     <?php print_r($row); ?> 

之后

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM