2016-04-15 12 views
-1

PHP、MySQL、およびHTMLの初心者です。mysqlから取得するすべてのカラムのいずれかからPHP配列を作成します。

PHP配列に関する質問が1つあります。

私はPHPで2つのテーブルを結合するMySQLのクエリを作成します。この参加から、私は1つの製品についての情報を得るでしょうが、複数のJIGを持っています。

$sql = "SELECT product.product_number,product.product_name,product.product_jitqty,product.product_desc,jit.jit_number,jit.jit_name,jit.jit_drawer,jit.jit_port,jit.jit_specpath 
FROM product 
JOIN production_jit 
ON production_jit.product_number = product.product_number 
JOIN jit 
ON jit.jit_number = production_jit.jit_number 
WHERE product.product_number = '$productnumber'"; 

$result = mysqli_query($conn, $sql); 


if (mysqli_num_rows($result) > 0) { 

while($row = mysqli_fetch_assoc($result)) 

    { } 

上記のクエリの結果は、次のようになります。 enter image description here

したがって、列jit.jit_numberの配列を作成したいとします。両方のページや他のページへのデータの転送が容易になります。

私は以下のコードを試しました。

 $sql = "SELECT product.product_number,product.product_name,product.product_jitqty,product.product_desc,jit.jit_number,jit.jit_name,jit.jit_drawer,jit.jit_port,jit.jit_specpath 
      FROM product 
      JOIN production_jit 
      ON production_jit.product_number = product.product_number 
      JOIN jit 
      ON jit.jit_number = production_jit.jit_number 
      WHERE product.product_number = '$productnumber'"; 

    $result = mysqli_query($conn, $sql); 


    if (mysqli_num_rows($result) > 0) { 
    // output data of each row 
    ?> 

    <?php 
    while($row = mysqli_fetch_assoc($result)) 

    { 

    $jig = array ($row['jit_number']); 

    echo "This is JIG " . $jig[0] . ", " . $jig[1] . "."; 

    } 

結果は以下のようになります。

enter image description here

誰も私を助けることができますか?したがって、両方のデータを別のページに転送する場合は、$jig[0]$jig[1]を使用できます。または、誰かが私に複数のデータフォームmysqlを別のページに転送するより良い方法をアドバイスできます。

答えて

1

にthis->を試してみてください。あなたが別の配列内のすべてのjit_numbersを保存しようとしている場合、あなたはこのような何かを試みることができる:

$numbers = array(); 
while($row = mysqli_fetch_assoc($result)) 
{ 
    $numbers[] = $row['jit_number']; 
} 

ます。また、MySQLの注入を防止しようとするものは、WHERE product.product_number = '$productnumber'";は、セキュリティの観点から、かなり恐ろしいです。準備されたステートメントを使用するか、少なくともいくつかのサニタイズ/エスケープが推奨されます。

+0

ご理解いただけない場合はご了承ください。私はあなたに私が望む事例を与えます。 私は製品番号が "123456"であるmysqlからデータを取得します。その製品のために2つの治具を持っています。これは上記で質問した図のように "abc"と "def"です。だから、私は検証パートを作成したいので、 "abc"と "def"を$ jig1と$ jig2として別のページに転送します。 私は "バリデーション"の部分が意味することは、私たちのオペレータは治具のバーコードをスキャンし、 "検証"の部分で私が作ってみたいのは次のようなものです:[if($ jigcode1 == $ jig1 && $ jigcode2 = = $ jig2)]。ジグが正しい場合、オペレータは当社の製品仕様を示します。 –

1

は、私はあなたが達成しようとしているが、$jigだけの数自体$row['jit_number']イストので、2つのインデックスを持っているつもりされていない本当にわからないんだけど

$jig = array(); 
array_push($jig, $row['jit_number']);