PHP echo xyz if rows in loop contain no data
I am trying to echo some text if my loop returns wi开发者_StackOverflow中文版th no data but can't get it do work. I have tried a few things but no luck.
my 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 ' ';
echo $row['euros'];
echo '<br>';
echo '<br>';
}
if ($a = 1) {
echo 'No History';
} else {
echo '<a href="#">View history</a>';
};
Can Anyone help me with how to do if statements on a loop`?
You have an assignment, which returns the result of the assignment (i.e. 1)
if ($a = 1) {
instead of a comparison, which is what you probably want:
if ($a == 1) {
Therefore, "No history" will always be echoed.
use mysql_num_rows(); it will tell you if you have any results from query
$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>';
};
You will also have issue with your if statement as youu are using assigment rather than comparison: $a = 1 will set $a = 1 and $a == 1 will check of it equals 1
if($a == 1) ....
== is a comparison, = is an assignment.
Change to
if ($a == 1) {
加载中,请稍侯......
精彩评论