2017-11-16 2 views
0

私は2つのテーブルがあります。私が持っているユーザーには、ユーザーとの取引PHP抽出MYSQLバリュー発行

を:ユーザID、名前、電子メール

そして、私が持っている取引で:ID、idsender、

idreceiver Iをすべてのトランザクションを示すログ表を作成したいと思います。トランザクションID - 送金者の名前 - 受取人の名前

私はこのようにしてみましたが、「Receiver」でうまくいかないようです何も表示されません..:

echo "<table>"; 
echo "<tr>"; 
echo "<th>Transaction ID</th>"; 
echo "<th>Sender</th>"; 
echo "<th>Receiver</th>"; 
echo "</tr>"; 

    $resultuser = mysqli_query($conn, "SELECT * FROM users"); 
    $rowuser=mysqli_fetch_array($resultuser); 

    $resulttrans = mysqli_query($conn, "SELECT * FROM transactions"); 
    $rowtrans=mysqli_fetch_array($resulttrans); 



    $ress=mysqli_query($conn, "SELECT * FROM transactions"); 

      while($row=mysqli_fetch_array($ress)){ 
       echo "<tr>"; 
       echo "<td>".$row['id']."</td>"; 
       echo "<td>"." same as receiver"."</td>"; 
      $receiver=mysqli_query($conn, "SELECT name FROM users WHERE userid='" . $rowtrans['idreceiver'] . "'"); 
      $receivername = mysqli_fetch_array($receiver); 

       echo "<td>". $receivername ."</td>"; 
       echo "</tr>"; 
      } 
+0

[documentation](http://php.net/manual/en/mysqli-result.fetch-array.php)を参照してください。 mysqli_fetch_arrayは配列またはnullを返し、単純な変数として出力しようとしています。 – cteski

+1

[mysqli \ _fetch \ _array whileループ列](https://stackoverflow.com/questions/14456529/mysqli-fetch-array-while-loop-columns)の可能な複製 – zod

+0

2つのクエリを使用せず、1つのクエリ2つのテーブルを結合します。 – Barmar

答えて

1

2つのクエリを使用しないでください。 1つのクエリで2つのテーブルを結合します。

$ress = mysqli_query("SELECT t.id, u1.name AS sendername, u2.name AS receivername 
    FROM transactions AS t 
    JOIN users AS u1 ON u1.userid = t.idsender 
    JOIN users AS u2 ON u2.userid = t.idreceiver"); 
while ($row = mysqli_fetch_assoc($ress)) { 
    echo "<tr>"; 
    echo "<td>".$row['id']."</td>"; 
    echo "<td>" . $row['sendername'] ."</td>"; 
    echo "<td>" . $row['receivername'] . "</td>"; 
    echo "</tr>"; 
} 
+0

ありがとう、それは今働いた! –

0

あなたはecho "<td>". $receivername['name'] ."</td>";

注意すればいい$receivername = mysqli_fetch_array($receiver);

でフェッチ配列から響いている:mysqli_fetch_array()から フェッチ配列はどこつまり、数$receivername[0]または文字列$receivername['name']でインデックスを使用してエコーすることができますここには欠けている。

+0

まだ動作していません。 \t $ receiver = mysqli_query($ conn、 "SELECT * FROM users where userid = '"。$ rowtrans [' idreceiver ']。 "'"); \t $ receivername = mysqli_fetch_array($ receiver); \t echo "​​" $ receivername。 ""; ' –

+0

@DizzyTudorそれは答えと同じではなく、あなたの質問と同じです。 – Barmar

+0

@Barmar申し訳ありませんが、私は '$ receivername ['name']'と書いて、間違って貼り付けました。私は今は正しいが、フィールドはまだ空白です。 –