2017-07-18 66 views
-2

我有一個php文件,我知道有一個地方的錯誤。當使用xampp在我的本地機器上使用它時,它工作正常,但是當上傳到主機時,我得到標題和導航,然後它說'出錯',從我的php代碼的檢查連接部分,並且不會製作桌子。其他頁面工作正常,並提交給數據庫,所以我假設connect.php頁面是正確的,它的代碼是錯的。我也已經告訴我的演講,這是代碼,但我在努力尋找問題php html在xampp上本地工作,但沒有上傳時

<?php 
     //uses the connect.php file to connect to the database 
     include('connect.php') 

?> 

<!DOCTYPE html> 
    <html> 
     <head> 
      <title>Extract data from DB </title> 

      <link rel="stylesheet" type="text/css" href="gcards.css"> 

     </head> 

     <body> 


     <nav class="nav"> 
      <h1>Gcards </h1> 
      <a href="get.php">Gcards</a> 
      <a href="insert.php">INSERT</a> 
      <a href="delete.php">DELETE</a> 
     </nav> 

<?php 

    //query the database to extract relavent data 
    $get= "SELECT * FROM manufacturer 
        join 
     rating on manufacturer.manufacturerID = Rating.RatingID 
        join 
     model on manufacturer.manufacturerID = model.ModelID 
        join 
     ram on manufacturer.manufacturerID = ram.RamID 
        join 
     ram_type on manufacturer.manufacturerID = Ram_Type.Ram_TypeID   
        join 
     clock on manufacturer.manufacturerID = clock.ClockID"; 

    // check connection 
    $data = mysqli_query($dbconnect, $get) or die('error getting'); 

     echo "<table class=\"display\">"; 
     echo "<tr><th>ID</th> 
     <th>Image_Url</th> 
     <th>Manufacturer</th> 
     <th>Series</th> 
     <th>Interface</th> 
     <th>Chipset</th> 
     <th>SLI-Cross Fire</th> 
     <th>Ram</th> 
     <th>Ram Type</th> 
     <th>Clock_Speed</th> 
     <th>Boost_Speed</th> 
     <th>OC_Speed</th></tr>"; 


    while ($row = mysqli_fetch_array($data, MYSQLI_ASSOC)) { 
        echo "<tr>"; 
        echo "</td><td>"; 
        echo $row['ManufacturerID']; 
        echo "</td><td>"; 
     ?> 


       <img src ="<?php echo $row['Image_Url']; ?>" 
        height="100" width="125"> 
      <?php     
        echo "<br>"; 
       ?> 
        <img src ="<?php echo $row['Rating']; ?>" width="125"> 
      <?php 
        echo "</td><td>"; 
        echo $row['Manufacturer']; 
        echo "</td><td>"; 
        echo $row['Series']; 
        echo "</td><td>"; 
        echo $row['Interface']; 
        echo "</td><td>"; 
        echo $row['Chipset']; 
        echo"</td><td>"; 
        echo $row['SLI_Crossfire']; 
        echo"</td><td>"; 
        echo $row['RamNo'];       
        echo "</td><td>"; 
        echo $row['Ram_Type']; 
        echo"</td><td>"; 
        echo $row['Clock_Speed']; 
        echo"</td><td>"; 
        echo $row['Boost_Speed']; 
        echo"</td><td>"; 
        echo $row['OC_Speed']; 
        echo "</td></tr>"; 
        echo "</table>";  
            } 
        ?> 


     </body> 
     </html> 
+2

什麼是完整錯誤? – Daniel

+0

theres沒有錯誤出現它只是不會,顯示錶時,我直接到網站頁面。 $ data = mysqli_query($ dbconnect,$ get)或死('error getting'); – Chris

+2

我必須問:是否更新了憑據以匹配主機身份驗證? (而不是仍然設置爲您的本地配置?) –

回答

2

看來你可能有你的MySQL(或MariaDB的)從本地XAMPP配置衝突您遠程服務器。請注意,出於開發目的,XAMPP MySQL配置比大多數Linux安裝中的配置稍微寬鬆一些。

因此,要找到您的錯誤,請修改您的代碼以輸出MySQL錯誤。

變化$data = mysqli_query($dbconnect, $get) or die('error getting');

if (!$data = mysqli_query($dbconnect, $get)) { 
    printf("Errormessage: %s\n", mysqli_error($dbconnect)); 
    exit; 
} 

這將輸出的實際錯誤的MySQL拋出,並幫助您瞭解您的SQL內您的問題。它也可能揭示更多。

PHP: mysqli::$error - Manual

+0

謝謝Zach我得到的錯誤是ErrorMessage: 'on子句'中的未知列'Rating.RatingID' – Chris

+0

您的查詢中沒有「Rating」表的聯接。你有'評級'@Chris –

+0

非常好!所以看來你可能會引用一個拼寫錯誤的列或者一個真正不存在的列。 – Zaky

0

XAMPP通常運行在Windows上,這裏是mysql在大多數情況下不區分大小寫,這意味着select * from MYTABLE;select * from mytable;是相同的。你的主機可能運行一些unix系統,上面的例子會查詢來自不同表的數據。

所以PLZ看看你的查詢,即。你有一次表ram_type和更高版本Ram_Type,他們應該被完全寫爲他們如何定義。

請參閱https://dev.mysql.com/doc/refman/5.7/en/identifier-case-sensitivity.html

相關問題