waarde uit quantity lezen ipv regels te tellen
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)
1
2
3
4
5
6
7
8
9
10
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";
?>
$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";
?>
zo iets.
Maar ik vind je vraag te onduidelijk en je code verduidelijkt het me niet echt.
Dus gedetailleerder kan ik niet antwoorden
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
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)
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
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)
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..
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
Ivo P op 29/06/2017 10:01:36:
ja
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
In groupby komen alle kolommen die geen agregatie functie zijn. dus alles wat geen sum(), count(), max() etc is.
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.
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)
1
2
3
4
5
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";
, 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