0

HTML テーブルにプッシュされた MySQL テーブルに小さな問題があります。

データベースでの私のSELECTは次のとおりです。

 $result = mysql_query("

SELECT dat_eb_registrants.id, dat_eb_registrants.first_name, dat_eb_registrants.last_name, dat_eb_registrants.email, dat_eb_registrants.comment, dat_eb_registrants.amount, dat_eb_registrants.published, dat_eb_registrants.transaction_id, dat_eb_registrants.register_date, GROUP_CONCAT(dat_eb_field_values.field_value SEPARATOR '</td><td>') 
FROM dat_eb_registrants LEFT JOIN dat_eb_field_values ON dat_eb_registrants.id=dat_eb_field_values.registrant_id
WHERE `event_id` >= 20 AND `event_id` <= 25
GROUP BY dat_eb_registrants.id
ORDER BY $sort $ascdsc

");

これを使用してHTMLテーブルにプッシュされます:

while ($row = mysql_fetch_row($result)) {
echo "<tr>";
echo "<td>" . $row[9] . "</td>";
echo "<td>";

さて、私の問題は、これにより からのいくつかの行でテーブルがいっぱいにdat_eb_field_values.field_valueなり、これらの結果の間に他の行 ($row[0] から $row[8]) を取得できないという事実です。

たとえば、私の $values が から来てdat_eb_field_values.field_value、私の $data が から来たとしdat_eb_registantsます。これは私のテーブルになります:

| header 1 | header 2 | header 3 | header 4 | header 5 | header 6 |
-------------------------------------------------------------------
| $value1  | $value2  | $data3   | $value4  | $data1   | $data2   |
| $value1  | $value2  | $data3   | $value4  | $data1   | $data2   |
| $value1  | $value2  | $data3   | $value4  | $data1   | $data2   |

前もって感謝します!ローラン

4

3 に答える 3

0

配列に配置するデータをエコーアウトする代わりに、$row[9]必要に応じて (および他の要素を確認した後に) 吐き出します。

たとえば、これを変更します。

while ($row = mysql_fetch_row($result)) {
echo "<tr>";
echo "<td>" . $row[9] . "</td>";
echo "<td>";

これに:

while ($row = mysql_fetch_row($result)) {
$myArray[] ="<tr><td>" . $row[9] . "</td>""<td>";
于 2013-01-03T17:19:10.393 に答える
0
while ($row = mysql_fetch_row($result)) {
    echo "<tr>";
    foreach($row AS $val)
        echo "<td>" . $val . "</td>";
    echo "<td>";
}

それはすべきです

于 2013-01-03T17:22:26.133 に答える
0

mysql_fetch_row使用する代わりにmysql_fetch_array

ORDER BY $sort $ascdscに変更します

 ORDER BY '".$sort."', '".$ascdsc."'

例:mysql_fetch_arraytry echo thisを使用して

  echo $row['dat_eb_registrants.id'] ;

あなたのSQLは読みにくい

これを使って

   SELECT dr.id, dr.first_name, dr.last_name, dr.email, dr.comment, dr.amount, dr.published, dr.transaction_id, dr.register_date, GROUP_CONCAT(df.field_value SEPARATOR '</td><td>') 
   FROM dat_eb_registrants dr 
   LEFT JOIN dat_eb_field_values df 
    ON dr.id=df.registrant_id
   WHERE `event_id` >= 20 AND `event_id` <= 25
   GROUP BY dr.id
   ORDER BY '".$sort."', '".$ascdsc."'

しかし、あなたはここで答えを受け入れました!!

于 2013-01-03T17:20:57.463 に答える