فب-إعادة تشغيل الاستعلام مع متغيرات مختلفة

StackOverflow https://stackoverflow.com//questions/25090205

  •  02-01-2020
  •  | 
  •  

سؤال

أحاول عمل نسخة أبسط من

$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);
}

يكون على بينة من الإزاحة ، انها المعلمة الأولى في الحد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top