-2

ログインしたユーザーの性別に応じて特定の製品セットを表示する配列をコーディングしようとしています。配列は実際には問題ではありませんが、データベースをチェックして結果から条件ステートメントを作成する必要がある部分が主な問題だと思います。

これが私のコードです:

<?php

include"config.php" or die "cannot connect to server";

$gender=$_POST['gender'];



    $qry ="SELECT * FROM server WHERE gender ='$gender'";
    $result = mysql_query($qry);


    $productdetails;
    $productdetails1["Product1"] = "£8";
    $productdetails1["Product2"] = "£6";
    $productdetails1["Product3"] = "£5";
    $productdetails1["Product4"] = "£6";
    $productdetails1["Product5"] = "£4";
    $productdetails2["Product6"] = "£8";
    $productdetails2["Product7"] = "£6";
    $productdetails2["Product8"] = "£5";
    $productdetails2["Product9"] = "£6";
    $productdetails2["Product10"] = "£4";

         if (mysql_num_rows($result) = 1) {
        foreach( $productdetails1 as $key => $value){
            echo "Product: $key, Price: $value <br />";
            }
         }                  
         else {
        foreach( $productdetails2 as $key => $value) {
            echo "Product: $key, Price: $value <br />";
            }
         }
?> 
4

2 に答える 2

2

if 文が間違っています。=は代入演算子です。またはのような比較演算子を使用する必要があります。=====

于 2012-05-10T18:12:25.627 に答える
0

現在のコードはどうなりますか?

いくつかのヒント: 最初に $gender をエコーし​​てみて、それが通っていることを確認してください。郵送で提出されますが、何も投稿されていない場合はどうなりますか? これはどこから来たのですか?代わりに get を使用してみてください。これは、誰かにリンクを提供するようなものであるように思われるため、ここに投稿しても意味がありません。あなたは常に両方を持つことができ、それが存在する場合はポストを取得することができます。

次に、クエリの出力は何ですか? 性別が何も返さない場合、この時点で空になる可能性があります。性別 = 渡されたものは何でも、すべての行を照会しているようですが、if ステートメントは何かが返されたかどうかを尋ねていますか? その後、あなたがしているのは配列に行くことだけですが、DBから得たものを出力するべきではありません。server というテーブルに実際に製品があると仮定すると、次のようにする必要があります。

$products = mysql_query("SELECT * FROM server WHERE gender ='$gender");

while($product = mysql_fetch_array($products)){
    echo $product['name'] . " " . $product['price']. " " . $product['gender'];
    echo "<br />";
}

そのメモで。サーバーがウェイターまたはコンピューターハードウェアのインスタンスで満たされたテーブルを意味しない限り、単に「サーバー」ではなく製品など、実際にテーブルを別の名前で呼ぶ必要があります。

于 2012-05-10T18:19:16.753 に答える