Ich habe folgende Arraystrukturin php Foreach Schleife bewegt sich in die falsche Taste
jobs = {70811 ={....invoices = { A="A",...},...},...}
Dann werden zwei verschachtelte Schleifen I haben. Die äußere verschachtelte Schleife sucht nach jedem Job # in diesem Fall 70811. Die innere Schleife sucht dann nach jeder Rechnung, die für den Job aufgelistet ist. Ich
in jeder Schleife Abfrage eine der Tabellen
foreach ($this->p['jobs'] as $job => $value) {
$sql = 'select concat(sum(i.`AMOUNT`))as `amount`, ...
from `invoice` i
where i.`JOBID` = '.$job.'
group by i.`tracknum` = "'.$this->cTrackKey.'"';
$cmeJobEdits = 0;
if ($result = $db->query($sql))
{
if ($result->num_rows > 0)
{
$this->budget = mysqli_fetch_all($result, $resulttype = MYSQLI_ASSOC);
$subTot = 0;
for ($i=0; $i<count($this->budget);$i++)
{
$subTot += $this->budget[$i]['amount'];
}
...
unset($i);
$xsql = 'update `cmejob` set `balance` = '.$this->budget[0]['balance'].',... where `jobid` = '.$job;
if (!$result = $db->query($xsql))
{
throw new Exception("Query to update budget failed!");
}else{
$cmeJobEdits++;
}
unset($xsql);
}
}else{
throw new Exception("Query to get billed amounts for this job failed! "`enter code here`);
}
unset($sql);
unset($value);
}//end loop updating cme jobs
Mein Problem ist, das die äußere Abfrage, wo die $ Jobvariable nicht der nächste Auftrag # ist aber die verschachtelte Array-Schlüssel „Rechnungen“, wie unten dargestellt.
Wie im Code gezeigt, habe ich versucht, die Abfrage und Schlüsselvariablen in den Schleifen ohne Erfolg zu deaktivieren.
select concat(sum(i.`AMOUNT`))as `amount`, ...
from `invoice` i
where i.`JOBID` = invoices //this is the value of the variable $job
group by i.`tracknum` = "'.$this->cTrackKey.'"';
Warum rufen Sie 'CONCAT()' mit nur einem Argument auf? – Barmar
Ich sehe nicht, wie das passieren könnte, wenn die Daten so sind, wie Sie es zeigen. Bitte posten Sie 'var_dump ($ this-> p ['jobs']);'. – Barmar
Ich habe die concat() nur hinzugefügt, um eine Bezeichnung für die Spalte zu erhalten. Will posten die var_dump – Claus