2012-01-30 36 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> 

整个问题无关,与预处理语句模板尽管如此。