-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

你如果陈述是错误的。=是赋值运算符,您应该使用比较运算符,例如==or===

于 2012-05-10T18:12:25.627 回答
0

当前代码会发生什么?

一些提示:首先尝试回显 $gender,以确保它通过。它是通过post提交的,如果没有发布会发生什么?这是从哪里来的?您应该尝试使用 get 代替。这似乎是你会给某人一个链接的东西,因此在这里发布没有意义。您总是可以同时拥有两者,如果存在则直接获取帖子,否则使用获取,否则默认为“男性”或“女性”,具体取决于您的受众。

接下来,您的查询输出的是什么?如果性别没有回馈任何东西,此时它可能是空的。似乎您正在查询所有通过了性别 = 任何内容的行,但是您的 if 语句询问是否有任何返回?然后你所做的就是去数组,但你不应该这样做,你应该输出你从数据库中得到的东西。假设您确实在名为 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 回答