MYSQL PHP输出排序,获取输出之间的值
我在将MySQL表推入HTML表时遇到了一个小问题 以下是我对数据库的选择: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
$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>";
}