以下是我的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没有执行表和每个条目。我的剧本有什么问题?
答案 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;
答案 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:小心,你为每个寄存器生成一个表,我想你想为每个寄存器创建一行