使用php的动态变量从sql select和update语句的下拉列表中获取

时间:2013-07-29 09:07:39

标签: php javascript mysql ajax

这是整个php代码插入查询工作正常,但休息仅在product_is缺失时才起作用。但是,如果我从数据库中添加了product_id的值,那就完美了。

if(isset($_POST["submit"]))
    {
    $pname=$_POST["pname"];
    $pprice=$_POST["pprice"];
    $quant=$_POST["quant"];
    $imei_no=$_POST["imei_no"];
    $total=$_POST["total"];
    $transaction_no=$_POST["transaction_no"];

    $sl_sql="insert into sales (pname,pprice,quant,imei_no,total,transaction_no,selling_date) values ('$pname','$pprice','$quant','$imei_no','$total','$transaction_no',NOW())";
    $sl_res=mysql_query($sl_sql);


    $product_id= $_GET["product_id"];
    echo $sc_sql="select * from productlist where product_id='$product_id' ";
    $sc_res=mysql_query($sc_sql);die();
    while($sc_row=mysql_fetch_object($sc_res))
    {
    $pid=$sc_row->product_id;
    $psold=$sc_row->psold;
    $quantity=$sc_row->quantity;
    }

    $ab=$psold+$quant;
    $bc=$quantity-$quant;

    $up_sql="update productlist set psold ='$ab', quantity='$bc' where product_id='$pid'";
    $up_res=mysql_query($up_sql);

    if($up_res)
    {
    header("location:billing.php");
    exit();
    }
    }

我的下拉列表工作正常。

这是我的HTML

<form action="" method="post"  onsubmit="return validation();" style="float: inherit;">
        <table align="center" cellpadding="0" cellspacing="0">
          <tr>
            <?php
            $p_sql="select * from productlist where published=1";
            $p_res=mysql_query($p_sql);
            ?>
            <td width="140" height="32"><div align="right"><b>PRODUCT NAME :</b> </div></td>
            <td><select name="pname" id="pname" onchange="showprice(this.value);" style=" border-style:groove">
            <option value="">Select Your Product</option>
            <?php
            if($p_res)
            {
            while($p_row=mysql_fetch_object($p_res))
            {
            ?>
            <option value="<?=$p_row->product_id?>"><?=$p_row->pname?></option>
            <?php
            }
            }
            ?>
            </select>
            </td>
            <td><input type="hidden" name="product_id" id="product_id" value=""  /></td>
            <td>&nbsp;</td>
            <td><div align="right"><b>PRODUCT PRICE :</b></div></td>
           <td><div id="price"><input name="pro_price" type="text" readonly="readonly" style=" border-style:groove"/></div></td>
          </tr>
          <tr>
            <td height="32"><div align="right"><b>SELLING PRICE :</b></div></td>
           <td><input name="pprice" id="pprice" type="text"  value="" style=" border-style:groove"/></td>
          </tr>
          <tr>
            <td width="119" height="32"><div align="right"><b>QUANTITY:</b> </div></td>
            <td width="184"><input name="quant" id="quant" type="text" onkeyup="multi()" onkeypress="return checkIt(event)" style=" border-style:groove"/></td>
          </tr>
          <tr>
            <td height="32"><div align="right"><b>TRANSCATION NO. :</b></div></td>
            <td><input name="transaction_no" id="transaction_no" type="text" readonly value="<?php echo $_SESSION["transaction"]; ?>"  style=" border-style:groove"/>
            </td>
          </tr>
          <tr>
            <td><div align="right"><b>IMEI NUMBER :</b> </div></td>
            <td><input name="imei_no" type="text" id="imei_no" maxlength="14"  onkeydown="is_num();" style=" border-style:groove"/></td>
          </tr>
          <tr>
            <td><div align="right"><b>Sub Total :</b> </div></td>
            <td><input name="total" id="total" type="text"  readonly="readonly" style=" border-style:groove"/></td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td>&nbsp;</td>
            <td style="float:right;"><input name="submit" type="submit" value="" style="height: 90px; width: 110px; cursor:pointer; background-image:url(images/cart.png); border:none;"id="xx" /></td>
          </tr>
        </table>
      </form>

2 个答案:

答案 0 :(得分:1)

根据您的下拉列表代码的外观,我认为您也不应该看到下拉列表中的项目。

请将while循环中的选项标签更改为以下选项:

<option value="<?php echo $p_row->product_id; ?>"><?php echo $p_row->pname; ?></option>

如果您在更改后仍无法看到product_id,请粘贴表单的完整代码以及您在form-submit上调用的GET方法对应的代码。

- seekers01

答案 1 :(得分:0)

请确保echo $ product_id在文件中返回值,您可以使用以下方式构建查询:

$sc_sql="select * from productlist where product_id='$product_id'";

我假设这个文件是.php文件。如果是这样,请尝试这样做:

$sc_sql="select * from productlist where product_id=\'" . $product_id . "\'";

希望我的假设是正确的。 让我知道,如果这对您有用。

- seekers01