这是一个很长的问题,但不是太复杂,所以请耐心等待。
我正在建立一个WordPress网站 其中一页应该显示商店列表 有5个字段,我应该填充我从DB获得的商店。
现在我这样做(在页面模板中):
有一个javascript ajax请求在加载html后工作,并要求服务器端的PHP代码从数据库中获取商店。
当它们被返回时,javascript随后会填充那些商店的html字段。
现在,我知道这是错误的表现 在将html发送到客户端之前,我应该填充服务器端的字段。
所以我的问题是这样的:
访问数据库5次是没有意义的(对于5个商店和领域)
我只想访问它一次,获得所有5个商店,并填充字段
但是如何在html中的5个不同位置使用数据库返回的数组呢?
在这个例子中,我将所有商店都放到了一个领域。我如何将它们传递给其他领域?
<tr><td><input id="shop1" type="textbox" value="<?php global $wpdb; echo $wpdb->get_results("SELECT * FROM shops"); ?>"></td></tr>
<tr><td><input id="shop2" type="textbox" value=""></td></tr>
<tr><td><input id="shop3" type="textbox" value=""></td></tr>
<tr><td><input id="shop4" type="textbox" value=""></td></tr>
<tr><td><input id="shop5" type="textbox" value=""></td></tr>
答案 0 :(得分:2)
试试这个
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM shops");
$i = 1;
foreach ( $results as $shop )
{
echo '<tr><td><input id="shop'.$i.
'" type="textbox" value="">'.$shop->name_of_field_you_need.'</td></tr>';
$i++;
}
?>
答案 1 :(得分:2)
如果商店之间没有HTML:
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM shops");
?>
//stuff
<?php foreach( $results as $result ): ?>
<tr><td><input id="shop<?php echo $result -> shop_id; ?>" type="textbox" value="<?php echo $result -> fieldName; ?>"></td></tr>
<?php endforeach; ?>
如果有的话,就像这样:
<?php
global $wpdb;
$results = $wpdb->get_results("SELECT * FROM shops");
?>
<tr><td><input id="shop1" type="textbox" value="<?php echo $results[0] -> fieldName; ?>"></td></tr>
//random stuff here
<tr><td><input id="shop2" type="textbox" value="<?php echo $results[1] -> fieldName; ?>"></td></tr>
//random stuff here
<tr><td><input id="shop3" type="textbox" value="<?php echo $results[2] -> fieldName; ?>"></td></tr>
//random stuff here
<tr><td><input id="shop4" type="textbox" value="<?php echo $results[3] -> fieldName; ?>"></td></tr>
//random stuff here
<tr><td><input id="shop5" type="textbox" value="<?php echo $results[4] -> fieldName; ?>"></td></tr>