我的代码如下:
<?php
   .
   .
   .
while($p_rows = mysql_fetch_array($p_rst)){                                  //这个"}"与最后一个<?php } ?>匹配
?>
<tr>
<td height="30" align="center" valign="middle"><?php echo $p_rows[4]; ?></td>
<td align="left" valign="middle"><?php echo substr($p_rows[1],0,20).".........<a href='grjh/show_plan.php?id=".$p_rows[0]."' target='_blank'>查看全文</a>"; ?></td>
<td width="50" align="center" valign="middle"><?php echo read_field($conn,"tb_list","f_name",$p_rows[p_type]); ?></td>
</tr>
<?php
}
?>
运行出现如下错误:
PHP Parse error:  syntax error, unexpected '}
我是刚学php,对php与html的交叉混合使用不了解,希望大家能给些指导,帮忙找出错误,多谢。

解决方案 »

  1.   


    闭合有问题嘛...
    以后别这么写了,太痛苦了<?php在输出html的地方用界定符
    里面的变量用大括号括起来{$变量}
    这样就舒服多了.echo <<<HTML
    这里写html代码{$String;}
    HTML;自己试一下吧...要做一些什么函数在 echo 外面将变量赋值好就是了.
      

  2.   


    $String='这是个范例';
    $String=substr($String,0,3);
    echo <<<HTML
    <a href="test.php">{$String}</a>
    HTML;
      

  3.   

    能够肯定的是,你最后少了一个"}",LZ再细心的找找吧嘿嘿,要么在最后面写个   <?php  }  ?>  问题就解决了
      

  4.   

    楼主的代码好纠结啊,这中间一堆单引号和双引号混在一起,看着都要出错啊~非要这样混写建议楼主只把纯PHP变量写在PHP语句里,其他写在PHP外面,好好查一下那一串字符串吧,感觉要出错
      

  5.   

    我用$p_rows = array('abc','def','ghij','klm','nopq');这个测试么有问题,是不是楼主输出的数据里包含了单引号或双引号这种特殊字符造成字符不匹配啊?
      

  6.   

    是啊,这代码写的确实太纠结了,写的累,让人看的也累。我把整个代码重写了一下,问题解决了。<?php
    $p_sql = "select * from tb_plan where p_id = ".$_SESSION['id']." order by id desc limit 0,5";
    $p_rst = mysql_query($p_sql,$conn);
    while($p_rows = mysql_fetch_array($p_rst)){
    $str1=substr($p_rows[1],0,20).".........<a href='grjh/show_plan.php?id=".$p_rows[0]."' target='_blank'>查看全文</a>";
    $str2=read_field($conn,"tb_list","f_name",$p_rows['p_type']);
    ?>
    <tr>
    <td height="30" align="center" valign="middle"><?php echo $p_rows[4]; ?></td>
    <td align="left" valign="middle"><?php echo $str1; ?></td>
    <td width="50" align="center" valign="middle"><?php echo $str2; ?></td>
    </tr>
    <?php
    }
    ?>多谢大家的提供的意见,学习了。