überfuzzMedlem sedan apr. 2006409 inlägg Jag sitter och pillar med en statistiksida. Nu vill jag göra en tabell som visar upp veckoresultat. Jag har följande:
$i = 1;
while ($i <= 7) {
$sql = mysql_query("SELECT brutto FROM results where week = $week and employer_id = $employer_id and day = $i and project = '$project'") or die(mysql_error("Unable to select table results"));
while($table = mysql_fetch_array($sql))
{
if ($table['brutto'] == '')
{echo '<td>0</td>'; }
else
{echo '<td>' . $table['brutto'] . '</td>';}
}
$i++;
}
Tanken var att det skulle resultera i sju celler, en för varje veckodag. I fall det inte finns något inmatat ska echo:t vara '0' och om det finns inmatat ska det inmatade värdet hamna i cellen. Nu får jag bara ut värden ur tabellen, om det är tomt i tabellen dyker det inte upp någon nolla. Någon som kan hjälpa mig?
egxezexMedlem sedan jan. 200786 inlägg prova med
if(empty($table['brutto']))
istället för
if ($table['brutto'] == '')
überfuzzMedlem sedan apr. 2006409 inlägg Nej,det blir samma resultat... Endast dagarna med dagsresultat inmatat dyker upp.
sabbacusMedlem sedan juli 2002630 inlägg Gör en var_dump() på $table för varje rad så ser du vad brutto har för värde så kan du anpassa din query för det.
überfuzzMedlem sedan apr. 2006409 inlägg Hmm, det där är överkurs för mig. hur gör jag det? Det jag lyckats knåpa ihop hittills:
for ($i=1; $i <= 7; $i++) {
$sql = mysql_query("SELECT brutto FROM results where week = $week and employer_id = $employer_id and day = $i and project = '$project'") or die(mysql_error("Unable to select table results"));
while($table = mysql_fetch_array($sql))
{
if(empty($table['brutto']))
{echo '<td>0</td>'; }
else
{echo '<td>' . $table['brutto'] . '</td>';}
}
}
edit: Förresten känns mitt sätt lite omständigt. Kan man inte göra samma sak med en query, jag loopar ju min..?
überfuzzMedlem sedan apr. 2006409 inlägg Ok, var_dump($table); ger:
array(2) { [0]=> string(2) "25" ["brutto"]=> string(2) "25" } array(2) { [0]=> string(2) "28" ["brutto"]=> string(2) "28" } array(2) { [0]=> string(2) "28" ["brutto"]=> string(2) "28" } array(2) { [0]=> string(2) "30" ["brutto"]=> string(2) "30" }
sabbacusMedlem sedan juli 2002630 inlägg Ja du har fyra rader i resultatet från din sql-fråga; 25,28,28 och 30. Då inget av dessa är godtagbara resultat ska dessa fyra skrivas ut, vilket jag förmodar de gör.
überfuzzMedlem sedan apr. 2006409 inlägg Okej...
Jag sparar resultat i sql-tabellen och av de vill jag göra en <table>. Oavsett om det finns ett värde eller ej i sql-tabellen för en viss dag vill jag att något skrivs ut på den dagen. Om det är tomt vill jag ha 0 som echo, om det finns ett resultat vill jag att resultatet kommer som echo.
Exempel:
sql
Måndag = 25
Tisdag = tomt
Onsdag = 28
osv
min <table> blir
Måndag = 25
Tisdag = 28
Jag vill att det blir:
Måndag = 25
Tisdag = 0
Onsdag = 28
Hur fixar man det..?