何が起こっているのかというと、mysql db から 4 行を div に出力し、その div を閉じてから、新しい div を作成してから 4 行を出力してから、その div を終了しています。などなど、データベースにコンテンツがなくなるまで。
これが完了すると、ユーザーがDBに追加できるフォームが出力されます(姓が出力された後)(また、divにすでに4つの名前がある場合は、別のdivを作成する必要があります)以下のコードは私が現在持っているもので、動作しますが、いくつかの問題があります。問題は次のとおりです。 - DB の最初のエントリが印刷されず、2 番目のエントリから印刷が開始されます。- すべての名前の印刷が終了すると、内容は印刷されますdiv
が、名前は含まれません。(そのうちの 1 つまたは 2 つ) - div に既に 4 つの名前がある場合、フォームはフォーム用に別の div を作成しません。
変数をいじることで、$count2
空のコンテンツ div を取り除くことができますが、送信ボタンの機能が失われます (そこにありますが、クリックすることはできません)。
誰でも問題を見つけて修正できますか?
どうもありがとう!
PS私は、私が何をすべきだと思うかを理解できるように、できる限りコメントしました。
$countsql = <<<SQL
SELECT *
FROM `deathnote`
SQL;
if ($stmt = mysqli_prepare($db, $countsql)) {
/* execute query */
mysqli_stmt_execute($stmt);
/* store result */
mysqli_stmt_store_result($stmt);
$countresult = mysqli_stmt_num_rows($stmt);
}
$count2=0; //count how many overall names have been printed
$pagecount=0; //count for how many names are on a page
while($result->fetch_assoc() != NULL){ //While result isn't empty
echo '<div style="background-image:url(images/paper.jpg);">'; //start new page div
while ($pagecount < 4) { //loop to put only 4 names on 1 page
$row = $result->fetch_assoc(); //grab name and cod
echo '<div class="content"><div class="name">' . $row['victim'] . '</div><div class="cod">' . $row['cod'] . '</div></div>'; //display name and cod inside a content div
$pagecount++; //increase the count of amount of names on page
$count2++; //increase the overall names printed
if ($count2 == $countresult) { //if the overall names printed = the total count of whats in the database (meaning there is nothing left to print)
echo '<div class="content"><form action="write.php" method="post"><div class="name">Name: <br/> Cause Of Death: </div><div class="cod"><textarea type="text" name="name" maxlength="25" placeholder="Input Name" required></textarea> <br /> <textarea type="text" name="cod" maxlength="130" rows="4" placeholder="Cause of Death" required></textarea> <br /><input type="submit" id="button" value="Submit"></div></form></div>'; //print the form for user to add to the database
}
}
$pagecount=0; //because there is 4 names printed, we have to set the count back to 0
echo '</div>'; //end the 'page' div (which will end the page)
}