1
私は、現在のデータセットのデータベース選択ステートメントから前の行のデータをフェッチしようとしています。whileループ中に以前のfetch_assocデータにアクセスする方法は?
私の現在のコードは次のようになります
<?php
$lib = $_GET["lib"];
include "connect.php";
$sql = "SELECT Image, text, link FROM library WHERE Type = '$lib'";
$result = $conn->query($sql);
$count = 1;
if ($result->num_rows > 0) {
// output data of each row
while($row = $result->fetch_assoc()) {
if ($count <= 6) {
if ($count == 1) {
echo "<tr>";
}
echo "<td align='center'>";
echo "<a href='".$row["link"]."'><img src='".$row["Image"]."'/></a>";
echo "</td>";
$count++;
if ($count == 7) {
echo "</tr>";
}
} else if ($count >= 7 && $count <= 12) {
if ($count == 7) {
echo "<tr>";
}
echo "<td align='center'>";
echo"<a href='".$row["link"]."'><p>".$row["text"]."</p></a>";
echo "</td>";
$count++;
if($count == 13){
$count = 1;
}
if ($count == 1) {
echo "</tr>";
}
}
}
echo "</tr>";
} else {
echo "No Videos in the ".$lib." Section at this time!";
}
$conn->close();
?>
したがって、最初の6行が出力し、7 - 12行が出力が、前6行結果から選択されたデータを使用します。 $ row ["variable"] [ - 6 results]たとえば、$ row ["variable"] [ - 6 results]のようになります。私はこれらの方法を知っているが、私はselectステートメントが実行されると、データベースから返される配列を処理する方法を覚えていない。
私は$ result-> data_seek(0)を使用することを考えていました。この場合にどのように使用するかはわかりません。
あなたのコードは[** SQLインジェクション**](https://en.wikipedia.org/wiki/SQL_injection)攻撃の脆弱性があります。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –
アドバイスありがとう、私はコンセプトを働かせた後、コードを強化することを検討します。それはしばらくの間、3年間の休憩の後でコーディングに「足を浸して」います。 –
タイトルに尋ねられた質問に対する明白な答えは、後で何かが必要な場合は、それを変数に格納することです...むしろ明らかですね。 – CBroe