我的Wordpress数据库中有一个名为“races”的表。
main.php 我的活动页面在表格“比赛”中显示我的所有比赛 - 这里一切正常
<?php
global $wpdb;
$table_name = $wpdb->prefix . "races";
$result = $wpdb->get_results ( "SELECT * FROM races ORDER BY date_start LIMIT 4" );?>
<div class="events-schedule">
<?php
foreach ( $result as $race ) {
$title = $race->title;
$raceid = $race->race_id;
$location = $race->venue;
$icon = $race->race_icon;
?>
<div class="wrapper">
<div class="row">
<div class="small-12 medium-4 columns event-icon text-center">
<img src="<?php echo $icon; ?>">
</div>
<div class="small-12 medium-8 columns text-center">
<?php echo $id; ?>
<h3 class="tagline location"><?php echo $location; ?> </h3>
<h2><?php echo $title; ?></h2>
<div><a class="btn yellow" href="/test/?id=<?php echo $id; ?>">Apply Now</a></div>
</div>
</div>
<?php
echo '</div>';
} ?>
</div> <?php
?>
test.php 当您转到http://mywebsite.com/test/?id=64时,我试图在此单独页面上显示其他字段 我得到的只是数字“64”,这很好,因为这是正确的ID! 我正在尝试检索其他字段,例如标题,地点等。但是没有工作。我错过了什么吗?
提前谢谢。
<?php
$id = $_GET['id'];
echo $id;
$result = $wpdb->get_results ( "SELECT * FROM races WHERE id='$id'" );
foreach ($result as $race) {
$title = $race->title;
echo $title;
}
?>
答案 0 :(得分:1)
您可能无法获得任何结果,因此for循环永远不会执行。你确定id 64确实存在吗?
将URL中的变量直接放入查询中也是一种可怕的做法。我可以像将SQL附加到URL一样轻松地将SQL注入您的系统。您需要清理输入以保护自己免受攻击者的攻击。</ p>
看到你的数据库模式后,看起来id字段实际上名为race_id。所以你的查询应该是这样的:
$wpdb->get_results ( "SELECT * FROM races WHERE race_id='$id'" );
答案 1 :(得分:-1)
首先从id中删除单引号,然后使查询像这样
$wpdb->get_results ( "SELECT * FROM races WHERE race_id=$id" );
要显示所有字段,请执行此操作
foreach($result as $race){
echo $title = $race->title;
echo $field_1= $race->field_1;
echo $field_2= $race->field_2;
echo $field_3= $race->field_3;
}
注意::将您的字段替换为field_1,field_2,field_3