Avatar billede sanded001 Juniormester
21. april 2022 - 11:21 Der er 10 kommentarer og
2 løsninger

Vælge specifik data kategori

Hej.

Jeg har en foreach med følgende.

foreach($con->query('SELECT Kategori, SUM(Pris)  FROM Indkobs_oversigt Group BY Kategori ') as $Kategori)
{

echo $Kategori["Kategori"];

echo $Kategori['SUM(Pris)' ] ;

}

Jeg kan fint echo og få alt data frem, som ligger under " Kategori ". her ligger feks Tøj, Elektronik, Smart Home

Mit spørgsmål er :

Hvordan echo jeg KUN Tøj fra denne forespørgsel?

Det er muligt super simpelt, men jeg er også super rookie - pft.
Avatar billede ejvindh Guru
21. april 2022 - 12:36 #1
if (strcmp($Kategori["Kategori"], "Tøj") == 0) {
echo $Kategori["Kategori"];
}
Avatar billede michael_stim Ekspert
21. april 2022 - 13:17 #2
Hvorfor ikke en WHERE kategori = "Tøj" i din SQL?
Avatar billede michael_stim Ekspert
21. april 2022 - 14:13 #3
Men hvis du KUN skal have Tøj fra Kategori, skal det vel ikke grupperes och summeres, eller?

SELECT * FROM Indkobs_oversigt WHERE Kategori = "Tøj"

Hvis du ved hvad du skal bruge fra tabellen, kan du med fordel bytte stjernen med de kolonner du skal hive data fra.

SELECT size, price, colour FROM Indkobs_oversigt WHERE Kategori = "Tøj"... (bare et eksempel).
Avatar billede sanded001 Juniormester
21. april 2022 - 14:53 #4
Tak for svar.

Jeg ønsker det delt op pga en oversigt jeg har lavet - men det er muligt ikke en foreach der er brug for, så meget muligt løsningen ligger i jeres svar.

Jeg roder lige ved det ved lejlighed - jeg vender retur :)

Men jeg tror måske ejvindh er inde på noget af det jeg ønsker med - if (strcmp($Kategori["Kategori"], "Tøj") == 0)
Avatar billede sanded001 Juniormester
21. april 2022 - 19:52 #5
Hej Igen.

Det var gode inputs :) tak for det. Det løste det ene af mit problem, at få udpenslet en dedikeret kategori navn. #ejvindh

Kan i også hjælpe med at få udpenslet den samlede Sum for " Tøj " , som bliver gemt i "Pris" kolonne? :)
Avatar billede ejvindh Guru
22. april 2022 - 08:28 #6
Velbekomme :-)

Jeg vil indrømme, at michael_stim's løsningsforslag er mere elegant. Men eftersom du nu har valgt at gå med min løsning, så her et forslag til, hvordan du kan få opsummeret:

$accumulatedPrice = 0;
if (strcmp($Kategori["Kategori"], "Tøj") == 0) {
echo $Kategori["Kategori"];
$accumulatedPrice += $Kategori["Pris"];
}
echo "Akkumuleret pris: ".$accumulatedPrice;
Avatar billede sanded001 Juniormester
22. april 2022 - 09:21 #7
Jeg synes ikke rigtig jeg får det til at fungere, som jeg ønsker, men det er sikkert mig, som ikke forklare mig ordentlig.

Men jeg vil mene at $accumulatedPrice += $Kategori["Pris"]; er ude i det rigtige.

SQL kolonne.

Kolonne : "Kategori"
              - input : "Tøj"

Kolonne : "Pris"


Men denne Pris - vil jeg gerne have udfra Kolonen i SQL'en som hedder "Kategori" og under denne kategori er der et ord som hedder "Tøj". Og det er denne Pris jeg ønsker samlet sammen SUM() - altså filtreret prisen, men specifikt valgt udfra ordet Tøj.

Håber det gir mening. :)
Avatar billede ejvindh Guru
22. april 2022 - 09:35 #8
Din forklaring er god nok, jeg har bare lavet en lille bøf: Jeg er kommet til at nulstille prisen før hver akkumulering. Prøv dette i stedet:

$accumulatedPrice = 0;

foreach($con->query('SELECT Kategori, SUM(Pris)  FROM Indkobs_oversigt Group BY Kategori ') as $Kategori)
{

  if (strcmp($Kategori["Kategori"], "Tøj") == 0) {
    echo $Kategori["Kategori"];
    $accumulatedPrice += $Kategori["Pris"];
  }

}
echo "Akkumuleret pris: ".$accumulatedPrice;
Avatar billede sanded001 Juniormester
22. april 2022 - 10:06 #9
Hmm den virker desværre ikke forsat.

output bliver :

Akkumuleret pris: 0Akkumuleret pris: 0Akkumuleret pris: 0Akkumuleret pris: 0Akkumuleret pris: 0TøjAkkumuleret pris: 0
Avatar billede ejvindh Guru
22. april 2022 - 10:37 #10
Jeg tror jeg skal se hele koden, for at kunne forklare dette resultat :)
Avatar billede sanded001 Juniormester
23. april 2022 - 10:05 #11
Selve den del af koden er således :

  <?php                                                                   


foreach($con->query('SELECT Kategori, SUM(Pris)  FROM Indkobs_oversigt Group BY Kategori ') as $Kategori) {

  if (strcmp($Kategori["Kategori"], "Elektronik") == 0) {

    echo $Kategori["Kategori"];

}


?>
Avatar billede sanded001 Juniormester
23. april 2022 - 10:34 #12
Så fik jeg den fikset. :) beklager hvis jeg måske allerede har fået svaret - men lære hele tiden.

$sql = "SELECT  SUM(Pris) from Indkobs_oversigt where Kategori = 'Tøj' ";

$result = $con->query($sql);

//display data on web page

while($row = mysqli_fetch_array($result)){

    echo " Total cost: ". $row['SUM(Pris)'];

    echo "<br>";

}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester





CIO
10 gratis artikler: Få gode råd fra Danmarks bedste it-ledere