Frage

Ich versuche eine einfachere Version davon zu machen

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

Was ich tun möchte, ist, es so auszuführen, dass es ungefähr so ​​aussieht

$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[]);

Jetzt weiß ich, dass das schrecklich ist, aber ich versuche nur rüberzubringen, was ich zu tun versuche.

Ich bin ziemlich neu in Sachen Arrays und weiß, dass ich dort ein for oder foreach für den Offset benötige.Ich bin mir nur nicht sicher, wie ich das machen soll.

Danke an Chococroc. Der Code, den ich jetzt verwende, ist:

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

Ich habe es ursprünglich auf $i = 0 gesetzt, aber es schien eine oder drei Zeilen zu überspringen (abhängig von der Aktualisierung).

War es hilfreich?

Lösung

Wenn Sie wissen, wo Sie beginnen und wo Sie aufhören, verwenden Sie einfach a for Schleife:

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

Beachten Sie den Offset, er ist der erste Parameter im Grenzwert.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top