Hallo,
Ik ben bezig met een soort statistieken overzicht.
Daarin staat een tabel , gevuld met MySQL gegevens.
De tabel bestaat uit 5 Kolommen
De eerste 4 kolommen zijn gegevens uit de database.
Kolom nummer 5 is een kolom die de waarde van de overige kollomen bij elkaar optelt.
Nu kan ik dus die eerste 4 kolommen mooi sorteren doormiddel van een SQL query.
Alleen gaat dat natuurlijk niet met kolom 5.
Ik zal jullie even de code laten zien , ter verduidelijking , hoe ik de gegevens uit de MySQL database krijg.
[code=php]<?
$buscaCompany = new buscaCompany();
if (isset($_POST['orderBy'])) $orderBy = $_POST['orderBy']; else $orderBy = 1;
if (isset($_POST['orderType'])) $orderType = $_POST['orderType']; else $orderType = "ASC";
if ($orderBy!=6) {
$arStatistics = $buscaCompany->getAllStatistics($orderBy, $orderType);
} else {
$arStatistics = $buscaCompany->getAllStatistics(1, "ASC");
asort($arStatistics);
echo $arStatistics;
}
if($arStatistics)
$count=0;
foreach($arStatistics as $stat) {
$company = $buscaCompany->getAllById($stat['company_id']);
$stat['company_name'] = $company['name'];
$arStatistics[$count] = $stat;
$count++;
}
?>
<html>
<head>
<title>EnCore - Busca - Statistics</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="./css/style.css" rel="stylesheet" type="text/css">
<script language="javascript">
var allSelected = false;
function orderBy(order_by) {
if(document.statisticsForm.orderBy.value == order_by && document.statisticsForm.orderType.value == "DESC") document.statisticsForm.orderType.value = "ASC";
else if(document.statisticsForm.orderBy.value == order_by && document.statisticsForm.orderType.value == "ASC") document.statisticsForm.orderType.value = "DESC";
document.statisticsForm.orderBy.value = order_by;
document.statisticsForm.submit();
}
</script>
</head>
<body>
<table width="100%">
<!-- Begin Form -->
<form name="statisticsForm" action="<?=$PHP_SELF;?>" method="POST">
<input type="hidden" name="orderBy" value="<?=$orderBy?>">
<input type="hidden" name="orderType" value="<?=$orderType?>">
<tr bgcolor="#EEEEEE">
<td colspan="7">
<table height="25" width="100%">
<td>BUSCA > <a href="statistics.php">Statistics</a></td>
<!--<td align="right"><input type="button" value="Update Activities" onclick="activitiesUpdate();"></td>-->
<table width="100%" border="1" style="border-collapse:collapse">
<?
echo "<tr bgcolor='#DDDDDD'>\n";
echo "<td align=center><b><a href='javascript:orderBy(1);'>id</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(3);'>company name</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(2);'>clicks</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(4);'>List views</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(5);'>Form views</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(6);'>Total</a></b></td>\n";
echo "</tr>\n";
$count = 0;
if ($arStatistics)
foreach ($arStatistics as $stat) {
if($bgcolor == "#FFFFFF"){
$bgcolor = "#F8F6F8";
}else{
$bgcolor = "#FFFFFF";
}
echo "<tr height=21 bgcolor='$bgcolor' onMouseover='this.style.backgroundColor=\"#FFFFD7\";' onMouseout='this.style.backgroundColor=\"$bgcolor\";'>\n";
echo '<td align=center width=5%>'.$stat['company_id'].'</td>';
echo '<td>'.$stat['company_name'].'</td>';
echo '<td align=center width=10%>'.$stat['clicks'].'</td>';
echo '<td align=center width=10%>'.$stat['list_clicks'].'</td>';
echo '<td align=center width=10%>'.$stat['form_clicks'].'</td>';
echo '<td align=center width=10%>'.$total.'</td>';
echo '</tr>';
$count++;
} else {
echo("<tr><td class=red>SORRY NO STATISTICS FOUND</td></tr>");
}
?>
[/code=php]
De query staat in een andere klasse.
Die is denk ik ook verder niet voor belang van deze vraag.
Ik wil ook graag die 5e kolom kunnen sorteren.
Dus moet ik de gegevens na de query , opnieuw opvangen en filtereren.
De gegevens die ik dus opvang , moet ik in een multi-dimensionale array zetten(zo redeneer ik goed toch?)
Dat stukje ziet er zo uit
[CODE=php]
if ($orderBy!=6) {
$arStatistics = $buscaCompany->getAllStatistics($orderBy, $orderType);
} else {
$arStatistics = $buscaCompany->getAllStatistics(1, "ASC");
asort($arStatistics);
echo $arStatistics;
}[/code=php]
Het gaat dus om het stukje vanaf de ELSE statement
Ik sorteer dus gewoon ook voor de laatste kolom in de query(alleen dan op de eerste kolom , puur om gegevens op te vangen)
Daarna wil ik de array graag even echo-en , om alleen al even mijn output te zien.
Maar daar gaat het dus al mis.
Terwijl de query hetzelfde is als bij de IF statement alleen dan met vaste waarde.
En ik krijg geen resultaten terug.
Weet iemand waar mijn denkwijze fout zit?
Of kan iemand mij weer even de goede kant opsturen?
Ik ben bezig met een soort statistieken overzicht.
Daarin staat een tabel , gevuld met MySQL gegevens.
De tabel bestaat uit 5 Kolommen
De eerste 4 kolommen zijn gegevens uit de database.
Kolom nummer 5 is een kolom die de waarde van de overige kollomen bij elkaar optelt.
Nu kan ik dus die eerste 4 kolommen mooi sorteren doormiddel van een SQL query.
Alleen gaat dat natuurlijk niet met kolom 5.
Ik zal jullie even de code laten zien , ter verduidelijking , hoe ik de gegevens uit de MySQL database krijg.
[code=php]<?
$buscaCompany = new buscaCompany();
if (isset($_POST['orderBy'])) $orderBy = $_POST['orderBy']; else $orderBy = 1;
if (isset($_POST['orderType'])) $orderType = $_POST['orderType']; else $orderType = "ASC";
if ($orderBy!=6) {
$arStatistics = $buscaCompany->getAllStatistics($orderBy, $orderType);
} else {
$arStatistics = $buscaCompany->getAllStatistics(1, "ASC");
asort($arStatistics);
echo $arStatistics;
}
if($arStatistics)
$count=0;
foreach($arStatistics as $stat) {
$company = $buscaCompany->getAllById($stat['company_id']);
$stat['company_name'] = $company['name'];
$arStatistics[$count] = $stat;
$count++;
}
?>
<html>
<head>
<title>EnCore - Busca - Statistics</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="./css/style.css" rel="stylesheet" type="text/css">
<script language="javascript">
var allSelected = false;
function orderBy(order_by) {
if(document.statisticsForm.orderBy.value == order_by && document.statisticsForm.orderType.value == "DESC") document.statisticsForm.orderType.value = "ASC";
else if(document.statisticsForm.orderBy.value == order_by && document.statisticsForm.orderType.value == "ASC") document.statisticsForm.orderType.value = "DESC";
document.statisticsForm.orderBy.value = order_by;
document.statisticsForm.submit();
}
</script>
</head>
<body>
<table width="100%">
<!-- Begin Form -->
<form name="statisticsForm" action="<?=$PHP_SELF;?>" method="POST">
<input type="hidden" name="orderBy" value="<?=$orderBy?>">
<input type="hidden" name="orderType" value="<?=$orderType?>">
<tr bgcolor="#EEEEEE">
<td colspan="7">
<table height="25" width="100%">
<td>BUSCA > <a href="statistics.php">Statistics</a></td>
<!--<td align="right"><input type="button" value="Update Activities" onclick="activitiesUpdate();"></td>-->
<table width="100%" border="1" style="border-collapse:collapse">
<?
echo "<tr bgcolor='#DDDDDD'>\n";
echo "<td align=center><b><a href='javascript:orderBy(1);'>id</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(3);'>company name</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(2);'>clicks</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(4);'>List views</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(5);'>Form views</a></b></td>\n";
echo "<td align=center><b><a href='javascript:orderBy(6);'>Total</a></b></td>\n";
echo "</tr>\n";
$count = 0;
if ($arStatistics)
foreach ($arStatistics as $stat) {
if($bgcolor == "#FFFFFF"){
$bgcolor = "#F8F6F8";
}else{
$bgcolor = "#FFFFFF";
}
echo "<tr height=21 bgcolor='$bgcolor' onMouseover='this.style.backgroundColor=\"#FFFFD7\";' onMouseout='this.style.backgroundColor=\"$bgcolor\";'>\n";
echo '<td align=center width=5%>'.$stat['company_id'].'</td>';
echo '<td>'.$stat['company_name'].'</td>';
echo '<td align=center width=10%>'.$stat['clicks'].'</td>';
echo '<td align=center width=10%>'.$stat['list_clicks'].'</td>';
echo '<td align=center width=10%>'.$stat['form_clicks'].'</td>';
echo '<td align=center width=10%>'.$total.'</td>';
echo '</tr>';
$count++;
} else {
echo("<tr><td class=red>SORRY NO STATISTICS FOUND</td></tr>");
}
?>
[/code=php]
De query staat in een andere klasse.
Die is denk ik ook verder niet voor belang van deze vraag.
Ik wil ook graag die 5e kolom kunnen sorteren.
Dus moet ik de gegevens na de query , opnieuw opvangen en filtereren.
De gegevens die ik dus opvang , moet ik in een multi-dimensionale array zetten(zo redeneer ik goed toch?)
Dat stukje ziet er zo uit
[CODE=php]
if ($orderBy!=6) {
$arStatistics = $buscaCompany->getAllStatistics($orderBy, $orderType);
} else {
$arStatistics = $buscaCompany->getAllStatistics(1, "ASC");
asort($arStatistics);
echo $arStatistics;
}[/code=php]
Het gaat dus om het stukje vanaf de ELSE statement
Ik sorteer dus gewoon ook voor de laatste kolom in de query(alleen dan op de eerste kolom , puur om gegevens op te vangen)
Daarna wil ik de array graag even echo-en , om alleen al even mijn output te zien.
Maar daar gaat het dus al mis.
Terwijl de query hetzelfde is als bij de IF statement alleen dan met vaste waarde.
En ik krijg geen resultaten terug.
Weet iemand waar mijn denkwijze fout zit?
Of kan iemand mij weer even de goede kant opsturen?
www.degroot-it.nl