MySQL データベースから各ジョブのタイトルと説明を抽出し、この情報を単純に表示するための基本的な PHP スクリプトがあります。これは次のようになります。
$sql = "SELECT `title`, `desc` FROM jobs WHERE active = 'y'";
$query = mysql_query($sql) or die('<em><strong>SQL Error:</strong> ' . mysql_error() . '</em>');
$results = mysql_fetch_assoc($query);
<?php while($result = mysql_fetch_assoc($query)) {
echo '<div class="left_content" style="margin-top: 15px;">';
echo "<h2>{$results['title']}</h2>";
echo "<p>{$results['desc']}</p>";
echo '</div>';
} ?>
これで、データベースから 1 行しか抽出されませんが、2 行抽出されるはずです。while
そのため、ステートメントを置き換えるために次のことを試みました。
<?php foreach($results as $result) {
echo '<div class="left_content" style="margin-top: 15px;">';
echo "<h2>{$result['title']}</h2>";
echo "<p>{$result['desc']}</p>";
echo '</div>';
} ?>
このステートメントも機能しません。これは、テーブルの最初の行の各列の最初の文字を (奇妙なことに) 表示するだけです。
なぜこれがうまくいかないのか、誰にも分かりませんか?