webForumDet fria alternativet

mysql: echoproblem

9 svar · 518 visningar · startad av überfuzz

überfuzzMedlem sedan apr. 2006409 inlägg
#1

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
#2

prova med

if(empty($table['brutto']))

istället för

if ($table['brutto'] == '')
überfuzzMedlem sedan apr. 2006409 inlägg
#3

Nej,det blir samma resultat... Endast dagarna med dagsresultat inmatat dyker upp.

sabbacusMedlem sedan juli 2002630 inlägg
#4

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
#5

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..?

TulorkMedlem sedan aug. 2004903 inlägg
#6
var_dump($table);
überfuzzMedlem sedan apr. 2006409 inlägg
#7

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
#8

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
#9

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..?

überfuzzMedlem sedan apr. 2006409 inlägg
#10

Löst

131 ms totalt · 3 externa anrop · v20260731065814-full.3ab8d573
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)