2010-06-18 9 views
3

J'essaye de faire écho à du texte si ma boucle revient sans données mais ne peut pas l'obtenir. J'ai essayé quelques petites choses mais pas de chance.PHP echo xyz si les lignes de la boucle ne contiennent pas de données

mon code:

$result = mysql_send("SELECT * FROM datatable WHERE id='". 
    $_SESSION['id']."'ORDER BY id ASC LIMIT 2"); 

while($row=mysql_fetch_array($result)) { 
    $a = 1; 
    extract($row); 

    echo 'Trans ID: '; 
    echo $row['trans_id']; 
    echo '<br>'; 
    echo 'Amount: '; 
    echo $row['amount']; 
    echo '&nbsp;'; 
    echo $row['euros']; 
    echo '<br>'; 
    echo '<br>'; 
} 


if ($a = 1) { 
    echo 'No History'; 
} else { 
    echo '<a href="#">View history</a>'; 
}; 

Quelqu'un peut-il me aider comment faire si des déclarations sur un loop`?

+1

Artefacto de bien vouloir reformaté votre code, mais à l'avenir s'il vous plaît vous assurer que votre code est correctement formaté et dentelée. Cela facilite la lecture du code pour vous et les autres. – Artelius

Répondre

3

Vous avez une mission, qui renvoie le résultat de l'affectation (c.-à-1)

if ($a = 1) { 

au lieu d'une comparaison, qui est ce que vous voulez sans doute:

if ($a == 1) { 

Par conséquent, « Non l'histoire "sera toujours répercutée.

2

utilisation mysql_num_rows(); il vous dira si vous avez des résultats de recherche

$result = mysql_send("SELECT * FROM datatable WHERE id='". 
$_SESSION['id']."'ORDER BY id ASC LIMIT 2"); 

$count = mysql_fetch_array($result); 

if($count > 0) { 
    while($row=mysql_fetch_array($result)) { 
     # your code 
    } 
} 

# NOTE THE == not = 
if ($a == 1) { 
    echo 'No History'; 
} else { 
    echo '<a href="#">View history</a>'; 
}; 

Vous aurez également problème avec votre instruction if comme youu utilisent assigment plutôt que comparison: $a = 1 sera mis $ a = 1 et $a == 1 va le vérifier est égal à 1

0

== est une comparaison, = est une cession.

Modification

if ($a == 1) {