0

我想根据他们的 sdk 检索一些产品的 id .. 但如果有 2 个或多个产品,它只返回第一个 id ......

有谁能够帮助我 ?

非常感谢

这是我使用的代码...(我是 php 新手)

<?
     foreach(array_keys($nume_individual) as $n){

        $sql = mysql_query("SELECT * FROM products WHERE cod_produs = '$cod_produs_individual[$n]' LIMIT 1");
        while($row = mysql_fetch_assoc($sql)){
                $id_s[$n]=$row["id"];

        }


    echo (
        "<tr>
        <td>".$id_s[$n]."</td>  /* this is not working well (running just once) */
            <td>".$nume_individual[$n]."</td> 
        <td>".$cod_produs_individual[$n]."</td>
        <td>".$numar_individual[$n]."</td>
        <td>".$bucati_individual[$n]."</td>
        <td>".$pret_individual[$n]."</td>



        </tr>

        ");

        };?>
4

3 回答 3

0

这是因为您设置了限制 1 以便它只返回一行

$sql = mysql_query("SELECT * 
                     FROM products 
                      WHERE cod_produs = '$cod_produs_individual[$n]' 
                      LIMIT 1 // this is the reason you getting only one row 
                      "); 

其次,您在 while 循环之外使用 echo 在 while loopp 内部使用它

于 2012-10-23T18:36:14.377 回答
0

将您echo放入 while 循环中,然后limit 1从查询中删除。

当您limit 1的查询中有 a 时,您将结果限制为仅从数据库返回 1 行。此外,当您在 while 循环之外有回显时,您只会打印数据库中最后加载的行。

看来您正在从某些数组中打印 $n 键处的值。我不知道 $n 是什么,但您可能想尝试使用该行的 ID,因为您使用的是主 foreach 索引。

foreach(array_keys($nume_individual) as $n){
    $sql = mysql_query("SELECT * FROM products WHERE cod_produs = '$cod_produs_individual[$n]'");
    while($row = mysql_fetch_assoc($sql)){
        $id_s[$n]=$row["id"];
        echo (
            "<tr>
            <td>".$row["id"]."</td>  
            <td>".$nume_individual[$row["id"]]."</td>
            <td>".$cod_produs_individual[$row["id"]]."</td>
            <td>".$numar_individual[$row["id"]]."</td>
            <td>".$bucati_individual[$row["id"]]."</td>
            <td>".$pret_individual[$row["id"]]."</td>
            </tr>"
        );
    }
}
于 2012-10-23T18:36:17.870 回答
0

我设法解决了这个问题。这是代码,也许对某人有用:)

<? 
$cod_produs_individual2 = array_pop($cod_produs_individual) ;
$csv =implode(',', $cod_produs_individual); 
$csv2 = "'" . join("', '", $cod_produs_individual) . "'"; 
$csv3= $string = rtrim($csv2, ',');

$query2 = sprintf("SELECT * 
                    FROM products 
                   WHERE cod_produs IN (%s)",
                  $csv3); 

$results2 = mysql_query($query2);
$randuri = mysql_num_rows($results2);

$a = array();

if ($randuri >0) { while($row = mysql_fetch_array($results2)){ 

    array_push ($a, $row["id"]);

        }
}
print_r ($a);

foreach(array_keys($nume_individual) as $n){

    echo (
    "<tr>
    <td>".$a[$n]."</td>
    <td>".$nume_individual[$n]."</td>
    <td>".$cod_produs_individual[$n]."</td>
    <td>".$numar_individual[$n]."</td>
    <td>".$bucati_individual[$n]."</td>
    <td>".$pret_individual[$n]."</td>



    </tr>

    ");



    };?>
于 2012-10-23T22:15:02.750 回答