php - fetch(PDO::FETCH_ASSOC 只返回一行

标签 php sql wordpress pdo

从现在已弃用的 mysql 代码切换到 PDO。该代码应该输出表中的所有值。这是代码:

$stmt = $pdo->prepare('SELECT * FROM admin WHERE user_id = :user_id');
$stmt->bindParam(':user_id', $userid);
$stmt->execute();
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {

调用这些字段的代码是:

$data_t .= '<td>' . $row['date'] . '</td>';
$data_t .= '<td>' . $row['length'] . '' . $selected . '</td>';
$data_t .= '<td>' . $row['ground'] . '' . $selected . '</td>';

由于某种原因,不是输出所有选定的匹配值,而是只输出一个。现在,我还使用计数函数来显示一个人已创建的条目数,并且显示的条目数比数据库中的实际条目数少了一个。 (这意味着如果存在 5,它会显示数字计数 4)以下是该代码:

$rResult = $stmt->fetchAll();
$gorResult = count($rResult);

我尝试在这段代码中使用 fetchAll() ,但它什么也没返回。我知道我一定错过了一些东西,对于头脑清醒的人来说这可能很简单。同样,问题是此调用仅输出一行,而不是所有匹配的行。

$stmt = $pdo->prepare('SELECT * FROM admin WHERE user_id = :user_id');
$stmt->bindParam(':user_id', $userid);
$stmt->execute();

$rResult = $stmt->fetchAll();
$gorResult = count($rResult);

foreach($rResult as $row) {


$data_t = '<b>Length: '. $strt_length .' </b>  |  <b>Ground: '. $strt_ground .' </b>';
$data_t .= '<span class="label label-success">'. $gorResult .' Entries Total</span>';
$data_t .= '<table class="table table-striped">';
$data_t .= '<thead>';
$data_t .= '<tr>';
$data_t .= '<th>' . $table_fields['jo_col_1_name'] . '</th>'; 
$data_t .= '<th>' . $table_fields['jo_col_2_name'] . '</th>'; 
$data_t .= '<th>' . $table_fields['jo_col_3_name'] . '</th>';
$data_t .= '</tr>';
$data_t .= '</thead>';
$data_t .= '<tbody>';
$data_t .= '<tr>';
$data_t .= '<td>' . $row['date'] . '</td>';
$data_t .= '<td>' . $row['length'] . '' . $selected . '</td>';
$data_t .= '<td>' . $row['ground'] . '' . $selected . '</td>';
$data_t .= '<td>';

if (!$del_hide) {

$data_t .= "<form method='post' action='');' />";
$data_t .= "<input type='hidden' name='primary_key' value='".$row["primary_key"]."' />";
$data_t .= '<button type="submit" name="deleteItem" value="delete" class="btn btn-link">';
$data_t .= '<span class="glyphicon glyphicon-remove"></span></button>';
} else { };
$data_t .= '<button type="image" name="image" value="image" class="btn btn-link">';
$data_t .= '<span class="glyphicon glyphicon-picture"></span></button>';
$data_t .= '</form>';
}
$data_t .= '</td>';
$data_t .= '<td>';
$data_t .= '</td>';
$data_t .= '</tr>';
$data_t .= '</tbody>';
$data_t .= '</table>';

echo $data_t;
?>

最佳答案

据我了解你的长篇大论,你正在做这样的事情

while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { // fetching one row
    $data_t .= '<td>' . $row['date'] . '</td>'; // using row
    $rResult = $stmt->fetchAll(); // FETCHING REST OF ROWS
    ...
} // no more rows for the next iteration

虽然必须如此

$data = $stmt->fetchAll(); // fetching rows
$count = count($data); // getting count
foreach($data as $row) { // iterating over rows
    $data_t .= '<td>' . $row['date'] . '</td>'; // using row
}

关于php - fetch(PDO::FETCH_ASSOC 只返回一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18693027/

相关文章:

php - 从 cron 运行 php 没有作为 CLI 运行

PHP 警告 : PHP Startup: Unable to load dynamic library 'pdo_mysql.so'

sql - MySQL - 分解/拆分输入到存储过程

php - Zend 框架中的 HMVC

sql - 什么时候在同一个 session 中运行的两个连续的 SELECT 查询会产生不同的结果?

php - setInterval 会使客户端 PC 过载吗?

plugins - WooCommerce 复合产品尝试在变体上设置 SKU 出现 "Variation SKU must be unique."错误

mysql - $wpdb->insert_id 不工作

ajax - 最前沿的最佳 SEO 实践的最佳多语言 Wordpress 解决方案

javascript - 在未发布的表单中添加了密码字段