【问题标题】:PHP and SQL foreach loopPHP 和 SQL foreach 循环
【发布时间】:2015-10-30 12:50:31
【问题描述】:

我正在尝试为 wordpress 设置一个自定义模板,用于从数据库中检索人员姓名和其他列

//connect.php

<?php
global $wpdb;
$blog_id = get_current_blog_id(); 
$results = $wpdb->get_results( 'SELECT * FROM database WHERE blog_id = {$blog_id}', OBJECT );
?>

//index.php
include_once "connect.php"; 
$sql = "SELECT * FROM databasetablename";
//run the query
$results = $wpdb->get_results($sql) or die(mysql_error());


foreach ($results as $result){
?>
//first person
<h2><?php echo $result -> name; ?></h2>
//second person
<h2><?php echo $result -> name; ?></h2>
//third person
<h2><?php echo $result -> name; ?></h2>

<?php
}
?>

但只是从数据库中显示相同的名字,而不是移动到下一个人的名字并显示他们我认为这是我的 sql 状态的问题,但不太确定,谢谢

【问题讨论】:

  • 你能做一个数组 $results 的 var_damp 并更新你的问题吗?
  • 您有该表中内容的示例吗? (列 + 一些示例行)

标签: php sql wordpress


【解决方案1】:

您不需要在循环内输出三次,foreach 应该处理结果的每个实例。
接下来,您应该检查您的查询实际返回的内容。
此外,您不需要将OBJECT 作为第二个参数传递给$wpdb-&gt;get_results,这是默认行为。

例子:

index.php

global $wpdb;
$sql = "SELECT * FROM wp_users";
$results = $wpdb->get_results($sql) or die(mysql_error());

foreach ($results as $result){
    print '<h2>' . $result->display_name . '</h2>';
}

【讨论】:

  • 谢谢这已经奏效了,我不习惯在 wordpress 中使用全局连接。 connect.php 文件中的 sql 查询与我尝试用于索引页的查询存在冲突。该连接是针对网站上的不同页面的,所以我应该意识到我正在尝试通过 2 个 $results 传递 sql
猜你喜欢
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 2013-04-26
  • 1970-01-01
  • 2023-03-17
  • 2016-09-26
  • 2012-07-19
  • 2010-12-17
相关资源
最近更新 更多