Is there any optimization method for the following code?
$catalog_1 = "select name from commodity where catalog = 1 ORDER BY rank desc LIMIT 10";$result_1 = mysql_query($catalog_1);while($row_1 = mysql_fetch_assoc($result_1)){ $response [] = $row_1;}$catalog_2 = "select name from commodity where catalog = 2 ORDER BY rank desc LIMIT 10";$result_2 = mysql_query($catalog_2);while($row_2 = mysql_fetch_assoc($result_2)){ $response [] = $row_2;}$catalog_3 = "select name from commodity where catalog = 3 ORDER BY rank desc LIMIT 10";$result_3 = mysql_query($catalog_3);while($row_3 = mysql_fetch_assoc($result_3)){ $response [] = $row_3;}$catalog_4 = "select name from commodity where catalog = 4 ORDER BY rank desc LIMIT 10";$result_4 = mysql_query($catalog_4);while($row_4 = mysql_fetch_assoc($result_4)){ $response [] = $row_4;}$catalog_5 = "select name from commodity where catalog = 5 ORDER BY rank desc LIMIT 10";$result_5 = mysql_query($catalog_5);while($row_5 = mysql_fetch_assoc($result_5)){ $response [] = $row_5;}$catalog_6 = "select name from commodity where catalog = 6 ORDER BY rank desc LIMIT 10";$result_6 = mysql_query($catalog_6);while($row_6 = mysql_fetch_assoc($result_6)){ $response [] = $row_6;}$catalog_7 = "select name from commodity where catalog = 7 ORDER BY rank desc LIMIT 10";$result_7 = mysql_query($catalog_7);while($row_7 = mysql_fetch_assoc($result_7)){ $response [] = $row_7;}$catalog_8 = "select name from commodity where catalog = 8 ORDER BY rank desc LIMIT 10";$result_8 = mysql_query($catalog_8);while($row_8 = mysql_fetch_assoc($result_8)){ $response [] = $row_8;}$catalog_11 = "select name from commodity where catalog = 11 ORDER BY rank desc LIMIT 10";$result_11 = mysql_query($catalog_11);while($row_11 = mysql_fetch_assoc($result_11)){ $response [] = $row_11;}$catalog_10 = "select name from commodity where catalog = 10 ORDER BY rank desc LIMIT 10";$result_10 = mysql_query($catalog_10);while($row_10 = mysql_fetch_assoc($result_10)){ $response [] = $row_10;}
Reply to discussion (solution)
function getCataLog($catalog){$catalog = "select name from commodity where catalog = ".$catalog." ORDER BY rank desc LIMIT 10";$result = mysql_query($catalog); while($row = mysql_fetch_assoc($result)){ $response [] = $row;}}
Rewrite to method
Is that the call? getCataLog (11 );
But no data is available.
Is that the call? getCataLog (11 );
But no data is available.
function getCataLog($catalog){ $catalog = "select name from commodity where catalog = ".$catalog." ORDER BY rank desc LIMIT 10"; $result = mysql_query($catalog); while($row = mysql_fetch_assoc($result)){ $response [] = $row; } return $response;}
There is another amazing problem.
Catalog = 11 the database has 3 Records
Catalog = 12 the database has 11 records
$ Responses = getCataLog (11) + getCataLog (12 );
In this way, 14 records are output, but only 10 records are output. In addition, the data of catalog = 12 is connected from Article 4.
If this is not the case, the + in php is overwritten with the same key value as the merged array_merge in the array.
select name,catalog,rank from commodity c where 10 > (select count(*) from commodity where catalog=c.catalog and id>c.id) and catalog in (1,2,3,4,5,6,7,8,10,11) order by c.catalog,c.rank desc
function getCataLog($catalog,&$response = array()){ $catalog = "select name from commodity where catalog = ".$catalog." ORDER BY rank desc LIMIT 10"; $result = mysql_query($catalog); while($row = mysql_fetch_assoc($result)){ $response [] = $row; }}$response = array();getCataLog(1,$response);var_dump($response);getCataLog(2,$response);var_dump($response);
select name,catalog,rank from commodity c where 10 > (select count(*) from commodity where catalog=c.catalog and id>c.id) and catalog in (1,2,3,4,5,6,7,8,10,11) order by c.catalog,c.rank desc
How can I add two more conditions? I have added these conditions, but I am not able to connect to the database. I am missing a lot of data.
$marketId = $_GET['marketId'];$cityId = $_GET['cityId'];"select name from commodity where catalog = 1 and cityId = $cityId and marketId = $marketId ORDER BY rank desc LIMIT 10""select name,catalog,rank from commodity c where 10 > (select count(*) from commodity where catalog=c.catalog and id>c.id) and catalog in (1,2,3,4,5,6,7,8,10,11) and cityId = $cityId and marketId = $marketId order by c.catalog,c.rank desc"