آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ترتیب بر اساس دیتابیس در پروژه مارکت

dani  12 سال پیش  10 سال پیش
+1 0

سلام .....هر کی می دونه تو رو خدا کمکم کنه..

من می خوام تو لیستم هر چی تو دیتابیس می زارم بر اساس دیتا بیس بیاد ...الان هر چی تو دیتابیس میریزم میره اخر لیست .ولی من می خوام اول لیست بیاد .. منون .تو اموزش ها هم نگاه کردم ولی استاد دکمه گذاشتن واسه هر کدوم من می خوام خودش بدون دکمه هر چی تو دیتابیس بزارم اول لیست بیاد ممنون  ..اینم کدش ..اگه میشه بگین چی بنویسم که بر اساس دیتابیس نمایش داده بشه.....اولی کد پی اچ پی هست ...دومی کد لیستم......

 

 header('Content-Type: text/html; charset=utf-8');
if (isset($_REQUEST['action'])){
$action = $_REQUEST['action'];
} else {
echo "Invalid Data";
exit;
}

if ($action=="read"){
read();
}

/**
*
*/
function connectToDatabase(){

$connection=mysqli_connect("localhost", "dani_star2", "60507746s", "dani_star2");
if (mysqli_connect_errno()) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

mysqli_set_charset($connection,"UTF8");
return $connection;
}

/**
*
*/
function read(){
$connection = connectToDatabase();
$result = mysqli_query($connection, "SELECT * FROM app");








$output = array();
while($row = mysqli_fetch_array($result)) {
$record = array();
$record['app_id'] = $row['app_id'];
$record['app_name'] = $row['app_name'];
$record['app_price'] = $row['app_price'];
$record['app_logoUrl'] = $row['app_logoUrl'];
$record['app_ratingValue'] = $row['app_ratingValue'];
$record['app_author'] = $row['app_author'];
$record['app_votes'] = $row['app_votes'];
$record['app_file'] = $row['app_file'];
$record['app_filesize'] = $row['app_filesize'];
$record['app_versionName'] = $row['app_versionName'];
$record['app_installs'] = $row['app_installs'];
$record['app_description'] = $row['app_description'];
$record['app_phoneNumber'] = $row['app_phoneNumber'];
$record['app_email'] = $row['app_email'];
$output[] = $record;
}

#echo "
";
#print_r($output);
#echo "
";
echo json_encode($output);
mysqli_close($connection);
}



*****************************************************************************************
*****************************************************************************************
*****************************************************************************************
*****************************************************************************************

 package ir.starqeshm.starqeshm;

import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.os.Bundle;
import android.widget.ListView;


public class starqeshm2 extends EnhancedActivity {

private ListView list;
private starqeshm3 adapter;

private ArrayList applications = new ArrayList();


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.starqeshm_2);

list = (ListView) findViewById(R.id.list);
adapter = new starqeshm3(applications);
list.setAdapter(adapter);

// populateFakeDate();
// populateFromDatabase();
populateFromServer();
}


private void populateFromServer() {

String result = Webservice.readUrl("http://starqeshm.ir/market-server/service.php?action=read", null);

if (result != null) {
try {
applications.clear();
JSONArray apps = new JSONArray(result);
for (int i = 0; i < apps.length(); i++) {
JSONObject object = apps.getJSONObject(i);
StrucApplication application = new StrucApplication();

application.name = object.getString("app_name");
application.Price = object.getInt("app_price");
application.ratingValue = (float) object.getDouble("app_ratingValue");

application.author = object.getString("app_author");
application.description = object.getString("app_description");
application.email = object.getString("app_email");
application.phoneNumber = object.getString("app_phoneNumber");
application.filesize = object.getLong("app_filesize");
application.installs = object.getInt("app_installs");
application.versionName = object.getString("app_versionName");
application.votes = object.getInt("app_votes");

applications.add(application);
}

adapter.notifyDataSetChanged();
}
catch (JSONException e) {
e.printStackTrace();
}
}
}
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Spirit  12 سال پیش
+1 0

