waar moet nu WHERE
Dit stuk hieronder werkt. Ik wil echter het result alleen van vandaag (WHERE TIME >CURRENT_DATE)
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ") ; //gives number of last row
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
Wie helpt me met plaatsen van WHERE time> current_date
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ") ; //gives number of last row
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
Wie helpt me met plaatsen van WHERE time> current_date
Na je definiering van de tabel in FROM.
Zie ook de syntax op deze pagina: https://dev.mysql.com/doc/refman/5.6/en/select.html
PS: De MySQL-functies zijn binnenkort uit PHP verwijderd. Verdiep je liever in de MySQLi- of PDO-functies..
Zie ook de syntax op deze pagina: https://dev.mysql.com/doc/refman/5.6/en/select.html
PS: De MySQL-functies zijn binnenkort uit PHP verwijderd. Verdiep je liever in de MySQLi- of PDO-functies..
Gewijzigd op 16/11/2015 20:09:16 door - Ariën -
Dankje, maar dat werkt niet dwz zoals ik dat deed.
Zou je nogmaals willen kijken.
Zou je nogmaals willen kijken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<?php
// laat de browsers weten dat we JSON data terugsturen
header('Content-Type: application/json');
// Start MySQL Connection
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("******", "******","*****") or die (mysql_error());
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("******", $db);
if (!$db) {
echo '{"status":"failure","error":"' . mysql_error() . '"}'; // geef ook foutmeldingen terug in JSON
exit;
}
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ") ; //gives number of last row
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
// omdat er maar één rij opgevraagd wordt is een IF logischer dan een WHILE
if($row = mysql_fetch_array($result)) {
echo '{"status":"success","sum":' . $row['sum'] . '}';
exit;
}
echo '{"status":"failure","error":"Geen informatie gevonden. (tabel readings3 is leeg?)"}';
?>
// laat de browsers weten dat we JSON data terugsturen
header('Content-Type: application/json');
// Start MySQL Connection
/* Verbinding met de MySQL database maken.*/
$db = mysql_connect("******", "******","*****") or die (mysql_error());
/* Selecteer de database waarop de query gedraaid moet worden.*/
mysql_select_db("******", $db);
if (!$db) {
echo '{"status":"failure","error":"' . mysql_error() . '"}'; // geef ook foutmeldingen terug in JSON
exit;
}
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ") ; //gives number of last row
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
// omdat er maar één rij opgevraagd wordt is een IF logischer dan een WHILE
if($row = mysql_fetch_array($result)) {
echo '{"status":"success","sum":' . $row['sum'] . '}';
exit;
}
echo '{"status":"failure","error":"Geen informatie gevonden. (tabel readings3 is leeg?)"}';
?>
Code (php)
1
2
3
2
3
<?php //kleurtjes tonen
$result = mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE() LIMIT ". ($count-1).", 1 ") ;
?>
$result = mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE() LIMIT ". ($count-1).", 1 ") ;
?>
Zorg ook voor goede foutafhandeling die aangeeft wat er fout gaat met mysql_error().
Nu komt er fout melding te staan Geen informatie gevonden. (tabel readings3 is leeg?) dat is die niet ook niet vandaag.
Hmm... zorg eerst een dat je van die onnodige exit's af bent.
En controleer eerst of je query gelukt is, waarna je je data fetched.
En controleer eerst of je query gelukt is, waarna je je data fetched.
Gewijzigd op 16/11/2015 20:50:54 door - Ariën -
.....
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE()")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE() LIMIT ". ($count-1).", 1 ") ;
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
....
Zo werkt het wel, echter zit het ()probleem ergens anders. Heeft met het vullen van de tabel te maken .
Daar wordt de kolom al opgetelt, dus moet de teller dus resetten.
Bedankt voor de moeite
//identify last row
$count = mysql_num_rows(mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE()")); //gives number of rows
$result = mysql_query("SELECT * FROM readings3 WHERE `time` > CURRENT_DATE() LIMIT ". ($count-1).", 1 ") ;
if(!$result)
{
echo '{"status":"failure","error":"query mislukt"}';
exit;
}
....
Zo werkt het wel, echter zit het ()probleem ergens anders. Heeft met het vullen van de tabel te maken .
Daar wordt de kolom al opgetelt, dus moet de teller dus resetten.
Bedankt voor de moeite
Gewijzigd op 16/11/2015 20:56:45 door arnaud feith
Allereerst, Ariën zegt niet voor niets dat je moet gaan kijken naar PDO of mysqli. Omdat mysql_connect, mysql_query, mysql_etc functies verwijdert gaan worden uit PHP. Aangezien je daar nog niet op heb gereageerd attendeer ik je hier nog eens op.
Qua structuur, kijk eerst of je query's lukken voordat je dingen gaat doen.
Deze code is ongetest, en aangezien ik niet werk met mysqli durf ik niet met zekerheid te zeggen of alle mysql functies gewoon een i erachter kunnen hebben ja of nee.
Maar waar het hier vooral om ging is dat je een bepaalde structuur aan moet houden en die en exit alleen gebruiken als het echt nodig is.
In jouw code staat er aan het begin bij jouw database verbinding, Als het niet lukt, stop script. Daaronder ga je pas kijken of $db niet leeg is, en zo wel een foutmelding proberen uit te printen terwijl het script allang al gestopt is.
Daarbij moet je uitkijken met JSON code hard-coded in jouw script te zetten, nergens voor nodig. Het maakt het onoverzichtelijk en je hoeft maar een te commatje vergeten en het werkt meteen niet meer. Ik heb er maar een simpel functie voor geschreven en dacht dat het hier mee zou werken, maar alles ongetest..
Qua structuur, kijk eerst of je query's lukken voordat je dingen gaat doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php
function jsonfy($status, $data){
return json_encode(['status' => $status, $data]);
}
// laat de browsers weten dat we JSON data terugsturen
header('Content-Type: application/json');
// Start MySQL Connection
/* Verbinding met de MySQL database maken.*/
$db = mysqli_connect("******", "******","*****");
if (!$db) {
echo jsonfy('failure', ['error' => mysqli_error()]);
} else {
if(mysqli_select_db("******", $db)){
if($rsl = mysqli_query("SELECT * FROM readings3")){
$count = mysqli_num_rows($rsl);
if($count > 1 ){
if($rsl = mysqli_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ")){
if($row = mysqli_fetch_array($rsl)){
echo jsonfy('success', ['sum' => $row['sum']]);
} else {
// whoops, empty row? How could this be!!
echo jsonfy('failure', ['error' => 'Geen informatie gevonden. (tabel readings3 is leeg?)']);
}
} else {
echo jsonfy('failure', ['error' => 'query mislukt']);
}
} else {
echo jsonfy('failure', ['error' => 'Tabel is leeg of heeft maar 1 row']);
}
}
} else {
// Could not select database.
}
}
?>
function jsonfy($status, $data){
return json_encode(['status' => $status, $data]);
}
// laat de browsers weten dat we JSON data terugsturen
header('Content-Type: application/json');
// Start MySQL Connection
/* Verbinding met de MySQL database maken.*/
$db = mysqli_connect("******", "******","*****");
if (!$db) {
echo jsonfy('failure', ['error' => mysqli_error()]);
} else {
if(mysqli_select_db("******", $db)){
if($rsl = mysqli_query("SELECT * FROM readings3")){
$count = mysqli_num_rows($rsl);
if($count > 1 ){
if($rsl = mysqli_query("SELECT * FROM readings3 LIMIT ". ($count-1).", 1 ")){
if($row = mysqli_fetch_array($rsl)){
echo jsonfy('success', ['sum' => $row['sum']]);
} else {
// whoops, empty row? How could this be!!
echo jsonfy('failure', ['error' => 'Geen informatie gevonden. (tabel readings3 is leeg?)']);
}
} else {
echo jsonfy('failure', ['error' => 'query mislukt']);
}
} else {
echo jsonfy('failure', ['error' => 'Tabel is leeg of heeft maar 1 row']);
}
}
} else {
// Could not select database.
}
}
?>
Deze code is ongetest, en aangezien ik niet werk met mysqli durf ik niet met zekerheid te zeggen of alle mysql functies gewoon een i erachter kunnen hebben ja of nee.
Maar waar het hier vooral om ging is dat je een bepaalde structuur aan moet houden en die en exit alleen gebruiken als het echt nodig is.
In jouw code staat er aan het begin bij jouw database verbinding, Als het niet lukt, stop script. Daaronder ga je pas kijken of $db niet leeg is, en zo wel een foutmelding proberen uit te printen terwijl het script allang al gestopt is.
Daarbij moet je uitkijken met JSON code hard-coded in jouw script te zetten, nergens voor nodig. Het maakt het onoverzichtelijk en je hoeft maar een te commatje vergeten en het werkt meteen niet meer. Ik heb er maar een simpel functie voor geschreven en dacht dat het hier mee zou werken, maar alles ongetest..
Gewijzigd op 16/11/2015 22:58:45 door Johan K
Bedankt voor het onderstrepen van PDO en MYSQLI.
Daar heb ik al helemaal geen kaas van gegeten.
Komt wellicht nog.
Zoals ik hierboven al schreef werkt het script wel echter wil ik een aanpassing doen.
Maar dat moet dan wel voor dat het de database ingeslingerd wordt , zag ik aan de waarde.
Bedankt voor de snelle reacties.
Daar heb ik al helemaal geen kaas van gegeten.
Komt wellicht nog.
Zoals ik hierboven al schreef werkt het script wel echter wil ik een aanpassing doen.
Maar dat moet dan wel voor dat het de database ingeslingerd wordt , zag ik aan de waarde.
Bedankt voor de snelle reacties.
Ik zou wel haast maken met de overstap naar MySQLi. Want in PHP 7 zullen de oude functies die jij gebruikt niet meer werken. Het zal nog enkele jaren zijn dat PHP 5.4 en PHP 5.5 (PHP6 bestaat niet) ondersteund worden, en dan is het echt over en uit met die functies.
Ander vraagje, zijn er misschien conversie programma's? (vraag zonder eerst google te hebben geraadpleegd) Ja dus net gevonden eens zien wat er gebeurd.
Gewijzigd op 18/11/2015 19:05:39 door arnaud feith
Waarvoor?
Om te zien wat er veranderd hoe ik me dat een beetje kan aan leren ,nadruk beetje.
Wat wil je converteren?
Want op zich zijn MySQL-functies zo herschreven naar MySQLi-functies. MySQL als opslag blijft verder gewoon MySQL, en daar verandert weinig aan.
In de meeste gevallen is het gewoon het toevoegen van een 'i' en het toevoegen van een connectie-parameter:
wordt:
Je kan ook de Object Oriented versie van MySQLI gebruiken. Maar voor beginners raad ik mijn manier aan als je het even snel wilt toepassen.
Want op zich zijn MySQL-functies zo herschreven naar MySQLi-functies. MySQL als opslag blijft verder gewoon MySQL, en daar verandert weinig aan.
In de meeste gevallen is het gewoon het toevoegen van een 'i' en het toevoegen van een connectie-parameter:
wordt:
Je kan ook de Object Oriented versie van MySQLI gebruiken. Maar voor beginners raad ik mijn manier aan als je het even snel wilt toepassen.
Gewijzigd op 18/11/2015 19:12:04 door - Ariën -
Okee, ik ben bezig met een arduino deze leest kwh meters uit en schrijft naar database.
Met kopieren en plakken kom ik een eind.
Verder heb ik het niet echt veel nodig, maar moet wel werken.
Er zijn veel voorbeelden die staan allemaal met sql.
Zal er eens naar zoeken wat ze allemaal van plan zijn al 10jaar.
Met kopieren en plakken kom ik een eind.
Verder heb ik het niet echt veel nodig, maar moet wel werken.
Er zijn veel voorbeelden die staan allemaal met sql.
Zal er eens naar zoeken wat ze allemaal van plan zijn al 10jaar.
Je kan ook de oude functies gebruiken, maar bij een update van PHP naar versie 7 (die bijna een officiële release heeft) zullen die functies allemaal niet meer werken.
Eens bij hostingprovider vragen wat ze van plan zijn.




