waarde uit quantity lezen ipv regels te tellen

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Mohamed nvt

Mohamed nvt

28/06/2017 09:13:51
Quote Anchor link
Op de index.php heb ik een tabel met daarin wat data, die aangeeft welke medicijn over een tijdje zullen over datum zijn. En, dus wanneer ik een datum kies, dan zou de script de waarde uit quantity input field lezen om hoeveel het medicijnen gaat i.p.v. gewone records te lezen.

Om de waarde uit de quantity input te lezen heb ik de script wel. En, volgens mij zou ik het moeten plaatsen na de $num variabel, maar dan snap ik de logica van onderstaande script niet meer...

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php $expireperiod = mysqli_real_escape_string ($dbc, $_POST['expireperiod']);
        $expirequery = "SELECT id, medicinename, genericname, expiredate FROM medicines WHERE verwijderd <> 1 AND expiredate <= DATE_ADD(DATE_ADD(CURDATE(), INTERVAL $expireperiod), INTERVAL 10 DAY) AND expiredate >= DATE_SUB(DATE_ADD(CURDATE(), INTERVAL $expireperiod), INTERVAL 10 DAY) AND userid = '{$_SESSION['user_id']}'";
        $expireresult = mysqli_query($dbc, $expirequery);
            //Count the number of returned row:
            $num = mysqli_num_rows($expireresult);
            if ($num > 0){ //// If it ran OK, display the records.
            
                //Print how many expired medicines there are:

                echo "<p>There are currently $num medicines that will expire soon!</p>\n";
?>
 
PHP hulp

PHP hulp

19/01/2021 10:39:33
 
Ivo P

Ivo P

28/06/2017 10:03:38
Quote Anchor link
SELECT SUM(quantity) AS aantal FROM ......

zo iets.

Maar ik vind je vraag te onduidelijk en je code verduidelijkt het me niet echt.
Dus gedetailleerder kan ik niet antwoorden
 
Mohamed nvt

Mohamed nvt

29/06/2017 09:42:01
Quote Anchor link
Ivo P op 28/06/2017 10:03:38:
SELECT SUM(quantity) AS aantal FROM ......

zo iets.

Maar ik vind je vraag te onduidelijk en je code verduidelijkt het me niet echt.
Dus gedetailleerder kan ik niet antwoorden


Hallo Ivo,

Ik heb nog eens naar dit probleem gekeken. En, aanvankelijk dacht ik een SQL query te moeten draaien bij de $num variabel, maar eigenlijk klopt dit niet.
En daarom heb ik bovenstaande query het eea aangepast en direct gedraaid op mysql.
Aangepaste query:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SELECT sum(quantity) AS quantity, id, medicinename, genericname, expiredate FROM medicines WHERE verwijderd <> 1 AND expiredate <= DATE_ADD(DATE_ADD(CURDATE(), INTERVAL 6 month), INTERVAL 10 DAY) AND expiredate >= DATE_SUB(DATE_ADD(CURDATE(), INTERVAL 6 month), INTERVAL 10 DAY) AND userid = 3 GROUP by medicinename


Het resultaat zie je op het plaatje

http://hawarco.co/img/quantity.PNG
En, wat ik eigenlijk wil is het totale van de quantity optellen en het weergeven.
Hopelijk is nu mijn vraag wel duidelijk :-)
Gewijzigd op 29/06/2017 09:43:50 door Mohamed nvt
 
Ivo P

Ivo P

29/06/2017 09:47:06
Quote Anchor link
je mag best af en toe op enter drukken....

je mist het een en ander in het stuk GROUP BY.
daar horen id, medicinename, genericname, expiredate alle 4

Mysql zou daar een foutmelding op moeten geven, tenzij je setting "doe maar wat bij groupby fouten" in my.cnf hebt staan (default)
 
Mohamed nvt

Mohamed nvt

29/06/2017 09:59:23
Quote Anchor link
Haha! volgende keer zal ik af en toe op enter drukken...
Maar goed, ik snap je feedback niet helemaal.

Bedoel je dat eigenlijk alle 4, dus id, medicinename, genericname en expiredate in de GROUP BY moeten zitten?
Geen idee hoe de setting nu zijn, want het draait bij de webhosting partij..

Oh jah het total van de quantity hoef ik niet perse in dezelfde tabel weer te geven. Ik wil het enkel vermelden in een zin en dat mag onder of boven het tabel..
 
Ivo P

Ivo P

29/06/2017 10:01:36
Quote Anchor link
Mohamed nvt op 29/06/2017 09:59:23:
Bedoel je dat eigenlijk alle 4, dus id, medicinename, genericname en expiredate in de GROUP BY moeten zitten?


ja
 
Mohamed nvt

Mohamed nvt

29/06/2017 10:09:38
Quote Anchor link
Ivo P op 29/06/2017 10:01:36:
Mohamed nvt op 29/06/2017 09:59:23:
Bedoel je dat eigenlijk alle 4, dus id, medicinename, genericname en expiredate in de GROUP BY moeten zitten?


ja

Oke, heb ik gedaan, maar ik zie eigenlijk geen verschil..Voor mij ziet precies hetzelfde uit...En, jah ik zie geen totale van de quantities...

http://hawarco.co/img/quantity1.PNG
Gewijzigd op 29/06/2017 10:10:07 door Mohamed nvt
 
Ivo P

Ivo P

29/06/2017 10:18:10
Quote Anchor link
je hebt nu quantity zelf ook bij group by gezet.

In groupby komen alle kolommen die geen agregatie functie zijn. dus alles wat geen sum(), count(), max() etc is.
 
Mohamed nvt

Mohamed nvt

29/06/2017 10:38:19
Quote Anchor link
Ivo P op 29/06/2017 10:18:10:
je hebt nu quantity zelf ook bij group by gezet.

In groupby komen alle kolommen die geen agregatie functie zijn. dus alles wat geen sum(), count(), max() etc is.


Tnx! done. En dit is puur om het weergeven van de data, toch?
Blijft er nog over hoe ik de alle waardes van quantity kan lezen...

http://hawarco.co/img/quantity2.PNG

Toevoeging op 29/06/2017 16:15:17:

Ik vroeg me af of het volgende mogelijk is:

In PHP heb ik onderstaande query staan en bij het uitvoeren krijg ik reeds een resultaat.
Is het mogelijk om dan alle aantal/sum(quantity) te lezen, want ik heb reeds een resultaat/stukje informatie, toch?
Moet ik dan het resultaat in een variabel stoppen en op een andere manier de quantity uit te lezen?
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
$expirequery = "SELECT sum(quantity) AS quantity,id, medicinename, genericname
, expiredate FROM medicines WHERE verwijderd <> 1 AND
 expiredate <= DATE_ADD(DATE_ADD(CURDATE(), INTERVAL $expireperiod),
INTERVAL 10 DAY) AND expiredate >= DATE_SUB(DATE_ADD(CURDATE(), INTERVAL $expireperiod), INTERVAL 10 DAY)
AND userid = '{$_SESSION['user_id']}' GROUP BY quantity, medicinename, genericname, expiredate";
Gewijzigd op 29/06/2017 16:16:23 door Mohamed nvt
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.