현재 내 계획은 사용자 이름 옆에 성별 아이콘을 추가하는 것입니다. 문제는 테이블에 테이블 레코드가 2 개 이상 있어도 1 행만 표시되고 일부 레코드가 갑자기 사라진다는 것입니다. 다음과 같이 보입니다.
내가 사용하는 코드 :
$pdo = new PDO('connection');
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$stmt1 = $pdo->prepare("SELECT id, user_id, user, bid, date
FROM auction_bids ORDER BY date DESC");
$stmt2 = $pdo->prepare("SELECT user_id, user, bid, date
FROM auction_bids ORDER BY date DESC LIMIT 30");
$stmt11 = $pdo->prepare("SELECT pol FROM tb_users WHERE id = :user_id");
$stmt2->execute();
$r1 = $stmt1->fetch(PDO::FETCH_ASSOC);
$stmt11->execute(array(':user_id' => $r1['user_id']));
$id1 = $r1['id'];
echo '<table>';
while ($r1 = $stmt2->fetch(PDO::FETCH_ASSOC) && $r2 = $stmt11- >fetch(PDO::FETCH_ASSOC)) {
echo '<tr>
<td>' . $id1 . '</td>
<td><img height="16" width="16" alt="gender icon" src
="../images/' . ($r2['pol'] == 1 ? 'male.png' : 'female.png') . '" />
' . $r1['user'] . '</td>
<td class="border-right">' . $r10['level'] . '</td>
<td>' . $r1['bid'] . ' FA</td>
<td><img height="16" width="16" alt="calendar" src
="../images/calendar.png" />
' . date($dateFormatBids, strtotime($r1['date'])) . '</td>
</tr>
';
$id1--;
}
echo '<table>
사용 while ($r1 = $stmt2->fetch(PDO::FETCH_ASSOC)) {..}
하지 않고 루프를 사용하면 $r2
작동합니다 (성별 색상이 동일하다는 점을 제외하고 테스트의 경우 빨간색, Lukas의 경우 파란색이어야 함).
필요한 것이 있으면 말씀해주십시오. 저는 PHP와 PDO를 처음 접했습니다.
줄에서 : $stmt11->execute(array(':user_id' => $r1['user_id']));
단일 레코드를 얻으므로 while 루프는 단일 행을 인쇄합니다.
다음과 같이 쿼리를 작성하십시오.
$stmt2 = $pdo->prepare("SELECT tu.pol, user_id, user, bid, date
FROM auction_bids ab left join tb_users tu on ab.user_id = tu.id
ORDER BY date DESC LIMIT 30");
지금 :
while ($r1 = $stmt2->fetch(PDO::FETCH_ASSOC){
//rest of the code should work... user $r1['pol'] instead of $r2
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다