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) {
精彩评论