我有一个flash应用程序,其中多个用户可以登录并上传图像。用户登录后可以查看自己上传的图片,也可以查看其他用户上传的图片(只允许上传图片)。为此,我将通过php生成XML文件。
请检查xml文件
<images>
<users user_name="Hardik">
<image image_id="1316683023140" image_title="water" image_desc="water" image_path="all_users/Hardik/1316683023140.jpg" image_like="false"/>
<image image_id="1316683057577" image_title="sunset" image_desc="sunset" image_path="all_users/Hardik/1316683057577.jpg" image_like="false"/>
<image image_id="1316683115124" image_title="hills" image_desc="hills" image_path="all_users/Hardik/1316683115124.jpg" image_like="false"/>
<image image_id="1316683713159" image_title="sun" image_desc="sun" image_path="all_users/Hardik/1316683713159.jpg" image_like="false"/>
<image image_id="1316684544200" image_title="sun" image_desc="sun" image_path="all_users/Hardik/1316684544200.jpg" image_like="false"/>
<image image_id="1316686014899" image_title="sun" image_desc="sun" image_path="all_users/Hardik/1316686014899.jpg" image_like="false"/>
<image image_id="1316600184214" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600184214.jpg" image_like="false"/>
<image image_id="1316668356801" image_title="hello" image_desc="hello" image_path="all_users/Hardik/1316668356801.jpg" image_like="false"/>
<image image_id="1316600221759" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600221759.jpg" image_like="false"/>
<image image_id="1316600193960" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600193960.jpg" image_like="false"/>
<image image_id="1316600172938" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600172938.jpg" image_like="false"/>
<image image_id="1316600144316" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600144316.jpg" image_like="false"/>
<image image_id="1316600173551" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600173551.jpg" image_like="false"/>
<image image_id="1316600177792" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600177792.jpg" image_like="false"/>
<image image_id="1316496700758" image_title="sunset" image_desc="sunset" image_path="all_users/Hardik/1316496700758.jpg" image_like="false"/>
<image image_id="1316252181829" image_title="allow" image_desc="allow" image_path="all_users/Hardik/1316252181829.jpg" image_like="false"/>
<image image_id="1316690195793" image_title="asasdas" image_desc="asdasd" image_path="all_users/Hardik/1316690195793.jpg" image_like="false"/>
<image image_id="1316600153509" image_title="asd" image_desc="asd" image_path="all_users/Hardik/1316600153509.jpg" image_like="false"/>
<image image_id="1316408901775" image_title="winter" image_desc="winter" image_path="all_users/Hardik/1316408901775.jpg" image_like="false"/>
</users>
<users user_name="raj">
<image image_id="1315996252734" image_title="abc" image_desc="abc" image_path="all_users/raj/1315996252734.jpg" image_like="false"/>
</users>
<users user_name="sandip">
<image image_id="1315996256153" image_title="abc" image_desc="abc" image_path="all_users/sandip/1315996256153.jpg" image_like="false"/>
</users>
</images>
我有一个逻辑问题与我的XML文件(这是由PHP生成的)。现在我想改变子标签的顺序。我想有一个用户(已登录)的子标记在第一个位置。
说明如果sandip登录,他的子标签应该优先出现,而不是硬的。
你可以在这里查看我的php代码
<?php
require_once('connection.php');
header('Content-type: text/xml');
echo "<?xml version='1.0' encoding='UTF-8'?>";
echo "<images>";
$id='';
$count=0;
$result_1 = '';
$query = "select ui.userId as 'UI userId', ua.userName as 'UI userName', ui.imageId as 'UI ImageId', ul.imageId as 'UL ImageId' , ui.imageRights, ui.imagePath, ui.imageTitle, ui.imageDesc from user_account ua, (select * from user_images where userId=".$_REQUEST['userId']." or imageRights='Allow') as ui left join (select * from user_likes where userId=".$_REQUEST['userId'].") as ul on ui.imageId = ul.imageId where ua.userId=ui.userId order by ui.userId";
$result_row = mysql_query($query);
while($row = mysql_fetch_array($result_row, MYSQL_ASSOC))
{
if($id != $row['UI userId'])
{
if($count == 0)
{
$result_1 .= "<users user_name='".$row['UI userName']."'>";
}
else
{
$result_1 .= "</users>";
$result_1 .= "<users user_name='".$row['UI userName']."'>";
}
$id = $row['UI userId'];
}
$result_1 .= "<image image_id='".$row['UI ImageId']."' image_title='".$row['imageTitle']."' image_desc='".$row['imageDesc']."' image_path='".$row['imagePath']."' image_like='";
if($row['UL ImageId'])
$result_1 .= "true";
else
$result_1 .= "false";
$result_1 .= "' />";
$count++;
if($count == mysql_num_rows($result_row))
$result_1 .= "</users>";
}
echo $result_1;
echo "</images>";
?>
我想建议一些修复你的php脚本除了解决你的问题:
$num_of_rows = mysql_num_rows($result_row); // Don't call this every loop it's very slow
$rows = [];
while($row = mysql_fetch_array($result_row, MYSQL_ASSOC)){
if($id == $row['UI userId']){
// Print the logged in user's images
} else {
$rows[] = $row;
}
}
// Print here the rest of the results
foreach ($rows as $row) {
if($id != $row['UI userId'])
{
if($count == 0)
{
$result_1 .= "<users user_name='".$row['UI userName']."'>";
}
else
{
$result_1 .= "</users>";
$result_1 .= "<users user_name='".$row['UI userName']."'>";
}
$id = $row['UI userId'];
}
$result_1 .= "<image image_id='".$row['UI ImageId']."' image_title='".$row['imageTitle']."' image_desc='".$row['imageDesc']."' image_path='".$row['imagePath']."' image_like='";
if($row['UL ImageId'])
$result_1 .= "true";
else
$result_1 .= "false";
$result_1 .= "' />";
$count++;
if($count == $num_of_rows)
$result_1 .= "</users>";
}
echo $result_1;
echo "</images>";
?>