Als bedrag van naam groter is dan
ik ben een klein simpel script aan het maken waarbij 2 mensen een bedrag in een database kunnen plaatsen. Vervolgens haal ik het bedrag en naam van de persoon op en geef ik deze weer. Nu wil ik dat als het bedrag van persoon A groter is dan persoon B dat er in de class van die div "negative" (als je minder hebt dat de andere persoon) en "positive" (als deze persoon meer heeft dan de andere) komt te staan. Misschien word het wat duidelijker met een stuk code erbij:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<header>
<?php
$query = "SELECT name, SUM(value) FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
/* HIER MOET DE IF KOMEN */
<span class="number positive"><?php echo $row['SUM(value)']; ?></span>
/* ELSE
<span class="number negative"><?php echo $row['SUM(value)']; ?></span>
END */
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
<?php
}
?>
</header>
<?php
$query = "SELECT name, SUM(value) FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
/* HIER MOET DE IF KOMEN */
<span class="number positive"><?php echo $row['SUM(value)']; ?></span>
/* ELSE
<span class="number negative"><?php echo $row['SUM(value)']; ?></span>
END */
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
<?php
}
?>
</header>
Ik hoop dat dit duidelijk is. Als dit niet het geval is hoor ik het graag.
Dank,
Giel
Gewijzigd op 04/09/2012 11:58:39 door Giel Cobben
Wat betreft de onduidelijkheid. Je hebt dus steeds maar 2 rijen als ik het goed begrijp? Altijd een persoon A en een persoon B? Of kunnen er ook meer / minder personen zijn?
En de if is dan simpelweg het vergelijken van A met B
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$query = "SELECT name, SUM(value) as totaal FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
if($persoonA['totaal'] > $persoonB['totaal'])
<span class="number positive"><?php echo $row['SUM(value)']; ?></span>
/* ELSE
<span class="number negative"><?php echo $row['SUM(value)']; ?></span>
END */
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
?>
$query = "SELECT name, SUM(value) as totaal FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
if($persoonA['totaal'] > $persoonB['totaal'])
<span class="number positive"><?php echo $row['SUM(value)']; ?></span>
/* ELSE
<span class="number negative"><?php echo $row['SUM(value)']; ?></span>
END */
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
?>
Foutafhandeling (er is maar 1 persoon, of geen) en fatsoenlijk maken zul je zelf nog moeten doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
$query = "SELECT name, SUM(value) AS getal
FROM chat
GROUP BY name
ORDER BY SUM(value) DESC";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$res[] = $row['naam'] . ' met ' . $row['getal'];
}
?>
<div class="head">
<div class="ballon">
<span class="number positive"><?php echo $res[0]; ?></span>
<span class="number negative"><?php echo $res[1]; ?></span>
<span class="arrow"></span>
</div>
</div>
$query = "SELECT name, SUM(value) AS getal
FROM chat
GROUP BY name
ORDER BY SUM(value) DESC";
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
$res[] = $row['naam'] . ' met ' . $row['getal'];
}
?>
<div class="head">
<div class="ballon">
<span class="number positive"><?php echo $res[0]; ?></span>
<span class="number negative"><?php echo $res[1]; ?></span>
<span class="arrow"></span>
</div>
</div>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<header>
<?php
$query = "SELECT name, SUM(value) FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
<?php
if ($persoonA['SUM(value)'] > $persoonB['SUM(value)']) {
echo '<span class="number positive">' . $row['SUM(value)'] . '</span>';
} else {
echo '<span class="number negative">' . $row['SUM(value)'] . '</span>';
}
?>
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
<?php
}
?>
</header>
<?php
$query = "SELECT name, SUM(value) FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
while($row = mysql_fetch_array($result)){
?>
<div class="head">
<div class="ballon">
<?php
if ($persoonA['SUM(value)'] > $persoonB['SUM(value)']) {
echo '<span class="number positive">' . $row['SUM(value)'] . '</span>';
} else {
echo '<span class="number negative">' . $row['SUM(value)'] . '</span>';
}
?>
<span class="arrow"></span>
</div>
<h1><?php echo $row['name']; ?></h1>
</div>
<?php
}
?>
</header>
Even goed kijken hoe ik $query heb geschreven, en hoe de if is geschreven!
Dat is inderdaad slordig van mij excuus, maar na de verbetering werkt het nog steeds niet. Er word geen html geschreven op de pagina.
En wat ik niet gezien had was dat je er nog een while lus in had zitten die moet eruit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php
$query = "SELECT name, SUM(value) as totaal FROM chat GROUP BY name";
$result = mysql_query( $query ) or die( mysql_error() );
$persoonA = mysql_fetch_assoc( $result );
$persoonB = mysql_fetch_assoc( $result );
?>
<div class="head">
<div class="ballon">
<?php
if( $persoonA['totaal'] > $persoonB['totaal'] )
?>
<span class="number positive"><?php echo $persoonA['totaal']; ?></span>
<?php else ?>
<span class="number negative"><?php echo $persoonB['totaal']; ?></span>
<span class="arrow"></span>
</div>
<h1><?php echo $persoonA['name']; ?></h1>
</div>
$query = "SELECT name, SUM(value) as totaal FROM chat GROUP BY name";
$result = mysql_query( $query ) or die( mysql_error() );
$persoonA = mysql_fetch_assoc( $result );
$persoonB = mysql_fetch_assoc( $result );
?>
<div class="head">
<div class="ballon">
<?php
if( $persoonA['totaal'] > $persoonB['totaal'] )
?>
<span class="number positive"><?php echo $persoonA['totaal']; ?></span>
<?php else ?>
<span class="number negative"><?php echo $persoonB['totaal']; ?></span>
<span class="arrow"></span>
</div>
<h1><?php echo $persoonA['name']; ?></h1>
</div>
Gewijzigd op 04/09/2012 11:46:54 door John Berg
Bedankt, zoals je nu hebt aangegeven werkt het alleen komt er nu maar 1 persoon uit. Ik wil beide personen weer geven alleen beide dus met een andere class. Een met Positive want hij heeft een hoger bedrag en de andere met Negative omdat deze een lager bedrag heeft vandaar dat ik de while lus erin had zitten.
Ik heb de code iets aangepast. Omdat je nu Persoon A en B elk in een array hebt, kun je er in feite mee doen wat je wilt.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('phphulp');
$query = "SELECT name, SUM(value) as value FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
?>
<style>
.positive {
color: black;
}
.negative {
color: red;
}
</style>
<div class="head">
<div class="ballon">
<?php
echo '<h1>' . $persoonA['name'] . '</h1> <span class="number ' . ($persoonA['value'] > $persoonB['value'] ? 'positive' : 'negative') . '">' . $persoonA['value'] . '</span> <span class="arrow"></span>';
echo '<h1>' . $persoonB['name'] . '</h1> <span class="number ' . ($persoonB['value'] > $persoonA['value'] ? 'positive' : 'negative') . '">' . $persoonB['value'] . '</span> <span class="arrow"></span>';
?>
</div>
</div>
$con = mysql_connect('localhost', 'root', '');
mysql_select_db('phphulp');
$query = "SELECT name, SUM(value) as value FROM chat GROUP BY name";
$result = mysql_query($query) or die(mysql_error());
$persoonA = mysql_fetch_assoc($result);
$persoonB = mysql_fetch_assoc($result);
?>
<style>
.positive {
color: black;
}
.negative {
color: red;
}
</style>
<div class="head">
<div class="ballon">
<?php
echo '<h1>' . $persoonA['name'] . '</h1> <span class="number ' . ($persoonA['value'] > $persoonB['value'] ? 'positive' : 'negative') . '">' . $persoonA['value'] . '</span> <span class="arrow"></span>';
echo '<h1>' . $persoonB['name'] . '</h1> <span class="number ' . ($persoonB['value'] > $persoonA['value'] ? 'positive' : 'negative') . '">' . $persoonB['value'] . '</span> <span class="arrow"></span>';
?>
</div>
</div>
Gewijzigd op 04/09/2012 11:49:26 door Kris Peeters
Ervan uitgaande dat je query goed is en werkt?
Bedankt allemaal, het is gelukt met het script van @Kris Peeters na kleine html aanpassingen doet het precies wat het moet doen!