2012-10-10 44 views
-1

好吧,我的问题是:为什么我的MySQL数据没有显示在我的表中?一切似乎工作正常,但我的数据(这是一个鸟名单等)没有显示出来。我需要一些能看清我的错误的新眼睛。是的,我知道有可能更简单的方法来做到这一点,但这是我的任务所需要的,所以请不要提供其他方式来做到这一点。我需要的只是帮助我的数据填充到HTML表格中。谢谢你,杰森我的PHP代码如下:为什么我的MySQL数据没有显示在我的表中?

PHP代码

<?php 
    $pageTitle = 'Mod06 Pagination| Jason McCoy '; 
    include('includes/header.inc.php'); 
    include ('includes/db_connect.inc.php'); 

    $display = 8; 

    // Determine how many pages there are... 

    if (isset($_GET['p']) && is_numeric($_GET['p'])) { // Already been determined. 
     $pages = $_GET['pages']; 
    } else { 
     $query = "SELECT COUNT(birdID) FROM birds"; 
     $result = @mysqli_query($dbc, $query); 
     $row = @mysqli_fetch_array($result, MYSQLI_NUM); 
     $records = $row[0]; 
    } 

    // Calculate the number of pages... 

    if ($records > $display) { 
     $pages = ceil($records/$display); 
    } else { 
     $pages = 1; 
    } 

    // Determine where in the database to start returning results... 

    if (isset($_GET['s']) && is_numeric($_GET['s'])) { 
     $start = $_GET['s']; 
    } else { 
     $start = 0; 
    } 

    // Sort the columns 
    // Default is birdID 

     $sortDefault = 'birdID'; 

     // Create an array for the columns 

     $sortColumns = array('birdID', 'nameGeneral', 'nameSpecific', 'populationTrend'); 

     // Define sortable query ASC DESC 

     $sort = (isset($_GET['sort'])) && in_array($_GET['sort'], $sortColumns) ? $_GET['sort']: $sortDefault; 
     $order = (isset($_GET['order']) && strcasecmp($_GET['order'], 'DESC') == 0) ? 'DESC' : 'ASC'; 

     // Run the query 

    $query = "SELECT birdID, nameGeneral, nameSpecific, populationTrend FROM birds ORDER BY $order LIMIT $start, $display"; 
    $result = @mysqli_query($dbc, $query);  
?> 

    <!-- Table header: --> 
    <table align="center" cellspacing="0" cellpadding="5" width="80%"> 
     <tr> 
      <th><a href='index.php?sort=birdID&order=<?php echo $order == 'DESC' ? 'ASC' : 'DESC' ?>'>Bird<? 
          if($_GET["order"]=="ASC" && $_GET["sort"]=="birdID"){ 
           echo '<img src="images/downArrow.jpg" id="birdASC" name="birdASC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
          } else { 
        echo '<img src="images/upArrow.jpg" id="birdDESC" name="birdDESC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
       }?></a></th> 
      <th><a href='index.php?sort=nameGeneral&order=<?php echo $order == 'DESC' ? 'ASC' : 'DESC' ?>'>General Name<? 
          if($_GET["order"]=="ASC" && $_GET["sort"]=="nameGeneral"){ 
           echo '<img src="images/downArrow.jpg" id="nameGeneralASC" name="nameGeneralASC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
          } else { 
        echo '<img src="images/upArrow.jpg" id="nameGeneralDESC" name="birdDESC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
       }?></a></th> 
      <th><a href='index.php?sort=nameSpecific&order=<?php echo $order == 'DESC' ? 'ASC' : 'DESC' ?>'>Name Specific<? 
          if($_GET["order"]=="ASC" && $_GET["sort"]=="nameSpecific"){ 
           echo '<img src="images/downArrow.jpg" id="nameSpecificASC" name="nameSpecificASC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
          } else { 
        echo '<img src="images/upArrow.jpg" id="nameSpecificDESC" name="birdDESC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
       }?></a></th> 
      <th><a href='index.php?sort=populationTrend&order=<?php echo $order == 'DESC' ? 'ASC' : 'DESC' ?>'>Population Trend<? 
          if($_GET["order"]=="ASC" && $_GET["sort"]=="populationTrend"){ 
           echo '<img src="images/downArrow.jpg" id="populationTrendASC" name="populationTrendASC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
          } else { 
        echo '<img src="images/upArrow.jpg" id="populationTrendDESC" name="birdDESC" style="margin:-15px 0 0 13px;" width="18px" height="18px">'; 
       }?></a></th> 
     </tr> 
