2

从现在贬值的 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;
?>
4

2 回答 2

2

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

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
}
于 2013-09-09T07:45:25.333 回答
0

因为您指定了只有一行user_id(我假设它是唯一键)。只需将其删除。

于 2013-09-09T07:05:56.230 回答