Maar één resultaat na query...
Quote:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$con = mysqli_connect("localhost","*****","*****","*****");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
$result = mysqli_query($con, "SELECT id, game, copies, singleprice, packprice, (SUM(singleprice * copies) - packprice) AS savings FROM packs ORDER BY game ASC LIMIT 50");
while($row = mysqli_fetch_assoc($result))
{
echo "GAME:" . $row['game'] . "<br />";
echo "PRICE:" . $row['singleprice'] . "<br />";
echo "PACK:" . $row['packprice'] . "<br />";
echo "YOU SAVE:" . $row['savings'] . "<br />";
}
mysqli_close($con);
?>
$con = mysqli_connect("localhost","*****","*****","*****");
if (!$con)
{
die('Could not connect: ' . mysqli_error());
}
$result = mysqli_query($con, "SELECT id, game, copies, singleprice, packprice, (SUM(singleprice * copies) - packprice) AS savings FROM packs ORDER BY game ASC LIMIT 50");
while($row = mysqli_fetch_assoc($result))
{
echo "GAME:" . $row['game'] . "<br />";
echo "PRICE:" . $row['singleprice'] . "<br />";
echo "PACK:" . $row['packprice'] . "<br />";
echo "YOU SAVE:" . $row['savings'] . "<br />";
}
mysqli_close($con);
?>
Hij geeft echter maar één regel weer, waar ik er echt tientallen in mijn database heb staan. Deze code gebruikte ik voorheen ook en het werkte altijd. Sterker nog op dezelfde server gebruik ik op een andere pagina exact dezelfde code en hier werkt het wel. De fetch_array zit ook in een while-loop dus ik snap er niets van. Weet iemand waarom hij dit doet? En hoe ik dit op los? Heb andere fora uitgepluist maar ben niets nuttigs te weten gekomen...
Toevoeging op 01/03/2015 00:16:20:
Hmm... ben er al achter dat het te maken heeft met de SUM in mijn query. Weet iemand wat daar aan mankeert? Dit is de eerste keer dat ik een SUM probeer te verwerken in een query... had dus kunnen weten dat het de fout was. Maar nog niet achter waarom het fout is... iemand de oplossing? En het liefste ook een tut hierover?
Laat maar na veel gepuzzel ben ik erachter... moet simpelweg de SUM weglaten... kortom mijn query word dus:
$result = mysqli_query($con, "SELECT id, game, copies, singleprice, packprice, (singleprice * copies - packprice) AS savings FROM packs ORDER BY game ASC LIMIT 50");
Sorry voor de 'overlast'... ben blij dat ik erachter ben gekomen. :)
Gewijzigd op 01/03/2015 00:30:02 door Kevin Stoove
Als je SUM/COUNT/MIN/MAX gebruikt moet je ergens op groeperen (GROUP BY), wat je niet doet.
Thomas van den Heuvel op 01/03/2015 00:23:23:
Waar komt copies vandaan? Is dit gewoon een kolom in de "packs" tabel? Dan heb je die hele SUM niet nodig.
Als je SUM/COUNT/MIN/MAX gebruikt moet je ergens op groeperen (GROUP BY), wat je niet doet.
Als je SUM/COUNT/MIN/MAX gebruikt moet je ergens op groeperen (GROUP BY), wat je niet doet.
Je reageerde tegelijkertijd met mij... heb een edit toegepast gezien ik de oplossing gevonden heb. 'copies' is idd een kolom in de tabel 'packs'. Moest idd de SUM weglaten en simpelweg groeperen. Ik had dit nog nooit eerder gedaan... maar gelukkig zelf de oplossing gevonden. Toch nog bedankt voor je reactie!