0

我正在尝试找到一种在此代码中显示 else 或 if 语句的方法,以便如果 mysql 表中不存在记录/值,那么它将回显一条文本,例如“问我”。

继承人的代码:

<?php
$rates_set = get_rates();
while ($rates = mysql_fetch_array($rates_set)) {
 ?>
 <table width="110%" border="0" cellspacing="5" cellpadding="5">
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="col">Rates</th>
    <th align="center" valign="middle" bgcolor="#EBEBEB" scope="col">money in</th>
    <th align="center" valign="middle" bgcolor="#EBEBEB" scope="col">money Out</th>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">cost</th>
    <td align="center" valign="middle">£<?php echo "{$rates['labour']} "; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['material']}"; ?></td>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">cost/th>
    <td align="center" valign="middle">£<?php echo "{$rates['money']}"; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['expense']}"; ?></td>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">Overnight</th>
    <td align="center" valign="middle">£<?php echo "{$rates['charges']}"; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['fees']}"; ?></td>
  </tr>
</table>


<?php }  ?>

希望有人可以提供帮助。谢谢你。

4

5 回答 5

0

您可以遍历$rates数组中的值,如果为空,则指定一个默认值:

$rates_set = get_rates();
while ($rates = mysql_fetch_array($rates_set)) {

   // Set defaults
   foreach($rates as $key => $value)
   {
      if(strlen(trim($value)) == 0)
      {
         // Assign default
         $rates[$key] = 'Ask Me';
      }
   } 
?>

使用此方法需要进行一些调整,例如如何确定一个值是“空的”……但本质上,这将完成工作。

另一种选择是使用三元运算符在标记内本地处理它:

<td align="center" valign="middle">£
    <?php isset($rates['money']) ? $rates['money'] : 'Ask Me'; ?>
</td>
于 2012-10-16T17:07:55.233 回答
0

尝试这个,

<?php echo isset($rates['fees'])?"{$rates['fees']}":"ask me"; ?>
于 2012-10-16T17:08:45.230 回答
0

你可以用这个

<?php
$rates_set = get_rates();
if(mysql_num_rows($rates_set)<1) {
    echo "Ask me";
 }else{
   while ($rates = mysql_fetch_array($rates_set)) {
     //your code
      }
    }
于 2012-10-16T17:09:14.013 回答
0
<?php

/* Use This */

$rates_set = get_rates();

if (mysql_num_rows($rates_set)>0) {


while ($rates = mysql_fetch_array($rates_set)) {
 ?>
 <table width="110%" border="0" cellspacing="5" cellpadding="5">
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="col">Rates</th>
    <th align="center" valign="middle" bgcolor="#EBEBEB" scope="col">money in</th>
    <th align="center" valign="middle" bgcolor="#EBEBEB" scope="col">money Out</th>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">cost</th>
    <td align="center" valign="middle">£<?php echo "{$rates['labour']} "; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['material']}"; ?></td>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">cost/th>
    <td align="center" valign="middle">£<?php echo "{$rates['money']}"; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['expense']}"; ?></td>
  </tr>
  <tr>
    <th align="left" valign="middle" bgcolor="#EBEBEB" scope="row">Overnight</th>
    <td align="center" valign="middle">£<?php echo "{$rates['charges']}"; ?></td>
    <td align="center" valign="middle">£<?php echo "{$rates['fees']}"; ?></td>
  </tr>
</table>


<?php } 

} else {

echo 'Ask me';

}
  ?>
于 2012-10-16T18:07:10.357 回答
-1
<?php echo ( (!empty($rates['labour'])) ? $rates['labour'] : 'Default Text'); ?>

那是你要找的吗?

编辑:

像这样改变循环的顶部:

while ($rates = mysql_fetch_array($rates_set)) {
  if (empty($rates_set)) continue;
于 2012-10-16T17:08:34.280 回答