فب-إعادة تشغيل الاستعلام مع متغيرات مختلفة
سؤال
أحاول عمل نسخة أبسط من
$query1 = "SELECT $select FROM HelpDesk ORDER BY createdtime DESC LIMIT 100";
$records1 = $client->doQuery($query);
$query2 = "SELECT $select FROM HelpDesk ORDER BY createdtime DESC LIMIT 100,100";
$records2 = $client->doQuery($query2);
ما أتطلع إلى القيام به هو تشغيله بحيث يكون شيئا مثل
$qnum = 1; qmax = 15; $offset = 100;
while (qnum < $qmax) {
$query# = "SELECT $select FROM Table ORDER BY Field DESC LIMIT 100,$offset";
$records# = $client->doQuery($query#);
}
$records = array_merge($records[]);
الآن أعلم أن هذا أمر مروع ، لكنني أحاول فقط تجاوز ما أحاول القيام به.
أنا جديد إلى حد ما على المصفوفات ، وأنا أعلم أنني بحاجة إلى أو فوريش هناك للإزاحة.أنا فقط غير متأكد من كيفية القيام بذلك.
بفضل شوكوكروك رمز أنا الآن باستخدام هو:
$query1 = "SELECT $select FROM HelpDesk ORDER BY createdtime DESC LIMIT 100";
$records1 = $client->doQuery($query1);
$records = array();
for ($i = 100; $i <= 1500; $i+=100 ) {
$query = "SELECT $select FROM HelpDesk ORDER BY createdtime DESC LIMIT 100,$i";
$new_records = $client->doQuery($query);
$records = array_merge($records, $new_records);
}
$records = array_merge($records, $records1);
لقد قمت بتعيينه في الأصل على-أنا = 0 ولكن يبدو أنه تخطي صفا أو 3 (اعتمادا على التحديث).
المحلول
إذا كنت الآن من أين تبدأ ، وأين تنتهي ، فما عليك سوى استخدام for
حلقة:
$result = array();
for ($i = 100; $i <= 1500; $i+=100 ) {
$query = "SELECT $select FROM HelpDesk ORDER BY createdtime DESC LIMIT $i, 100";
$new_result = $client->doQuery($query);
$result = array_merge($result, $new_result);
}
يكون على بينة من الإزاحة ، انها المعلمة الأولى في الحد.
لا تنتمي إلى StackOverflow