Ik heb onderstaand stukje code. Het probleem is nu dat hij alleen voor de eerste naam zegmaar de goede rating teruggeeft. Bij de overige pakt hij gewoon de else, dus 2. Wat zou ik fout doen ? Alvast bedankt !


<?
  include ("inc_connect.php");
  
  $sql="SELECT * FROM aanbieders"; 

     $result = mysql_query($sql); 
    echo mysql_error();

     while ($row = mysql_fetch_object($result)) { 

$id    = stripslashes($row->id);
$naam    = stripslashes($row->naam);
$retentie    = stripslashes($row->retentie); 
$score    = stripslashes($row->score); 

                   print("<a href='details.php?id=$id'>");
             ?>
<div class="aanbieders"><? echo $naam; ?></div>
<div class="aanbieders"><? echo $retentie; ?></div>
<div class="aanbieders"><?php

include_once ("inc_connect.php");

$query = mysql_query("SELECT * FROM ratings WHERE naam='$naam'") or die( mysql_error() );

$aantal = mysql_num_rows( $query );

while( $row = mysql_fetch_assoc( $query ) ) {

    $som += $row['gemiddeld'];

}

$deling = $som / $aantal;

$afgerond =  round($deling, 1);  

if ( $afgerond == '1' OR $afgerond == '1.1' OR $afgerond == '1.2' OR $afgerond  == '1.3' OR $afgerond == '1.4'){?>
<img src="img/ratings/1.jpg" border="0">
<?
}
elseif ( $afgerond == '1.5' OR $afgerond == '1.6' OR $afgerond == '1.7' OR $afgerond  == '1.8' OR $afgerond == '1.9'){?>
<img src="img/ratings/1_5.jpg" border="0">
<?
}
else{?>
<img src="img/ratings/2.jpg" border="0">
<?
}
?><br /></div></a><br />
<?
}
?>
</div>
Heb het nu niet meteen getest maar zou dit de oplossing kunnen zijn?


<?
$deling = $som / $aantal;

if ($deling >= 1 && $deling<1.5) {
// 1.jpg
} else if ($deling>=1.5 && $deling < 2) {
// 1_5.jpg
} else {
// 2.jpg
}
?>


Wat gebeurd er wanneer $deling < 1? Momenteel kom je dan bij 2 uit :).
Ik zie een while in een while met dezelfde var-naam. Gaat niet goed.
while ($row = ...............) {
while ($row = ...........
Zou het inderdaad goed kunnen zijn SanThe. Maar heb het nu veranderd maar hij geeft nog steeds alleen bij de 1e een goede rating door. Dus je zou zeggen dat de code in princiepe wel goed is maar dat er ergens een foutje zit ofzo. hier de code nu :


<?php

include_once ("inc_connect.php");

$query2 = mysql_query("SELECT * FROM ratings WHERE naam='$naam'") or die( mysql_error() );

$aantal2 = mysql_num_rows( $query2 );

while( $row = mysql_fetch_assoc( $query2 ) ) {

    $som2 += $row['gemiddeld'];

}

$deling2 = $som2 / $aantal2;

$afgerond2 =  round($deling2, 1);  

if ( $afgerond2 == '1' OR $afgerond2 == '1.1' OR $afgerond2 == '1.2' OR $afgerond2  == '1.3' OR $afgerond2 == '1.4'){?>
<img src="img/ratings/1.jpg">
SanThe bedoelde eig. dat je 2 maal dezelfde var $row gebruikt in een while statement.

while($row = mysql_fetch_assoc($query)) {

}

Dit maakt imo geen verschil aangezien while eerst de expressie ($row = ..) uitvoert, waardoor de waarde die $row had sowieso overschreven wordt, en dan pas checked of $row true (beter not false) is.

Al die andere vars die je hernoemde (query -> query2, etc..) spelen ook geen rol aangezien je ze stuk voor stuk herwaardeert.
Wat zou dan het probleem kunnen zijn want vindt het raar dat hij het bij de 1e wel goed weergeeft maar bij de overige niet ?
Doe ff hetvolgende


<?
$som = 0;
while( $row = mysql_fetch_assoc( $query ) ) {
    echo $som . " + " . $row['gemiddeld'] . " =?= ";
    $som += $row['gemiddeld'];
    echo $som . "<br>";
}

$deling = $som / $aantal;
echo $som . " / " . $aantal . " =?= " . $deling;
?>


Dan output je alle getallen en kan je beter inschatten waar het fout gaat. Er zit miss gewoon foute data in je db?
In de database staan de volgende getallen :

voor naam "test1" : 4 en 0 (moet dus door 2 worden gedeeld=2)
voor naam "test2" : 4 (moet dus door 1 worden gedeeld=4)
voor naam "test3": 3 en 1 (moet dus door 2 worden gedeeld=2)

De uitslag die ik krijg van boven naa onder als ik jou formule gebruik is de volgende, het zou dus moeten kloppen ?? :

0 + 4 =?= 4
4 + 0 =?= 4
4 / 2 =?= 2
0 + 4 =?= 4
4 / 1 =?= 4
0 + 1 =?= 1
1 + 3 =?= 4
4 / 2 =?= 2


[edit] Heb nu jou code gebruikt maar dan met mijn image gedeelte erbij en werkt nu uit de kunst ! Echt super bedankt man, ben er echt blij mee ! Thanks[/edit]
Geen probleem, daar zijn we hier voor ;)

Reageren