2017-09-26 150 views
1

我正在使用一张表格,其中对于相同的ID我有不同的详细信息和不同的数量,现在我要分别打印每个特定数量的相同特定ID。在mysql中选择详细信息

$mq="SELECT count(particulars) AS 'n' FROM delivery_challan WHERE job_order_id =".$_GET['jo']; 
$ha=mysqli_query($link,$mq); 


    $haha=mysqli_fetch_object($ha); 
    $n=$haha->n; 
    echo $n; 
    for($i=1;$i<=$n;$i++) 
    { 
     $nq="SELECT qty FROM `delivery_challan` WHERE job_order_id=".$_GET['jo']; 

     $r=mysqli_query($link,$nq); 

    //$i=1; 
     $rs=mysqli_fetch_object($r); 
     $qty=$rs->qty; 
} 

这就是我如何获取$ qty变量中的相应数量。此变量用于以下:

<td><input name="invqty[]" type="text" onchange="SetDefault(<?php echo $cnt; ?>, $(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();" class="form-control1" id="invqty<?php echo $cnt; ?>" size="5" value="<?php echo $qty; ?>"></td> 

例如:

以我表 'delivery_challan' 我有3个细节的x,y & Z,使用3个不同的数量分别10,20 & 30。现在在上面提到的我想要打印所有三个数量。正在正确地打印3次,但在所有3中仅打印10次,其中10次然后20次打印,3次打印30次。 但只有第一个值正在打印。

我无法找到解决方案。请帮帮我。谢谢。

+1

请显示所需的输出和您的输出和您的代码@rushi kulkarni – Pritamkumar

+1

显示一些输入和什么是预期 –

+0

没有看到您的数据结构的问题是无法回答的。此外,如果您尝试了一些无法使用的代码,请将其发布到此处并解释发生了什么问题。人们喜欢知道你在努力自己解决问题之前,先要求他人自愿帮助你。 – ADyson

回答

2

像这样的东西应该工作。您不需要首先获取结果的计数,而只需循环查看主查询中的结果集,直至达到最终结果。此示例使用准备好的语句和参数,以保护您的数据库从注入攻击:

if ($stmt = mysqli_prepare($link, "SELECT qty FROM `delivery_challan` WHERE job_order_id= ?")) 
{ 
    //bind the job order parameter 
    mysqli_stmt_bind_param($stmt, 'i', $_GET['jo']); 

    //execute the query 
    mysqli_stmt_execute($stmt); 

    //bind the columns in the result to variables for use in the next part 
    mysqli_stmt_bind_result($stmt, $qty); 

    //loop through all the rows returned, and print the output 
    while (mysqli_stmt_fetch($stmt)) { 
    echo '<td><input name="invqty[]" type="text" onchange="SetDefault(<?php echo $cnt; ?>, $(this).val());" onkeyup="this.onchange();" onpaste="this.onchange();" oninput="this.onchange();" class="form-control1" id="invqty<?php echo $cnt; ?>" size="5" value="'.$qty.'"></td>'; 
    } 
    mysqli_stmt_close($stmt); 
} 
else 
{ 
    echo "ERROR - failed to prepare SQL statement"; 
    //here you should log the result of running mysqli_error() to your application's error log. Don't show it to the user. 
} 

你可以在这里看到更多的例子,例如:http://php.net/manual/en/mysqli-stmt.fetch.php

+1

谢谢你,它确实工作,有一些行/列的问题,但输出是正确的。我会解决这些小问题,再次感谢。 @ADyson –

1
select item_tbl.id as item_id, user.id as user_id, order.id as order_id 

您可以通过这种方式获得ID。

0

尝试。无需查询计数。

$mq="SELECT qty FROM delivery_challan WHERE job_order_id =".$_GET['jo']; 
$ha=mysqli_query($link,$mq); 
while($haha=mysqli_fetch_object($ha)) 
{ 
    $qty=$haha->qty; 
    echo $qty; 
} 

使用此$ qty变量,您需要的方式。