1

ドロップダウンメニューを使用してデータベースのデータを表示したい。データ(画像、リンク、タイトル、数字)はそれぞれ小さなdivに表示されます。

重複するデータを削除し、ドロップダウンリストを作成しました。また、ドロップダウンリストには必要な値があります。しかし、私のコードは機能していないようです。問題は、データの「エコー」を残りのコードに接続できないため、コードを機能させることができないことです。

これが私のコードです:

$query="SELECT DISTINCT * FROM products GROUP BY category";
$result = mysql_query($query);

echo "<select name=\"category\">";

while ($row = mysql_fetch_array($result)) {
  echo "<option value='" . $row['category'] . "'>" . $row['category'] ."</option>";
}
echo "</select>" . "</br>";

そして、これが私のコードの残りの部分です:

mysql_select_db("myapp",$con);
$result = mysql_query("SELECT * FROM products WHERE category = " . $row['category'], $con);

while($row = mysql_fetch_array($result))
{
  $mycategory = $row['category'];
  $myimage = '<img src="'.$row['image'].'" />';
  echo  "<div id='appear'>" . $myimage . '<br />' . $row['title'] . "<br  />"  
    . "<p style='color:red;' >" . "price: " . $row['price'] . "€" . "</p>"
    . '<a   href="image.php?id='.$row['id'].'">'
    . "details" . "<a>" . "</div>" ;  
}

mysql_close($con);

データベースが接続されていると仮定します。また、phpとmysqlのみを使用する必要があります。

4

2 に答える 2

1

<

?php
 $query="SELECT DISTINCT * FROM products GROUP BY category";
 $result = mysql_query($query);

echo "<select name=\"category\" onchange=\"form.submit()\">";


while ($row = mysql_fetch_array($result)) {
    echo "<option value='" . $row['category'] . "'>" . $row['category'] 
 ."</option>";
}
echo "</select>" . "</br>";
?>

ドロップダウンリストの値が変更されたときにコンテンツを変更するのに役立ちます。

divには、以下のコードを使用します。

<?php
if(isset($_POST['category']) && !empty($_POST['category']))
{
//rest of your div codes lie here
}
?>
于 2012-05-29T22:14:53.927 に答える
1

ユーザーに最初のページでカテゴリを選択させてから、選択したすべてのデータを表示したいとします。同じページにデータをライブで表示したい場合、ユーザーが新しいカテゴリを選択すると、すべてが少し複雑になります。

しかし、簡単なバージョンに固執しましょう。これまでコードで提供されていないのは、次のphpを呼び出してcategory-idを転送するナビゲーションです。アクションターゲットとして2番目のphpファイルを含むhtml-form要素で最初のphpコードをフレーム化する必要があります。例えば:

<form action='part2.php' method='POST'>
<?php
  /* ... your first code snippet */
?>
<input type='submit' value='Display category' />
</form>

ユーザーが[カテゴリの表示]ボタンをクリックすると、2番目のスクリプトが呼び出され、グローバル変数$_POST['category']を介して選択したカテゴリ文字列にアクセスできます。

ただし、注意してください。実際のシナリオでは、$_POSTまたは$_GETごとに受信したデータをデータベースに送信するだけでなく、潜在的な攻撃者によって簡単に操作される可能性があります。Google Cross-Site-Scripting、トピックに興味がある場合、これは学校のプロジェクトであるため、それがあなたにとって重要であるとは思えません。後でオンラインでホストしないでください。

しかし、あなたの問題に戻りましょう。2番目のコードは、単に置き換えるだけで機能するはずです。

$result = mysql_query("SELECT * FROM products WHERE category=".$row['category']."",$con);

$result = mysql_query("SELECT * FROM products WHERE category=".$_POST['category']."",$con);

また、2番目に投稿されたコードでは、エコーステートメントに小さなバグがあります。stackoverflowコードが強調表示されているため、追跡が簡単です。開始タグと終了タグの直前に単純な引用符(')がありません。 -タグにバックスラッシュがありません(確かに知っているはずですが)。コピーアンドペーストエラーだけでなく、元のコードでそれが間違っている場合でも、phpはこれについて言及する必要があります。

それがお役に立てば幸いです、あなたのプロジェクトで頑張ってください!

于 2012-05-29T22:47:59.227 に答える