database uitlezen en automatisch laten optellen ... uiteindelijk moet getal zichtbaar worden
Ik heb bepaalde gegevens in een database staan
Nu heb ik in de admin een functie ingebouwd die de waardes uitleest (gesorteerd)
Maar nu komt mijn probleempje
Doordat nu alles gesorteerd word per product, krijg ik dus alle waades van die product te zien (Dit pas ik later aan naar X aantal per pagina, die oplossing heb ik al)
Maar ik wil nu eigenlijk nog een functie inbouwen, die alles in een bepaalde table bij elkaar opteld.
En dat het in de admin getoond gaat worden als een getal (Bijv. Totaal: 95)
Zodat ik niet zelf alles hoef op te tellen, maar dat ik de waardes direct kan zien in een getal.
Wie zou mij eventueel op weg kunnen helpen?
Alvast bedankt
mysql kan prima rekenen/tellen.
<code>
CREATE TABLE IF NOT EXISTS `cookie` (
`id` int(10) NOT NULL AUTO_INCREMENT,
`date` datetime NOT NULL,
`ip` varchar(255) NOT NULL,
`hash` varchar(32) NOT NULL,
`allow` enum('yes','no') NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=7 ;
</code>
Nu is het mijn bedoeling om: allow uit te lezen.
Deze heeft 2 verschillende waardes, namelijk yes en no
Nu wil ik eigenlijk het volgende
Hij moet alles optellen met de waarde yes en dat weer gaan geven als een getal.
Zodat ik in de admin niet alle pagina's moet gaan tellen,
maar gewoon direct kan inzien hoeveel er totaal met yes zijn
Maar hoe moet ik die optel som maken?
SELECT COUNT(*) AS total
WHERE allow='yes'
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
require("../config.inc.php");
$getaa = mysql_query("SELECT * FROM cookie WHERE (allow='yes') ORDER BY date DESC ");
while($geta = mysql_fetch_array($getaa))
{
$id = ("$geta[id]");
$ip = ("$geta[ip]");
$date = ("$geta[date]");
$allow = ("$geta[allow]");
?>
require("../config.inc.php");
$getaa = mysql_query("SELECT * FROM cookie WHERE (allow='yes') ORDER BY date DESC ");
while($geta = mysql_fetch_array($getaa))
{
$id = ("$geta[id]");
$ip = ("$geta[ip]");
$date = ("$geta[date]");
$allow = ("$geta[allow]");
?>
Nu wilde ik ja uitlezen in een getal
En heb ik het volgende gedaan:
Code (php)
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
<?php
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total WHERE allow='yes' ");
{
$allow = ("$geta[allow]");
?>
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total WHERE allow='yes' ");
{
$allow = ("$geta[allow]");
?>
<table border="0" cellpadding="5" width="100%">
<tr>
<td width="50%" class="TextListe" bgcolor="#B3E6B3"><b>Totaal:</b> </td>
<td width="50%" class="TextListe" bgcolor="#B3E6B3"><b>Totaal:</b> ...</td>
</tr>
</table>
Maar ik krijg geen resultaat
Wat doe ik verkeerd?
In je 1e code fetch je wel, in je tweede niet.
Waarom die variabele tussen () en "" ?
Bouw foutafhandeling in.
Waarom in je 1e script kopiëren van variabelen? Ook daar: waarom () en ""?
Ik werk pas met php en met Mysql sinds 2 jaar
Maar aldoende leert men ;)
Ik had die while er in 1ste instantie ook bij staan:
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
<?php
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total WHERE allow='yes' ");
while($geta = mysql_fetch_array($getaa))
{
$allow = ("$geta[allow]");
?>
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total WHERE allow='yes' ");
while($geta = mysql_fetch_array($getaa))
{
$allow = ("$geta[allow]");
?>
Maar kreeg ik deze fout melding in de browser te zien:
Code (php)
1
2
3
2
3
<?
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/admin/domains/----------/public_html/admin/extra/cookies.inc.php on line 23
?>
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in /home/admin/domains/----------/public_html/admin/extra/cookies.inc.php on line 23
?>
Vandaar dat ik het ook zonder probeerde
Bye the way ... line 23 is waar while staat.
Geen foutafhandeling in je query.
Je hebt maar 1 resultaat; je hebt dus geen while nodig. Alleen fetchen is voldoende.
Waar zou allow vandaan moeten komen in geta[allow] ?
Door onderstaande:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total_yes FROM cookie WHERE allow='yes'");
$geta = mysql_fetch_object($getaa);
$total_yes = $geta->total_yes;
$getaa = mysql_query("SELECT COUNT(*) AS total_no FROM cookie WHERE allow='no'");
$geta = mysql_fetch_object($getaa);
$total_no = $geta->total_no;
echo "<table border='0' cellpadding='5' width='100%'>
<tr>
<td width='50%' class='TextListe' bgcolor='#B3E6B3'><b>Totaal: </b> ".$total_yes."</td>
<td width='50%' class='TextListe' bgcolor='#B3E6B3'><b>Totaal: </b> ".$total_no."</td>
</tr>
</table>";
?>
require("../config.inc.php");
$getaa = mysql_query("SELECT COUNT(*) AS total_yes FROM cookie WHERE allow='yes'");
$geta = mysql_fetch_object($getaa);
$total_yes = $geta->total_yes;
$getaa = mysql_query("SELECT COUNT(*) AS total_no FROM cookie WHERE allow='no'");
$geta = mysql_fetch_object($getaa);
$total_no = $geta->total_no;
echo "<table border='0' cellpadding='5' width='100%'>
<tr>
<td width='50%' class='TextListe' bgcolor='#B3E6B3'><b>Totaal: </b> ".$total_yes."</td>
<td width='50%' class='TextListe' bgcolor='#B3E6B3'><b>Totaal: </b> ".$total_no."</td>
</tr>
</table>";
?>
Zoals eerder gezegt verdiep ik me pas sinds 2 jaar in php en mysql.
Ik weet ook nog lang niet alles ;)
Waarom ("")! zo kreeg ik het werkend, vandaar nu ook weer gebruikt
Maar wat is dan het verschil als ik met ("") gebruik en als ik die niet gebruik?
Foutafhandeling vergeet ik inderdaad heel vaak.
En tot nu toe heb ik nog nooit een optel sommetje gemaakt, vandaar dat ik while gebruikte.
Maar alsnog bedankt voor de stap in de goeie richting. ;)
php (echo) = '
Waarom fetch_object?