problema con query

Stato
Chiusa ad ulteriori risposte.

Odino7009

Nuovo Utente
23 Mag 2022
4
0
1
Buon giorno a tutti,
sto creando un programma per una azienda in php 8.xx , ma da due settimane o un problema e non ne vengo fuori

"php mi raggruppa corettamente i dati richiesti, mi fa anche la somma dei totale, per singolo cliente, ma non lo fa con tutti i clienti ecco esempio:
P.S. io sto utilizzando 2 DB in mysql..

28 1 2 100 = 1 -----> questo è un cliente
28 1 2 95 = 2 -----> questo è un 2° cliente
28 2 2 70 = 1
29 1 2 45 = 1
30 1 2 8 = 1
30 1 2 0 = 1
30 1 2 125 = 1

sei i primi 3 valori " 28 1 2 " sono uguali, deve fare la somma di 100+95 =3 sono le righe raggruppate.
chiedo un aiuto a chiunque ..grazie mille
 
scrivendo

28 1 2 100

hai probabilmente esposto il contenuto di 4 colonne,
per aiutarti, occorre conoscere il nome delle colonne ed il nome della tabella
 
Grazie per la risposta, allego dati richiesti..


<?php

$id_cat = $_GET['tp'];

$tipo=$id_cat;
switch($id_cat)
{

case 4:
$tipo=1;
break;
case 50:
$tipo=2;
break;
case 23:
$tipo=3;
break;
case 51:
$tipo=4;
break;
case 52:
$tipo=5;
break;
case 91:
$tipo=6;
break;
case 90:
$tipo=8;
break;
}

include("config/configazienda.php");
$sqltre ="SELECT * FROM associaz
JOIN asso_az ON id_assoc = ks_assoc
JOIN azienda_tbl ON ks_azi = id_az
WHERE ks_azienda = $id";

$resulttre = mysqli_query($db_az, $sqltre);
while($rowtre = mysqli_fetch_assoc($resulttre))

{

include("config/configlistino.php");
$sqlgra = "SELECT ks_misura, ks_coltivazione, ks_forme , SUM(`n_piante`) as total ,COUNT(*) AS count


FROM `listino_".$tipo."`

WHERE `ks_pianta` = '$pnt'
AND `ks_misura`
BETWEEN '28' AND '32'
AND `ks_azienda` = $rowtre[ks_azi]
GROUP BY ks_misura, ks_coltivazione, ks_forme

";


if ($resultgra = mysqli_query($db_lst, $sqlgra)) {


while( $rowgra = mysqli_fetch_assoc($resultgra)){



$misura = $rowgra['ks_misura'];
$colti = $rowgra['ks_coltivazione'];
$forma = $rowgra['ks_forme'];
$total = $rowgra['total'];
$n_righe = $rowgra['count'];


echo"<tr>
<td>$rowgra[ks_misura]</td>
<td>$rowgra[ks_coltivazione]</td>
<td>$rowgra[ks_forme]</td>
<td>$total</td>
<td>= $n_righe</td>

</tr>"."<br>";

}
}
}

?>
 
la query é all'interno dello script che hai pubblicato,
se sostituisci alle variabili PHP, i valori necessari, ottieni sicuramente il risultato

SQL:
$sqlgra = "SELECT ks_misura, ks_coltivazione, ks_forme , SUM(`n_piante`) as total ,COUNT(*) AS count
FROM `listino_".$tipo."`
WHERE `ks_pianta` = '$pnt'
AND `ks_misura` BETWEEN '28' AND '32'
AND `ks_azienda` = $rowtre[ks_azi]
GROUP BY ks_misura, ks_coltivazione, ks_forme";
 
la query é all'interno dello script che hai pubblicato,
se sostituisci alle variabili PHP, i valori necessari, ottieni sicuramente il risultato

