2017-05-15 63 views
1

我有這段代碼,我想打印一個包含內容的表格。它打印表格,但列是空的...我錯過了什麼?我看不到錯誤..Mysqli查詢不提取結果

function show_autovetture($data){ 

    $con = $data;    //PASSO CONNESSIONE 
    $rows = array();   // PREPARO ARRAY 

    $stmt = mysqli_stmt_init($con); // INIZIALIZZO LA CONNESSIONE 

    mysqli_stmt_prepare($stmt,'SELECT 
         autovetture.id, 
         autovetture.name 
         FROM autovetture 
         ORDER BY id DESC'); 
         or die(mysqli_error($con)); // QUERY INSERIMENTO DATI 

    mysqli_stmt_execute($stmt);     // ESEGUO LA QUERY 

    mysqli_stmt_bind_result($stmt,$rows['id'],$rows['name']); 

    $html = ""; 
    $html .= "<div class='container'>"; 
    $html .= "<div class='div_box_5'>"; 
    $html .= "<div class='row'>"; 
    $html .= "<div class='panel panel-default'>"; 
    $html .= "<div class='panel-heading'>"; 
    $html .= "<h4>"; 
    $html .= "Elenco Ditte Autovetture"; 
    $html .= "</h4>"; 
    $html .= "</div> <!-- end panel-heading -->"; 
    $html .= "<table class='table table-fixed'>"; 
    $html .= "<thead>"; 
    $html .= "<tr>"; 
    $html .= "<th class='col-xs-2'>#</th><th class='col-xs-8'>Nome</th><th class='col-xs-2'>Modifica</th>"; 
    $html .= "</tr>"; 
    $html .= "</thead>"; 
    $html .= "<tbody>"; 
    while($rows=mysqli_stmt_fetch($stmt)){ 
      $html .= "<tr>"; 
      $html .= "<td class='col-xs-2'>$rows[id]</td><td class='col-xs-8'>$rows[name]</td><td class='col-xs-2'><a href='edit_autovet.php?id=$rows[id]'><span class='glyphicon glyphicon-pencil'></span></a></td>"; 
      $html .= "</tr>"; 
    } 
    $html .= "</tbody>"; 
    $html .= "</table>"; 
    $html .= "</div> <!-- end panel panel-default -->"; 
    $html .= "</div> <!-- end row -->"; 
    $html .= "</div> <!-- end div_box_5 -->"; 
    $html .= "</div> <!-- end container -->"; 


    mysqli_stmt_close($stmt);          // CHIUDO LO STATEMENT 
    mysqli_close($con);            // CHIUDO CONNESSIONE 

    return $html; 

} 

錯誤在哪裏?

+0

閱讀如何檢查mysqli的錯誤 –

+0

的問題是,我有在屏幕上沒有錯誤。我怎麼能檢查他們? –

+1

我發現mysqli有一些學習曲線,但一旦得到它,它就非常健壯。你可以使用http://php.net/mysqli_error'mysqli_error($ link)' –

回答

2

當你將它們綁定到mysqli_stmt_bind_result($stmt,$rows['id'],$rows['name']);時,結果已經被綁定,並且即使在循環時它們也會在這些變量中 - 變量的內容在獲取時會爲循環的每次迭代更新 - 所以你只想環與mysqli_stmt_fetch()作爲參數,而不

while($rows=mysqli_stmt_fetch($stmt)){ 

讀取數據的賦值給一個變量,像這樣

while (mysqli_stmt_fetch($stmt)) { 

代替是與使用語句比使用取出一個比特不同方法。

當前,您正在覆蓋$rows變量,使其成爲布爾(真/假)或null時,如果您像當前那樣運行它。有關返回值,請參見mysqli_stmt_fetch()手冊。

+1

謝謝你救了我的一天!,愚蠢的錯誤!非常感謝你:) –

+1

樂意幫忙! :-)您也可以在這裏使用常規查詢,因爲您沒有在查詢中綁定任何佔位符(變量或用戶輸入)。但是準備工作沒什麼問題,這只是一點點工作:-) *乾杯* – Qirel