本帖最后由 xuzuning 于 2014-03-06 10:16:20 编辑

解决方案 »

  1.   

    那是因为你的$r是不存在的,在循环前加个判断条件
    if(isset($r) && !empty($r)){
        while($arr = mysql_fetch_array($r)){
      

  2.   

    1、你说的错误行号与代码不符,可能是贴错了代码
    2、就贴出的代码而言
    数据库连接应在条件分支外边
    查询指令也应在条件分支外边$link = mysql_connect("127.0.1.1","root","")or die("不能连接服务器!可能是数据库服务器没有开启,或用户名密码错误!".mysql_error());
    mysql_query("use db_leave");
    mysql_select_db("db_leave",$link);
    mysql_query("set names'utf8'");
    if($_POST && $_POST['submit']){ //如果是用户提交,则插入提交数据
      $username =$_POST["username"];
      $email = $_POST["email"];
      $title = $_POST["title"];
      $content = $_POST["content"];
      $createtime = date("Y-m-d H:i:s");  $sql = "insert into l_text(id,username,email,title,content,createtime) values('','$username','$email','$title','$content','$createtime')";
      $result = mysql_query($sql);

    $r = mysql_query("select * from l_text"); //读取表数据
      

  3.   

    谢了,大神!!但是我还有点不明白,以前c中未声明声明一个就行,PHP中这种问题应该怎么解决!我是菜鸟,求大神帮忙!
      

  4.   

    放在里面的话,需要提交才有$r = mysql_query("select * from l_text"); 
    那么不提交的话$r不存在,while($arr = mysql_fetch_array($r)){ 这句就会报错。
    你自己运行一下就知道了。
      

  5.   

    C 语言中,变量必须先声明再使用(因为编译器需要分配内存)
    php 的变量不直接存储于内存地址,而存放于变量表中。所以可以使用未经声明的变量
    Notice 警告只是表示可能会出问题,但并不一定出问题数据库查询放在分支外面是为啥?
    因为你在条件分支内外都使用了数据库操作
    如果只放在条件分支内,就可能出问题
      

  6.   

    果然是大神,CSDN上面大神如云啊!