元素在Php页面上给出错误

时间:2015-11-11 11:04:57

标签: php html sql

以下是我的getdata.php脚本,它不起作用:

 <?php
        $host="localhost";
        $username="root";
        $password="demo"; 
        $db_name="test";
        $tbl_name="test";

  mysql_connect("$host", "$username", "$password")or die("cannot connect");
  mysql_select_db("$db_name")or die("cannot select DB");

  $sql="SELECT * FROM $tbl_name";
  $result=mysql_query($sql);
  ?>

    <?php
        while($rows=mysql_fetch_array($result)){
             <table width="400" border="1" cellspacing="0" cellpadding="3">
                <tr>
                  <td width="10%"><? echo $rows['id']; ?></td>
                  <td width="30%"><? echo $rows['name']; ?></td>
                  <td width="30%"><? echo $rows['lastname']; ?></td>
                  <td width="30%"><? echo $rows['email']; ?></td>
                </tr>
             </table>
                  }
                  ?>

             <?php
                mysql_close();
             ?>

我正在使用xampp server 1.8和Windows XP sp2;我不知道哪个php版本,但是当我运行此脚本时,它显示错误'<' unexpected ~~~~~~~

总有一些错误是这个php没有执行表和每个条目。我的剧本有什么问题?

3 个答案:

答案 0 :(得分:2)

您收到错误是因为您尝试将HTML代码直接放入PHP而不引用或回显PHP正试图告诉您的内容&#39;意外&lt;&#39;。

您的问题在这里:

while($rows=mysql_fetch_assoc($result)){
  <table width="400" border="1" cellspacing="0" cellpadding="3">
    <tr>
      <td width="10%"><? echo $rows['id']; ?></td>
      <td width="30%"><? echo $rows['name']; ?></td>
      <td width="30%"><? echo $rows['lastname']; ?></td>
      <td width="30%"><? echo $rows['email']; ?></td>
    </tr>
  </table>
}

你需要做的是(如果你想在页面上这样做)添加echo语句并将HTML代码封装在这样的引号中:

while($rows=mysql_fetch_assoc($result)){
  echo "
  <table width='400' border='1' cellspacing='0' cellpadding='3'>
    <tr>
      <td width='10%'>".$rows['id']."</td>
      <td width='30%'>".$rows['name']."</td>
      <td width='30%'>".$rows['lastname']."</td>
      <td width='30%'>".$rows['email']."</td>
    </tr>
  </table>";
}

我们在这里所做的就是将PHP变量连接到字符串。据我所知,你也可以使用alternative syntax

这样做
while($rows=mysql_fetch_assoc($result)):?>
  <table width="400" border="1" cellspacing="0" cellpadding="3">
    <tr>
      <td width="10%"><? echo $rows['id']; ?></td>
      <td width="30%"><? echo $rows['name']; ?></td>
      <td width="30%"><? echo $rows['lastname']; ?></td>
      <td width="30%"><? echo $rows['email']; ?></td>
    </tr>
  </table>
<?php
endwhile;

值得注意的是,MYSQL_*函数现已弃用。如果可以,您可能需要考虑使用MYSQLI函数。

答案 1 :(得分:1)

PHP标签处理不当,关闭它并正确打开它。

只需添加您的代码,如下所示 -

PHP标签处理不当,关闭它并正确打开它。

只需添加您的代码,如下所示 -

<?php

    $host="localhost";
    $username="root";
    $password="demo"; 
    $db_name="test";
    $tbl_name="test";

    mysql_connect("$host", "$username", "$password")or die("cannot connect");
    mysql_select_db("$db_name")or die("cannot select DB");

    $sql="SELECT * FROM $tbl_name";
    $result=mysql_query($sql);

    while($rows=mysql_fetch_array($result)){ 
  // here is the change
  ?>
         <table width="400" border="1" cellspacing="0" cellpadding="3">
          <tr>
              <td width="10%"><?php echo $rows['id']; ?></td>
              <td width="30%"><?php echo $rows['name']; ?></td>
              <td width="30%"><?php echo $rows['lastname']; ?></td>
              <td width="30%"><?php echo $rows['email']; ?></td>
          </tr>
          </table>
<?php      
     } // endwhile

     mysql_close();
 ?>

答案 2 :(得分:0)

为防止将来出现代码错误,建议使用mysqli dbase objetct。 代码如下:

app\lib\

PD:小心,你为每个寄存器生成一个表,我想你想为每个寄存器创建一行