Als bedrag van naam groter is dan

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Giel Cobben

Giel Cobben

04/09/2012 10:50:14
Quote Anchor link
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:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
            <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
 
PHP hulp

PHP hulp

17/11/2024 19:59:30
 
Write Down

Write Down

04/09/2012 10:59:10
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?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?
 
John Berg

John Berg

04/09/2012 11:03:35
Quote Anchor link
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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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.
 
Eddy E

Eddy E

04/09/2012 11:07:32
Quote Anchor link
Je kan ook sorteren op een vaste volgorde. Zeker als het er maar 2 zijn:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
 
Giel Cobben

Giel Cobben

04/09/2012 11:26:21
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
            <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>
 
John Berg

John Berg

04/09/2012 11:28:10
Quote Anchor link
Even goed kijken hoe ik $query heb geschreven, en hoe de if is geschreven!
 
Giel Cobben

Giel Cobben

04/09/2012 11:32:15
Quote Anchor link
Dat is inderdaad slordig van mij excuus, maar na de verbetering werkt het nog steeds niet. Er word geen html geschreven op de pagina.
 
John Berg

John Berg

04/09/2012 11:40:06
Quote Anchor link
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:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>
Gewijzigd op 04/09/2012 11:46:54 door John Berg
 
Giel Cobben

Giel Cobben

04/09/2012 11:45:36
Quote Anchor link
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.
 
John Berg

John Berg

04/09/2012 11:48:00
Quote Anchor link
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.
 
Kris Peeters

Kris Peeters

04/09/2012 11:49:05
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
Gewijzigd op 04/09/2012 11:49:26 door Kris Peeters
 
Eddy E

Eddy E

04/09/2012 11:49:05
Quote Anchor link
Wat doet mijn code?
Ervan uitgaande dat je query goed is en werkt?
 
Giel Cobben

Giel Cobben

04/09/2012 11:58:18
Quote Anchor link
Bedankt allemaal, het is gelukt met het script van @Kris Peeters na kleine html aanpassingen doet het precies wat het moet doen!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.