Hallo,

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:



            <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
Het is me niet volledig duidelijk wat je wil bereiken. Maar toch al dit, je kan je query mooier maken (niet beter) door AS toe te voegen.


<?php
$query = "SELECT name, SUM(value) AS value FROM chat GROUP BY name"; 
?>


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?
Na je query zul je de resultaten nog moeten ophalen middels een mysql_fetch_assoc();

En de if is dan simpelweg het vergelijken van A met B


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


Foutafhandeling (er is maar 1 persoon, of geen) en fatsoenlijk maken zul je zelf nog moeten doen.
Je kan ook sorteren op een vaste volgorde. Zeker als het er maar 2 zijn:

<?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>
Bedankt voor de snelle reacties, ik denk dat @John Berg mij het beste begrijpt. ik heb dit nu als volgt toegepast (zie beneden) maar er komt nu helemaal niks te staan.


            <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.
Heb je er, zoals ik aangaf, de foutafhandeling bij gemaakt?

En wat ik niet gezien had was dat je er nog een while lus in had zitten die moet eruit:

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



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.

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

Reageren