0

我正在设计一个 PHP 文件来与我的 Android/iPhone 应用程序进行通信,并且遇到了一个简单但难以解决的问题。

我有这个函数,它只从数据库( MySQL )中获取三个参数( categories_id 、 categories_name 、 categories_picture ),并通过 jSON 响应将它们发送到我的应用程序。事情是:因为一件事或另一件事,类别没有按顺序发送(按 category_id ),我希望如此。

问题:有没有办法按 CATEGORIES_ID 同时订购三个数组?

当前响应示例: categories_id = ( 4, 8, 2, 1 ); categories_name=(椅子、桌子、灯、门);categories_picture=( www.xyz.com/photo4.jpg,www.xyz.com/photo8.jpg,www.xyz.com/photo2.jpg,www.xyz.com/photo1.jpg) 期望响应: categories_id = ( 1 , 2, 4, 8); categories_name=(门、灯、椅子、桌子);categories_picture=(www.xyz.com/photo1.jpg,www.xyz.com/photo2.jpg,www.xyz.com/photo4.jpg,www.xyz.com/photo8.jpg)

您是否看到这三个数组如何根据 categories_id 的分类发生变化?

当前功能:

if( $accion == 3 )
{    
    /*fetch category details from shop_category*/
    $sql = "select * from `shop_category` where `Stat` like 'Y' order by `CName`";
    $rec = @mysql_query( $sql );
    $row = @mysql_num_rows( $rec );**

    if( $row > 0 ) 
    {
        $path_to_link = 'category_pic/';
        while( $data = @mysql_fetch_array( $rec ) ) 
        {
            $categories_id[] = $data['C_ID'];
            $categories_name[] = stripslashes( $data['CName'] );
            $categories_picture[] = $domain.$path_to_link.$data['C_Image'];
        }

        $respond_categories = array( "categories_id"=>$categories_id, "categories_name"=>$categories_name, "categories_picture"=>$categories_picture );
        echo (json_encode($respond_categories)); 
    }

}

我要感谢所有花时间阅读的人。谢谢。

如果有人对此应用感兴趣,该应用名为:Google Play 中的 Cae de Cajon。它只是我的一个客户的测试版。:) 为它感到自豪。它也可以在 Apple Store 中找到,但不是最新的。

4

3 回答 3

2

这可能是有史以来最愚蠢的问题之一。答案可能是?:

$sql = "select * from shop_categorywhere Statlike 'Y' order by CID"; ??

我不知道。

谢谢

于 2012-06-09T15:18:26.723 回答
1

感谢您的解决方案。您可以在 while 循环中使用计数器而不是使用 C_ID 从数据库获取所需的响应,它看起来像

if( $accion == 3 )
{    
    /*fetch category details from shop_category*/
    $sql = "select * from `shop_category` where `Stat` like 'Y' order by `C_ID`";
    $rec = @mysql_query( $sql );
    $row = @mysql_num_rows( $rec );
if( $row > 0 ) 
{
    $path_to_link = 'category_pic/';

$i = 0;
while( $data = @mysql_fetch_array( $rec ) ) 
    {
        $category_array[] = $i;
    $categories_id[] = $data['C_ID'];
        $categories_name[] = stripslashes( $data['CName'] );
        $categories_picture[] = $domain.$path_to_link.$data['C_Image'];
    $i++;
    }

    $respond_categories = array( "category_array"=>$category_array,"categories_id"=>$categories_id, "categories_name"=>$categories_name, "categories_picture"=>$categories_picture );
    echo (json_encode($respond_categories)); 
}
}
于 2012-06-13T08:14:53.380 回答
0

您必须在查询中使用 order by 子句

于 2012-06-09T21:20:21.603 回答