2012-01-30 50 views
1

測試此代碼我如何輸出MySQL表在PHP預處理語句

$query = "SELECT * from `items`"; 

if ($stmt = $mysqli->prepare($query)) { 

    /* execute statement */ 
    $stmt->execute(); 

    /* bind result variables */ 
    $stmt->bind_result($id, $code,....); // One by one all column names 

    /* fetch values */ 
    while ($stmt->fetch()) { 
     printf ("%s (%s)\n", $name, $code); 
    } 

    /* close statement */ 
    $stmt->close(); 
} 

有沒有更簡單的方式來輸出整個表到HTML標記?

+1

不要這麼認爲,你必須通過結果集並打印每個結果,所以這似乎是他最短的代碼。而且它也非常簡單 – 2012-01-30 06:30:55

+0

準備好的聲明在這裏似乎有點過分,因爲您沒有將任何參數傳遞給查詢。這是實際的代碼還是SO的簡化? – GordonM 2012-01-30 07:37:26

+0

@JoshuaKissoon你可以從SQL代碼中分離HTML輸出。這將確實更容易。 – 2012-01-30 09:16:32

回答

0

下面的代碼片段可以匹配您的要求..但我不知道這是否更簡單的方法或不..希望這會有所幫助。

的PHP,

$pricequery="SELECT price FROM technoxchange"; 
$result=mysql_query($pricequery); 

while($row= mysql_fetch_array($result)){ 
    $prices [] = $row['price']; 
} 

echo json_encode(array('prices' => $prices)); 

對於JS,

var p; 
$.get("getTechnoXchange.php", function(data){ 
    p = data.prices; 
}); 

$('#priceUnicus').html(p[0]); 
$('#priceHire').html(p[1]); 
$('#priceMonsterArena').html(p[2]); 
2

有沒有更簡單的方式來輸出整個表到HTML標記?

當然。
學會使用模板

只需將您準備好的語句與輸出分開即可。
要做到這一點,首先收集數據到數組:

/* fetch values */ 
$data = array(); 
while ($row = $stmt->fetch()) { 
    $data[] = $row; 
} 

,然後包括與任何HTML標記你喜歡

<table> 
<?php foreach($data as $row): ?> 
<tr> 
    <td><a href="?id=<?=$row['id']?>"><?=$row['name']?></a></td> 
</tr> 
<?php endforeach ?> 
</table> 

整個問題無關,與預處理語句模板儘管如此。