Я хочу показать некоторые записи с циклами while, а некоторые без циклов. Но цикл while игнорирует первую запись и показывает другие записи.
if (isset($_SESSION['patient_no'])) {
$patient_id = $_SESSION['patient_no'];
$sql = $db->prepare("select * from patient_record JOIN medicine_potency ON reference_no=:reference_id and patient_code=:reference_no");
if (!$sql) {
echo $sql->errorInfo();
} else {
$sql->bindParam('reference_id', $patient_id, PDO::PARAM_INT);
$sql->bindParam('reference_no', $patient_id, PDO::PARAM_INT);
$sql->execute();
$sql->bindColumn('code', $id);
$sql->bindColumn('reference_no', $reference_no);
$sql->bindColumn('patient_name', $patient_name);
$sql->bindColumn('father_name', $father_name);
if ($sql->columnCount() > 0) {
$sql->fetch(PDO::FETCH_ASSOC);
?>
<tr bgcolor = " #005A04"><td colspan = "2" style = "text-align: center; color:#CCFFBB">Personal Information</td></tr>
<tr>
<td>Reference No</td>
<td><?php echo $reference_no; ?></td>
</tr>
<tr>
<td>Patient Name</td>
<td><?php echo $patient_name; ?></td>
</tr><?php while ($sql->fetch(PDO::FETCH_ASSOC)) {
?>
<tr>
<td><?php echo $medicine; ?></td>
<td><?php echo $potency; ?></td>
</tr>
Добро пожаловать в SO. Пожалуйста, посмотрите здесь, чтобы узнать, как улучшить ваши вопросы (форматирование, корректура, предоставление кода и т. д.): stackoverflow.com/help/how-to-ask






Простое решение: вы можете превратить цикл while в цикл do-while, поэтому при первой итерации будет использоваться ваша первая выборка. это работает, только если у вас есть одна выборка перед циклом, очевидно.
Но я не уверен, в чем смысл в вашем случае, вы делаете ту же самую выборку перед циклом, так зачем вам это вообще нужно?
Используйте синтаксис OFFSET в своем операторе MYSQL:
$sql = $db->prepare("select * from patient_record JOIN medicine_potency ON reference_no=:reference_id and patient_code=:reference_no OFFSET 1");
Это пропустит первый результат и пойдет дальше.
каждый раз, когда вы выполняете $ sql-> fetch (PDO :: FETCH_ASSOC); запись читается. Ваша первая загрузка вне времени