<?php 

    // Display the database results in the table... 

    while ($row = @mysqli_fetch_array($result, MYSQL_ASSOC)) { 
     echo '<tr> 
      <td align="left">$row[birdID]</td> 
      <td align="left">$row[nameGeneral]</td> 
      <td align="left">$row[nameSpecific]</td> 
      <td align="left">$row[populationTrend]</td> 
     <tr>'; 
    } 

    echo '</table>';  
    mysqli_close($dbc); 

    // Make the links to other pages, if necessary. 
    if ($pages > 1) { 
     echo '<br /><p>'; 
     $currentPage = ($start/$display) + 1; 
    // If it's not the first page, make a Previous button: 
    if ($currentPage != 1) { 
     echo '<a href="index.php?s=' . ($start - $display) . '&pages=' . $pages . '&sort=' . $sort . '">Previous</a> '; 
    } 
    // Make all the numbered pages: 
    for ($i = 1; $i <= $pages; $i++) { 
     if ($i != $currentPage) { 
      echo '<a href="index.php?s=' . (($display * ($i - 1))) . '&pages=' . $pages . '&sort=' . $sort . '">' . $i . '</a> '; 
     } else { 
      echo $i . ' '; 
     } 
    } // End of FOR loop. 

    // If it's not the last page, make a Next button: 
    if ($currentPage != $pages) { 
     echo '<a href="index.php?s=' . ($start + $display) . '&pages=' . $pages . '&sort=' . $sort . '">Next</a>'; 
    } 

    echo '</p>'; 

} 

    include('includes/footer.inc.php'); 
?> 


</div> 
</body> 
</html> 

回答

0

变化这一个$row[birdID]$row['birdID']所有,你错过了''

+0

感谢您的帮助,但这不起作用,它会返回错误 – HoppedUpDesigns

+0

您收到了什么错误? –

+0

如果您想查看目前显示的内容,请点击此处链接:http://www.jasonkmccoy.com/AB-Tech/web250/Mod06/McCoy_mod06/index.php?sort=nameSpecific&order=ASC I got this错误解析错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期待T_STRING或T_VARIABLE或T_NUM_STRING在92行/home/jkm1972/public_html/AB-Tech/web250/Mod06/McCoy_mod06/index.php – HoppedUpDesigns

0

使用"内部回声这样,你已经使用'因为不显示从数据库中的值。

while ($row = @mysqli_fetch_array($result, MYSQL_ASSOC)) { 
    echo "<tr> 
     <td align=\"left\">$row[birdID]</td> 
     <td align=\"left\">$row[nameGeneral]</td> 
     <td align=\"left\">$row[nameSpecific]</td> 
     <td align=\"left\">$row[populationTrend]</td> 
    <tr>"; 
} 
0

对不起,如果有点简洁,从输入电话号码...

'$行[birdID]'

和其他部分应适当改写为:

“$行['birdID']'

as birdID是一个字符串,而不是一个变量名。

虽然PHP使用它作为字符串,但如果在当前作用域中没有该名称的变量。

Always use quotes around a string literal array index. For example, $foo['bar'] is correct, while $foo[bar] is not. But why? It is common to encounter this kind of syntax in old scripts

从PHP文件:http://php.net/manual/en/language.types.array.php

编辑有人指出,在呼应得使用单引号,这是一个问题了。使用单引号,PHP不会解释字符串的内容,而使用双引号,PHP将解析它,并正确使用这些值。

+0

我明白你在说什么,但你是什么建议没有工作。 – HoppedUpDesigns

+0

我只是在想 - 没有MySQL只使用**小写的表名和列名?尝试使用'birdid'而不是'birdID',等等。可悲的是,我现在没有MySQL来测试它。 另外,尝试在MySQL工作台或PHPMyAdmin中运行查询本身 - 无论你有什么... – ppeterka

+0

我现在有正确的数据显示,但排序不工作 – HoppedUpDesigns

相关问题