1
<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>

おはようございます、上記のコードでは、削除と更新の 2 列のテーブルを作成しようとしていますが、このページから mysql を管理できますが、4 つ期待しているにもかかわらず、mysql テーブルから 1 行しか取得できません (4 行が mysql テーブルに保存されます) )ここで何が問題なのですか、事前に感謝します

4

3 に答える 3

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だけで十分で、必要です!更新スクリプトのDBから編集するデータを取得します。

また、レコードを削除するためにGETメソッドを使用するべきではないことに注意してください-投稿のみ。そこで、テーブルではなく更新フォームに「削除」ボタンを配置することをお勧めします。

于 2012-04-28T05:01:56.073 に答える
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>
于 2012-04-28T04:39:14.677 に答える
1

結果を取得し、間違った場所で行をカウントし、基本的に何もしないサブ 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>
于 2012-04-28T04:47:53.960 に答える