Samle mysql linjer når de er ens
Jeg har nogen varelinjer som ligger i en Mysql database.Varelinjerne skal kombineres når de er ens.
Det vil sige at alle "pcs" skal ligges sammen og alle "value" skal ligges sammen der hvor "origin" og "costumsid" er ens.
Min mysql ser sådan her ud:
INSERT INTO `TTreport` (`id`, `costumsid`, `origin`, `pcs`, `xorder`, `xid`, `unitprice`, `valuedkk`) VALUES
(514, 20, 'CH', '8', 124246297, '6873303', '112.15375', '897.23'),
(515, 20, 'SE', '2', 124246297, '6873302', '30', '60'),
(516, 20, 'CH', '1', 124246297, '6873304', '4000', '4000'),
(517, 3, 'NL', '5', 124246297, '6873301', '100', '500');
I det ovenstående eksempel er det 3 linjer der skal kombineres til én linje.
Her er min PHP kode:
<?
$hentfinal=mysqli_query($conn,"SELECT * FROM TTreport ");
while($row=mysqli_fetch_array($hentfinal)){
$hent=mysqli_query($conn,"SELECT * FROM TTFinalReport WHERE costumsid='$row[costumsid]' AND origin='$row[origin]'");
$count=mysqli_num_rows($hent);
if($count==0){
mysqli_query($conn, "INSERT INTO TTFinalReport (costumsid,origin,pcs,unitprice,valuedkk) VALUES('$row[costumsid]','$row[origin]','$row[pcs]','$row[unitprice]','$row[valuedkk]')");
}
else
{
$hentet=mysqli_query($conn,"SELECT * FROM TTreport WHERE costumsid='$row[costumsid]' AND origin='$row[origin]'");
$counted=mysqli_num_rows($hentet);
while($rows=mysqli_fetch_array($hentet)){
$pcs=$pcs+$rows["pcs"];
$value=$value+$rows["valuedkk"];
}
$m++;
echo $m." ".$counted."<br>";
if($counted==$m){
mysqli_query($conn, "UPDATE TTFinalReport SET pcs='$pcs' WHERE costumsid='$row[costumsid]' AND origin='$row[origin]'");
mysqli_query($conn, "UPDATE TTFinalReport SET valuedkk='$value' WHERE costumsid='$row[costumsid]' AND origin='$row[origin]'");
$m=0;
$pcs=0;
$value=0;
}
}
}
?>
Her er resultatet i TTFinalReport
INSERT INTO `TTFinalReport` (`id`, `costumsid`, `origin`, `pcs`, `unitprice`, `valuedkk`) VALUES
(37, 20, 'CH', '8', '112.15375', '897.23'),
(38, 20, 'SE', '2', '30', '60'),
(39, 3, 'NL', '5', '100', '500');
Som det virker nu, så bliver alle costumsid og origin lagt sammen, men pcs, og valuedkk bliver ikke opdateret.
Nogen foreslag ?