<a href="add.php">add new product</a><br>
<br>
<?php
include("mysql.php");
$result = mysql_query("SELECT * FROM gallery ");
$just = mysql_fetch_array($result);
$num=mysql_num_rows($result);
$table="";
$table.="<td>delete</td>";
$table.="<td>update</td>";
if ($num > 0 ) {
$i=0;
while($just = mysql_fetch_array($result))
{
$num=mysql_num_rows($result);
{
$table .= "<tr>";
$table .= "<td><a href=\"delete.php?name=".$just['name']."&id=".$just['id']."\">".$just['title']."</a></td>";
$table .= "<td><a href=\"update.php?description=".$just['description']."&title=".$just['title']."&id=".$just['id']."\">".$just['title']."</a></td>";
}
$table .= "</tr>";
while ($i < $num) {
$name = stripslashes(mysql_result($result,$i,"name"));
$title = stripslashes(mysql_result($result,$i,"title"));
$description = stripslashes(mysql_result($result,$i,"description"));
++$i; }
}
}
else { $table = '<tr><td colspan="2" align="center">Nothing found</td></tr>'; }
?>
<table border="1" cellpadding="1" cellspacing="2"><? echo $table ?></table>
早上好,在上面的代码iam尝试创建一个2列的表删除和更新,能够通过这个页面管理mysql,但我从mysql表只得到1行,虽然我期待4(保存4行)在mysql表中)
这里有什么不对,提前谢谢
答案 0 :(得分:1)
<a href="add.php">add new product</a><br>
<br>
<?php
include("mysql.php");
$result = mysql_query("SELECT * FROM `gallery`");
$num = mysql_num_rows($result);
$table = "";
$table .= "<td>delete</td>";
$table.="<td>update</td>";
if ($num > 0 ) {
$i=0;
while($just = mysql_fetch_assoc($result)) {
$num=mysql_num_rows($result);
$table .= "<tr>";
$table .= "<td><a href=\"delete.php?name=".$just['name']."&id=".$just['id']."\">".$just['title']."</a></td>";
$table .= "<td><a href=\"update.php?description=".$just['description']."&title=".$just['title']."&id=".$just['id']."\">".$just['title']."</a></td>";
}
$table .= "</tr>";
while ($i < $num) {
$name = stripslashes(mysql_result($result,$i,"name"));
$title = stripslashes(mysql_result($result,$i,"title"));
$description = stripslashes(mysql_result($result,$i,"description"));
++$i;
}
} else {
$table = '<tr><td colspan="2" align="center">Nothing found</td></tr>';
}
?>
<table border="1" cellpadding="1" cellspacing="2"><? echo $table ?></table>
答案 1 :(得分:1)
你获取结果并计算错误位置的行,并且你有一个sub while循环,基本上什么都不做。
在此尝试:
<?php
include("mysql.php");
$result = mysql_query("SELECT `id`,`name`,`title`,`description` FROM gallery");
$table=null;
if (mysql_num_rows($result) > 0 ) {
while($just = mysql_fetch_assoc($result)){
$table .= "<tr>".PHP_EOL;
$table .= "<td><a href=\"delete.php?name=".$just['name']."&id=".$just['id']."\">".$just['title']."</a></td>".PHP_EOL;
$table .= "<td><a href=\"update.php?description=".$just['description']."&title=".$just['title']."&id=".$just['id']."\">".$just['title']."</a></td>".PHP_EOL;
$table .= "</tr>".PHP_EOL;
}
}else{
$table = '<tr><td colspan="2" align="center">Nothing found</td></tr>';
}
?>
<table border="1" cellpadding="1" cellspacing="2"><? echo $table; ?></table>
答案 2 :(得分:1)
方法很好,但确实需要更好的实施。
首先,给自己一个函数并将它放在mysql.php中以供频繁使用。
function sqlArr($sql){
$ret = array();
$res = mysql_query($sql) or trigger_error(mysql_error()." ".$sql);
if ($res) {
while($row = mysql_fetch_array($res)){
$ret[] = $row;
}
}
return $ret;
}
然后编写代码来获取数据
<?php
include("mysql.php");
$data = sqlArr("SELECT * FROM tbl_names");
foreach ($data as $k => $value) $data[$k] = htmlspecialchars($value);
include 'template.php';
然后编写一个模板,使您的方法完成HTML模板:
<table border="1" cellpadding="1" cellspacing="2">
<? if (!$data)): ?>
<tr>
<td colspan="2" align="center">Nothing found</td>
</tr>
<? else: ?>
<? foreach($data as $just): ?>
<tr>
<td><a href="update.php??id="<?=$just['id']?>"><?=$just['title']?></a></td>
</tr>
<? endforeach ?>
<? endif ?>
</table>
看:你的代码变短了2倍,但更具可读性!
请注意,不应将整个数据传递给编辑脚本。只有id就足够了!在更新脚本中从数据库中获取要编辑的数据。
另请注意,您不应使用GET方法删除记录 - 仅发布。所以,我建议你在表格中但不在更新表格中有一个“删除”按钮。