Pri insertu u tabelu imam gomilu polja, pa umjesto da pisem liniju od "kilometar" - konacno odlucih da odvojim minut-dva i to konacno sredim. Elem, naletih na glup problem, samo jos nisam utvrdio ko je glup: ja ili mi php nesto brlja
Po "vuku", next() ce vratiti false ako vise nema elemenata u nizu.
dakle:
PHP kôd:
function insertRow($table, $data) {
$dbFieldNames = "";
$dbFieldValues = "";
foreach ($data as $field=>$value) {
$dbFieldNames .= $field;
$dbFieldValues .= "'".$value."'";
if (next($data)) {
$dbFieldNames .= ",";
$dbFieldValues .= ",";
}
}
return $this->rawQuery("INSERT INTO $table ($dbFieldNames) VALUES ($dbFieldValues)";) ? true : false;
}
Fora je u tome sto mi u ovom slucaju next() nekoliko puta vrati false iako foreach NIJE stigao do poslednjeg elementa, i onda nemam zarez izmedju polja/vrijednosti (= sql syntax error).
U medjuvremenu sam sredio problem po "seljacki":
PHP kôd:
if (end($data) !== $value) {
$dbFieldNames .= ",";
$dbFieldValues .= ",";
}
... i to radi pos'o, ali mi i dalje nije jasno u cemu je problem sa prvim nacinom. next() koristim i pri dump-u baze i "sklapam" query-je za backup fajl, tu sve radi kako treba.
Je l' neko imao slicnu muku, prvenstveno da znam da li ja grijesim ili je nesto drugo u pitanju.