【问题标题】:MySql is returning only one row while fetching data form wordpressMySql 在从 wordpress 中获取数据时只返回一行
【发布时间】:2016-01-12 11:38:56
【问题描述】:

我见过很多类似的问题,但它们都让我感到困惑,因为我没有使用 $wpdb 变量来获取数据。我正在使用简单的 php 方式通过调用 wordpress 数据库来获取数据。但不知何故,它只返回一行。这是用于获取数据的代码行。

$sql = "SELECT * FROM   teacher_directory";
if($result = mysqli_query($link, $sql)){
if(mysqli_num_rows($result) > 0){   
    echo "<table>";
        echo "<tr>";
            echo "<th>S. No.</th>";
            echo "<th>Name</th>";
            echo "<th>Designation</th>";
            echo "<th>Department</th>";
            echo "<th>Tele/Mob.No.</th>";
        echo "</tr>";
    while($row = mysqli_fetch_array($result)){
        echo "<tr>";
            echo "<td>" . $row['S. No.'] . "</td>";
            echo "<td>" . $row['Name'] . "</td>";
            echo "<td>" . $row['Designation'] . "</td>";
            echo "<td>" . $row['Department'] . "</td>";
            echo "<td>" . $row['Tele/Mob.No.'] . "</td>";               
        echo "</tr>";
    }
    echo "</table>"; 

任何帮助或建议都将不胜感激。

【问题讨论】:

  • 你在实际查询中得到多个字段吗?
  • mysqli_num_rows($result)的结果是什么
  • 我得到一个完整的单行输出。

标签: php wordpress


【解决方案1】:

使用这个 wordpress 查询从数据库中获取结果

global $wpdb;
$results = $wpdb->get_results( 'SELECT * FROM teacher_directory WHERE 1', ARRAY_A  );
if(!empty($results)){
  echo "<table>";
    echo "<tr>";
        echo "<th>S. No.</th>";
        echo "<th>Name</th>";
        echo "<th>Designation</th>";
        echo "<th>Department</th>";
        echo "<th>Tele/Mob.No.</th>";
    echo "</tr>";
  foreach($results as $row){
    echo "<tr>";
        echo "<td>" . $row['S. No.'] . "</td>";
        echo "<td>" . $row['Name'] . "</td>";
        echo "<td>" . $row['Designation'] . "</td>";
        echo "<td>" . $row['Department'] . "</td>";
        echo "<td>" . $row['Tele/Mob.No.'] . "</td>";               
    echo "</tr>";
  }
    echo "</table>"; 
}

【讨论】:

  • 它也返回单行。
  • 嗨,Rishabh,你必须在$row["title"] 中声明你的数据库列名。如果我使用wp_posts 表,那么我必须声明$row["post_title"] 其中post_title 是数据库中的列名。
【解决方案2】:

请使用 $wpdb 类(具有直接访问和操作 wordpress 数据库的功能):

global $wpdb;
$sql = $wpdb->get_results( "SELECT * FROM   teacher_directory" );
$results = $wpdb->get_results($sql) or die(mysql_error()); 
if($results) {
echo "<table>";
    echo "<tr>";
        echo "<th>S. No.</th>";
        echo "<th>Name</th>";
        echo "<th>Designation</th>";
        echo "<th>Department</th>";
        echo "<th>Tele/Mob.No.</th>";
    echo "</tr>";
}
foreach( $results as $row ) {
    echo "<tr>";
        echo "<td>" . $row['S. No.'] . "</td>";
        echo "<td>" . $row['Name'] . "</td>";
        echo "<td>" . $row['Designation'] . "</td>";
        echo "<td>" . $row['Department'] . "</td>";
        echo "<td>" . $row['Tele/Mob.No.'] . "</td>";               
    echo "</tr>";
}
echo "</table>"; 

【讨论】:

  • 预期 wp-db.php 上的参数警告。什么都没有显示。
猜你喜欢
  • 2014-04-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-30
  • 2021-03-30
  • 2012-11-17
  • 1970-01-01
相关资源
最近更新 更多