Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL PHP输出排序,获取输出之间的值_Php_Mysql_Sorting_While Loop_Output - Fatal编程技术网

MYSQL PHP输出排序,获取输出之间的值

MYSQL PHP输出排序,获取输出之间的值,php,mysql,sorting,while-loop,output,Php,Mysql,Sorting,While Loop,Output,我在将MySQL表推入HTML表时遇到了一个小问题 以下是我对数据库的选择: $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_regist

我在将MySQL表推入HTML表时遇到了一个小问题

以下是我对数据库的选择:

 $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

");

提前谢谢!Laurent

$row[9]
的数据放在一个数组中,然后在您觉得有必要时(以及在检查其他元素后)将其吐出

例如,更改此项:

while ($row = mysql_fetch_row($result)) {
echo "<tr>";
echo "<td>" . $row[9] . "</td>";
echo "<td>";
while($row=mysql\u fetch\u row($result)){
回声“;
回显“$行[9]”;
回声“;
为此:

while ($row = mysql_fetch_row($result)) {
$myArray[] ="<tr><td>" . $row[9] . "</td>""<td>";
while($row=mysql\u fetch\u row($result)){
$myArray[]=“”.$row[9]。“”;

使用
mysql\u fetch\u数组而不是
mysql\u fetch\u行

orderby$sort$ascdsc
将其更改为

 ORDER BY '".$sort."', '".$ascdsc."'
例如: 通过使用
mysql\u fetch\u数组
尝试回显

  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."'
选择dr.id、dr.first\u name、dr.last\u name、dr.email、dr.comment、dr.amount、dr.published、dr.transaction\u id、dr.register\u date、GROUP\u CONCAT(df.field\u value分隔符“”)
来自dat_eb_注册人dr
左连接数据\u eb\u字段\u值df
在dr.id=df.registant\u id上
其中,`event\u id`>=20和`event\u id`
while($row=mysql\u fetch\u row($result)){
回声“;
foreach(行为$val)
回声“$val.”;
回声“;
}

这应该可以

只是一个问题,为什么你还在使用mysql?你听说过myqsqli或PDO吗?是的,我知道这不好…我建议使用PDO,因为它对数据库有最广泛的支持,包括mysql、SQLite和PostGreSQL。我希望这会有所帮助,同时准备好的语句也能防止SQL注入攻击。好的,我会看看p你能举个例子吗?因为我不知道如何通过数组从mysql中提取值…区别是什么?OP使用数字键,fetch_row返回数字键和字符串键。你所做的只是减少了返回数组的大小,但没有从根本上改变任何东西。对不起,我不认为这是什么我的意思是,我想做的是将每个
字段的值表示为一个新行,这样我就可以分别使用它们。现在它一下子就给了我所有的东西。这就是我想得到的:$value1来自dat\u eb\u注册人$value3来自dat\u eb\u注册人$value5来自$row[9](在dat\u eb\u field\u values中)dat_eb_注册人的$value2$row[9](在dat_eb_字段_值中)的$value4您可以举个例子吗?因为我不知道如何通过一个数组从mysql中提取值,因为它来自一个数组…?这给了我一个解析错误?之后我如何“吐出”它们?(对所有的问题表示抱歉…)没问题,我建议只在数组中存储$row[9],当您吐出数据时,在($row=mysql_fetch_row($result)){$myArray[]=$row[9];echo”“;echo“$myArray[1];echo”“;
  echo $row['dat_eb_registrants.id'] ;
   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."'
while ($row = mysql_fetch_row($result)) {
    echo "<tr>";
    foreach($row AS $val)
        echo "<td>" . $val . "</td>";
    echo "<td>";
}