statements gebruiken met sql
Bedoeling
Van iedere rij moet de kostprijs berekent worden. Ieder verbruik heeft zijn eigen waarde per eenheid. bv: kostprijs verbruikdag = 1000 * 1,6
Op zich is dit niet moeilijk.
Dit staat hieronder.
Huidige bewerking
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikeleknacht,verbruikelekexclnacht,verbruikgas,naam FROM energie";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Dag: ". ROUND($row['verbruikelekdag'] * 1.6)." euro " ." ".
"Nacht: ". ROUND($row['verbruikeleknacht'] * 1.4)." euro " ." ".
"Exclusief nacht: ". ROUND($row['verbruikelekexclnacht'] * 1.8)." euro " ."".
"Gas: ". ROUND($row['verbruikgas'] * 1)." euro " ." ". $row['naam'];
echo "<br />";
}
?>
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikeleknacht,verbruikelekexclnacht,verbruikgas,naam FROM energie";
$result = mysql_query($query) or die(mysql_error());
// Print out result
while($row = mysql_fetch_array($result)){
echo "Dag: ". ROUND($row['verbruikelekdag'] * 1.6)." euro " ." ".
"Nacht: ". ROUND($row['verbruikeleknacht'] * 1.4)." euro " ." ".
"Exclusief nacht: ". ROUND($row['verbruikelekexclnacht'] * 1.8)." euro " ."".
"Gas: ". ROUND($row['verbruikgas'] * 1)." euro " ." ". $row['naam'];
echo "<br />";
}
?>
Probleem
Wanneer er een waarde voor verbruikdag EN verbruiknacht ingevuld is veranderen de vaste waarden waarmee de getallen vermenigvuldigt moeten worden.
Ook wanneer verbruikdag EN verbruiknacht EN verbruikexclnacht ingevuld zijn veranderen de vaste waarden waarmee de getallen vermenigvuldigt moeten worden.
Ook wanneer verbruikdag EN verbruikexclnacht ingevuld zijn veranderen de vaste waarden waarmee de getallen vermenigvuldigt moeten worden.
Hoe kan ik dit op een vlotte manier doen?
IF statements of...
Gewijzigd op 14/12/2011 23:04:26 door Bert vandenbogaerde
Wat doet de berekening in je script? Is dat wat je eronder nog uitlegt (in welk geval ik me afvraag wat je nog wilt weten), of is dat iets anders?
Maar die waarde veranderd.
Wanneer verbruikelekdag en verbruikeleknacht waardes bevatten (zoals bij naam x2) dan veranderd die waarde waarmee verbruikelekdag en verbruikeleknacht vermenigvuldigd moet worden.
Wat zijn die waardes dan waarmee wel vermenigvuldigt moet worden? En heeft het verbruikgas ook nog invloed, of is dat gewoon standaard verbruik * waarde? In welk geval je het nu dus voor het gemak weg kunt laten.
Gas mag hier inderdaad even buiten beschouwing gelaten worden omdat het gaat om een vaste waarde ongeacht de andere verbruiken.
alleen verbruikelekdag:
maal 1,6
verbruikelekdag en verbruikeleknacht:
verbruikelekdag maal 1,4 en verbruikeleknacht maal 0,9
verbruikelekdag en verbruikeleknacht en verbruikelekexclnacht:
verbruikelekdag maal 1,2 en verbruikeleknacht maal 0,7 en verbruikelekexclnacht maal 0,5
verbruikelekdag en verbruikelekexclnacht:
verbruikelekdag maal 1,3 en verbruikelekexclnacht maal 0,6
Concreet
bijvoorbeeld naam x2:
verbruikelekdag en verbruikeleknacht:
1200 maal 1,4 en 1370 maal 0,9
Gewijzigd op 15/12/2011 10:08:04 door bert vandenbogaerde
Op zich lijkt het me dus niet zo'n groot probleem. Waar ik nog aan denk is om de database al een extra veld te laten genereren met daarin een getal dat aangeeft welke waardes gebruikt moeten worden. Dan zou je in de php script geen ifs meer hoeven gebruiken, maar gewoon de rij in een multidimensionale array die correspondeerd met het getal uit de database. Alleen of dat nu echt sneller danwel overzichtelijker is betwijfel ik.
Verbruikeleknacht en verbruikelekexclnacht kunnen niet alleen gevuld zijn.
Bedankt.
Is de vergelijking correct?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,naam,verbruikeleknacht,verbruikelekexclnacht,verbruikgas FROM energie";
$result = mysql_query($query) or die(mysql_error());
if ( "verbruikelekdag>'0'" and "verbruikeleknacht>'0'" ){
while($row = mysql_fetch_array($result)){
echo "Dag: ". ROUND($row['verbruikelekdag'] * 1.4)." euro " ." "."Nacht: ". ROUND($row['verbruikeleknacht'] * 0.9)." euro " ." ". $row['naam'];
}
} elseif ( "vergelijking" ){
} else ( "vergelijking" ){
}
?>
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,naam,verbruikeleknacht,verbruikelekexclnacht,verbruikgas FROM energie";
$result = mysql_query($query) or die(mysql_error());
if ( "verbruikelekdag>'0'" and "verbruikeleknacht>'0'" ){
while($row = mysql_fetch_array($result)){
echo "Dag: ". ROUND($row['verbruikelekdag'] * 1.4)." euro " ." "."Nacht: ". ROUND($row['verbruikeleknacht'] * 0.9)." euro " ." ". $row['naam'];
}
} elseif ( "vergelijking" ){
} else ( "vergelijking" ){
}
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekeclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekeclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekeclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekeclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
Er komt gewoon een blanco pagina.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$query = "SELECT verbruikelekdag,verbruikeleknacht,verbruikelekexclnacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
$query = "SELECT verbruikelekdag,verbruikeleknacht,verbruikelekexclnacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
Gewijzigd op 15/12/2011 18:43:28 door bert vandenbogaerde
Mijn excuus daarvoor, maar je moet ook niet zomaar ad hoc code overnemen, ook zelf even goed kijken ;)
Maar dit had geen effect, er blijft een blanco pagina tevoorschijn komen.
Kan het dat NULL niet herkend word?
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
// Make a MySQL Connection
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikelekexclnacht,verbruikeleknacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
// Make a MySQL Connection
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikelekexclnacht,verbruikeleknacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
//enzovoort
?>
Op regel 13 mis je een ) na result). Door de syntaxerror wordt je script niet uitgevoerd.
Ik heb dit ook al aangepast intussen, tevergeefs.
Of is er iets fout met mijn $query?
Is je connectie wel goed? Je weet welicht al dat mysql_connect en mysql_select_db ook resultaten geven?
$conn = mysql_connect($... ...);
$db = mysql_select_db($database);
als het goed gaat zijn $conn en $db dan niet false. Ook dat kun je checken met var_dump($variabelenaam);
Gewijzigd op 15/12/2011 23:20:30 door F Loogman
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikelekexclnacht,verbruikeleknacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
}
//enzovoort
?>
$host="";
$db_user="";
$db_password="";
$database="";
mysql_connect($host,$db_user,$db_password);
mysql_select_db($database);
$query = "SELECT verbruikelekdag,verbruikelekexclnacht,verbruikeleknacht FROM energie";
$result = mysql_query($query) or die(mysql_error());
while ($row = mysql_fetch_assoc($result)) {
if ($row['verbruikeleknacht'] == NULL && $row['verbruikelekexclnacht'] == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');
}
elseif ($row['verbruikeleknacht'] != NULL && $row['verbruikelekexclnacht' == NULL)
{
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.4, 2) . 'euro');
echo 'Nacht: ' . round($row['verbruikelekdag'] * 0.9, 2) . 'euro');
}
}
//enzovoort
?>
Gewijzigd op 15/12/2011 23:37:10 door bert vandenbogaerde
echo 'Dag: ' . round($row['verbruikelekdag'] * 1.6, 2) . 'euro');