SQL:
$sqlgra = "SELECT ks_misura, ks_coltivazione, ks_forme , SUM(`n_piante`) as total ,COUNT(*) AS count
FROM `listino_".$tipo."`
WHERE `ks_pianta` = '$pnt'
AND `ks_misura` BETWEEN '28' AND '32'
AND `ks_azienda` = $rowtre[ks_azi]
GROUP BY ks_misura, ks_coltivazione, ks_forme";
Grazie per la risposta, ma a quali valori ti riferisci ?
Ti allego anche il codice che genera la prima tabella e funziona tutto, è solo quando richiedo unione di righe che non me le associa.

<?php
$id = $_GET['id'];
$tp = $_GET['tp'];
$id_cat = $_GET['tp'];
$pnt = $_GET['pnt'];


$tipo=$id_cat;
switch($id_cat)
{

case 4:
$tipo=1;
break;
case 50:
$tipo=2;
break;
case 23:
$tipo=3;
break;
case 51:
$tipo=4;
break;
case 52:
$tipo=5;
break;
case 91:
$tipo=6;
break;
case 90:
$tipo=8;
break;
}



include("config/configpiante.php");
$sql8 = " SELECT *
FROM tbl_pianta_$tipo
JOIN tbl_genere ON ks_gnr_pnt = id_genere
JOIN tbl_type ON ks_type = id
JOIN tbl_famiglia ON ks_famiglia = id_famiglia
JOIN tbl_specie ON ks_spc_pnt = id_specie
JOIN tbl_varieta ON ks_vrt_pnt = id_varieta
WHERE id_pnt_$tipo = '$pnt'
";


$result8 = mysqli_query($db_pnt, $sql8);

while($rowpnt = mysqli_fetch_assoc($result8))

{

if($rowpnt['nome_varieta']=='')
$nmpnta="$rowpnt[nome_genere] $rowpnt[nome_specie]";
else
if($rowpnt['clone']=='')
$nmpnta="$rowpnt[nome_genere] $rowpnt[nome_specie] $rowpnt[nome_varieta]";
else
$nmpnta="$rowpnt[nome_genere] $rowpnt[nome_specie] $rowpnt[nome_varieta] $rowpnt[clone]";



$nome_forma = "forma_".$lingua_sito;
$nome_colt = "coltivaz_".$lingua_sito;



include("config/configlistino.php");
$sql6 = " SELECT *, carat_colt.$nome_colt as coltivaz,carat_colt.id_coltivazione as id_colt
FROM `listino_".$tipo."`
JOIN tbl_forme_coltivaz ON id_forma = ks_forme
JOIN tbl_misura ON id_misura = ks_misura
JOIN carat_colt ON ks_coltivazione = carat_colt.id_coltivazione
WHERE ks_pianta = '$pnt'
order by $nome_forma,carat_colt.$nome_colt,label_misura

";

$result6 = mysqli_query($db_lst, $sql6);


while($row6 = mysqli_fetch_assoc($result6))
{


include("config/configazienda.php");
$sql3 ="SELECT * FROM associaz
JOIN asso_az ON id_assoc = ks_assoc
JOIN azienda_tbl ON ks_azi = id_az

WHERE ks_azi = $row6[ks_azienda]";

$result3 = mysqli_query($db_az, $sql3);
if(mysqli_num_rows($result3) > 0)
{
while($row = mysqli_fetch_assoc($result3))

{


if ($id_cat == $tp){

echo"
<tr>
<td>$row6[ks_pianta]</td>
<td>$nmpnta</td>
<td>$row6[coltivaz_it]</td>
<td>$row6[forma_it]</td>
<td>$row6[label_misura]</td>
<td>$row6[lt_cont]</td>
<td>$row6[n_piante]</td>
<td>0</td>
<td>0</td>
<td>$row6[note]</td>
<td>$row[name_az]</td>
</tr>
";

}

elseif ($id_cat == 'null') {
echo "";
}
}
}
}
}



?>

e questo è uno screenshot della tabella che ricevo a video
 

Allegati

  • tabella1.jpg
    tabella1.jpg
    252,3 KB · Visite: 144
Stato
Chiusa ad ulteriori risposte.

Discussioni simili