Domanda

Sto cercando di creare una versione più semplice di

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

Quello che sto cercando di fare è correre in modo che sia qualcosa come

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

Ora so che è orribile, ma sto solo cercando di attraversare quello che sto cercando di fare.

Sono abbastanza nuovo per gli array, e so che ho bisogno di un valore o foreach lì per l'offset.Non so solo come farlo.

Grazie a Chococroc il codice che ora utilizzo è:

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

L'ho impostato originariamente in $ i= 0 ma sembrava saltare una riga o 3 (a seconda dell'aggiornamento).

È stato utile?

Soluzione

Se ora dove inizi, e dove finisci, usa solo un ciclo 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);
}
.

Sii consapevole dell'offset, è il primo parametro nel limite.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top