سلام ، برای این کار میشه تو قسمت سرور توی query ترتیب رو صعودی یا نزولی کنید ، البته فکر کنم حداقل باید یدونه فیلد داشته باشین که این امکان رو فراهم کنه ، یعنی یه فیلد با نوع عدد. این لینک رو ببینید خیلی واضح این مبحث رو آموزش داده :

http://www.tutorialspoint.com/sqlite/sqlite_order_by.htm

البته فکر کنم خود خود آرایه رو هم میشه ترتیب بندی کرد (بدون نیاز به تغییر سمت سرور) ، من بلد نیستم فعلا.

این خط رو با پایینی جایگزین کد به احتمال زیاد حل بشه (اصلاح شد) :

$result = mysqli_query($connection, "SELECT * FROM app");
$result = mysqli_query($connection, "SELECT * FROM app ORDER BY app_id DESC");

 

 

0 0
کسی اگه میدونه تو کد باید چی بنویسم ممنون میشم (12 سال پیش)
0 0
spirit خان درست میگه دیگه. اون دستور select * from app رو به آخرش یه order by اضافه کن و بر اساس تاریخ درج برنامه مرتبشون کن و بعد به برنامه بفرستشون (12 سال پیش)
0 0
میتونین کد دقیقش بگید و کجا باید بزارم (12 سال پیش)
0 0
بر اساس ID هم میشه صعودی تنظیم کرد چون آیدی مرتب افزایش پیدا میکنه و تکراری هم نیست. (12 سال پیش)
0 0
خوب چه جوری بر اساس ایدی .کدش رو هگه میشه بنویسید ..کد برنامه گذاشتم میشوه کپی کنین و ویرایش کنین و بزارید همینجا تا بهتر متوجه شم (12 سال پیش)
0 0
جواب رو ویرایش کردم (البته اگه فیلد app_id اونی باشه که من فکر میکنم یعنی عددی و بدون تکرار) ، در ضمن ما قصدمون آموزش ماهیگیری بود ولی شما فقط ماهی میخوای بخوری :| (12 سال پیش)
0 0
ببخشید app_id من عددی هست و بدون تکرار ولی بازم هر چی جدید می زارم تو دیتابیس میره اخر لیستم نشون میده ... کدی که فرمودید بازم امتحان کردم ولی درست نشد ...او قدر ها هم ماهی گرفتن اسون نیست اگه راهی دارین که جواب بده ممنون میشم (12 سال پیش)
0 0
راستی اگه بر اساس اپ ایدی بزنم خوب تو دیتابیس که رکورد جدید بزنم میره اخر یعنی عدد بزرگ تر از قبلی میگره پس پایین تر میره ...راه دیگه ای هم هست مثلا بر اساس رکورد جدید کدش اگه میدونید بگید لطفا (12 سال پیش)
0 0
$result = mysqli_query($connection, "SELECT * FROM app ORDER BY app_id desc"); (12 سال پیش)
0 0
رکوردهای جدید دارای آیدی های بزرگتری هستند پس شما لیست رو به صورت" نزولی" تنظیم کنید و به این صورت هر رکوردی که ثبت بشه میاد اول از همه (12 سال پیش)
پاسخ به سوال 
dani  12 سال پیش
+1 0

خودم پیدا کردم ممنون ولی اگه کمک شماها نبود نمی تونستم

 $result = mysqli_query($connection, "SELECT * FROM app ORDER BY app_id DESC");
+1 0
مدیونی اگه فکر کنی من نمیدونم نزولی صعودی چیه ها :D ، یه دو تا حرف رو کم نوشتم فقط :| (12 سال پیش)
0 0
عزیزی ... اگه تو نبودی نمیتونستم (12 سال پیش)
0 0
timestamp در PHP زمان افزودن یک رکورد را به دیتابیس ذخیره میکنه که میتونه راه حلی برای مسله فوق باشه یعنی یکی از فیلد ها را timestamp بگذارین مقدار دهی اتوماتیک صورت می پذیره مثل همان آی دی (10 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .