0

私は約5時間の問題を抱えています...結合する前に、1つの配列からテーブルへのmysql選択を出力できます...私のコードは次のとおりです:クッキーには、この配列があります Array( [] => [1254] => 325 [2112] => 77 [354] => 2 ) [1254 は製品のタラ] => 325 はクオンツ

<table width="100%" border="0" cellpadding="3" cellspacing="2">
            <tr><!--prepare row of head cols html static--> 
              <td> COD</td>
              <td> PROD</td>
              <td>CAT</td>
              <td>**CANT**</td>
          </tr>
     <?php  
          ////array in cookie to variable php $rr
          $rr = $_COOKIE['coo'];
          foreach ($rr as &$arr){////for each element of $rr generate one register
            $SQL="SELECT cod_pro,name,cod_cat,('$arr') AS quant FROM products 
               WHERE cod_pro=".$arr." 
               ORDER BY cod_cat asc";
          $result=mysql_query($SQL,$lnk) ;

if (mysql_num_rows($result)>0){  //if exist anyone 

while($registers=mysql_fetch_array($result,MYSQL_ASSOC)){
    ////print each row here all right
 echo "<tr><td>".$registers["cod_pro"]."</td>"."<td>".$registers["name"]."/td>"
 ."<td>".$registers["cod_cat"]."/td><td>".$registers["quant"]."</td></tr>";
       ////$registers["quant"] i want add one col with this value from cookie
  ?>
    <?php }?>
    <?php }     
    } ?>
  </table>

問題は $registers["cant"] で、この出力を得るために SELECT my sql を実行する方法です。[] => [1254] => 325 [2112] => 77 [354] => 2

      COD (pk)   NAME         COD_CAT       **quant** This i can´t show
      --------------------------------------------
      1254      Car (bd)         1 (bd)      **325**
      2112      Cicles(bd)       2 (bd)       **77** 
      354       toys (in bd)     3 (bd)        **2**

任意のアイデアありがとう

4

2 に答える 2

0

選択を行った後、結果を取得し、結果を使用してforeachループを実行します

今、あなたは逆の道を進んでいます

また、ループ内の複数のtrに対して単一のtrがあります。

最初にフローチャートを作成し、次にコーディングしてみてください。

データ構造の本を読み、そこで問題をコーディングして解決することをお勧めします。

于 2013-03-01T20:41:49.487 に答える
0

私はあなたが求めていることを理解していると思います。私はあなたのコードをクリーンアップし、あなたが望んでいると思う修正を行いました。データを引き戻すためだけに、その SQL クエリにデータを渡そうとする理由はありません。

ループ内でデータを直接参照するだけです。

私はこのコードが実際に何をするのか分からないので、以下に書いたものはうまくいかないかもしれません...

しかし、それは私が理解していることから私ができる最善のことです。

<table width="100%" border="0" cellpadding="3" cellspacing="2">
    <tr>
       <td> COD</td>
       <td> PROD</td>
       <td>CAT</td>
       <td>**CANT**</td>
    </tr>
 <?php  

    $rr = $_COOKIE['coo'];
    foreach ($rr as $name => &$arr)
    {
        $SQL = "SELECT cod_pro,name,cod_cat FROM products 
                WHERE cod_pro=".$arr." 
                ORDER BY cod_cat asc";

        $result=mysql_query($SQL,$lnk) ;

        if (mysql_num_rows($result)>0)
        {  

           while($registers=mysql_fetch_array($result,MYSQL_ASSOC))
           {

                echo "<tr><td>".$registers["cod_pro"]."</td>"."<td>".$registers["name"]."/td>"."<td>".$registers["cod_cat"]."/td><td>".$name."</td></tr>";

           } 
         }      
    } 
 ?>
</table>
于 2013-03-01T20:43:21.747 に答える