0

Pagesというテーブルを含むデータベースを作成しました。

このテーブル内には、 pages_id、pagename、pagedescpagekeypagecontというフィールドあります。

データベース内のこれらのフィールドから編集可能なテキストフィールドにデータをプルするにはどうすればよいですか?以下を試しましたが、コードが機能していません:(

<?php
// Make a MySQL Connection
mysql_connect("####", "####", "####") or die(mysql_error());
mysql_select_db("####") or die(mysql_error());

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM pages") 
or die(mysql_error());  

?>
<p>Page title</p><br />
<?php echo"<input name=\"pagename\" type=\"text\" id=\"pagename\" value=\"" .$pagename. "\">"; ?>

<p>Keywords</p><br />
  <?php echo"<input name=\"pagekey\" type=\"text\" id=\"pagekey\" value=\"" .$pagekey. "\">"; ?>

<p>Description</p><br />
<?php echo"<input name=\"pagedesc\" type=\"text\" id=\"pagedesc\" value=\"" .$pagedesc. "\">"; ?>

<p>Content</p><br />
<?php echo "<textarea name=\"pagecont\" cols=\"120\" rows=\"20\" id=\"pagecont\" >".$pagecont."</textarea>";?>
4

7 に答える 7

1

クエリ結果から行をフェッチしておらず、未定義の変数を出力しています。適切な順序は次のとおりです。

$result = mysql_query($sql) or die(mysql_error()); // run the query
$row = mysql_fetch_assoc($row); // fetch a result row

echo $row['name_of_field']; // output one of the result row's data fields.

また、データをそのまま HTML フォームに出力する場合は、出力するデータにフォームが「壊れる」ものがないことを確認する必要があることに注意してください。たとえば、出力テキストに が含まれていて"、フォーム フィールドの属性を引用符で囲んでいる場合、html が「壊れて」しまいます。html への出力のベスト プラクティスは、次を使用することです。

<input type="text" name="somefield" value="<?php echo htmlspecialchars($row['name_of_field']) ?>" />
于 2012-05-15T15:43:10.330 に答える
0

あなたが持っているようなフォームを使用して、一度に1行を編集できます。したがって、2ページが必要です。ページ#1は、ページキーをGETパラメーターとして渡す編集ページへのハイパーリンクを含むテーブル内のすべてのページを一覧表示します。ページ#2は、ページIDをGETパラメーターとして受け取った編集ページです。

ページ#2のURLは次のようになります。

http://domain.com/editpage.php?pagekey=abc

そのためのコードは次のようになります。

<?php
// Make a MySQL Connection
mysql_connect("####", "####", "####") or die(mysql_error());
mysql_select_db("####") or die(mysql_error());

$key = $_GET['pagekey'];

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM pages where pagekey = $key")
    or die(mysql_error());  

$row = mysql_fetch_assoc($result);

?>
<p>Page title</p><br />
<?php echo"<input name=\"pagename\" type=\"text\" id=\"pagename\" value=\"" .$row['pagename']. "\">"; ?>

<p>Keywords</p><br />
  <?php echo"<input name=\"pagekey\" type=\"text\" id=\"pagekey\" value=\"" .$row['pagekey']. "\">"; ?>

<p>Description</p><br />
<?php echo"<input name=\"pagedesc\" type=\"text\" id=\"pagedesc\" value=\"" .$row['pagedesc']. "\">"; ?>

<p>Content</p><br />
<?php echo "<textarea name=\"pagecont\" cols=\"120\" rows=\"20\" id=\"pagecont\" >".$row['pagecont']."</textarea>";?>

上記のコードは非常に基本的なものですが、編集可能な入力ボックスに行の内容を表示するための今のところ要件を満たします。

于 2012-05-15T15:49:08.313 に答える
0

うまくいけば、My​​SQL への接続方法がわかります。参考までにダミー接続を入れておきます。

<?php   
    //Open connection

    $qry="SELECT * FROM <table>";
    $result=mysql_query($qry);


    while($row = mysql_fetch_array($result))
    {
       $variable = $row["column_name"];
    }
?>

HTML:

<input type="text" id="test" value="<?=$variable?>">

特定の結果を得ようとしているWHERE場合は、SQL ステートメントで句を使用することを検討してください。詳細については、こちらを参照してください: W3Schools

于 2012-05-15T15:39:32.937 に答える
0
<?php
// Make a MySQL Connection
mysql_connect("####", "####", "####") or die(mysql_error());
mysql_select_db("####") or die(mysql_error());

// Get all the data from the "example" table
$result = mysql_query("SELECT * FROM pages") or die(mysql_error());

$result = mysql_fetch_array($result, MYSQL_ASSOC);

foreach($result as $page): ?>

    <p>Page title</p><br />
    <input name="pagename" type="text" id="pagename" value="<?= $page['pagename']; ?>">

    <p>Keywords</p><br />
    <input name="pagekey" type="text" id="pagekey" value="<?= $page['pagekey']; ?>">

    <p>Description</p><br />
    <input name="pagedesc" type="text" id="pagedesc" value="<?= $page['pagedesc']; ?>">

    <p>Content</p><br />
    <textarea name="pagecont" cols="120" rows="20" id="pagecont" ><?= $page['pagecont']; ?></textarea>
    <hr />

<?php endforeach; ?>
于 2012-05-15T15:39:45.760 に答える
0

クエリを実行していますが、クエリから結果を取得していません。これを試して:

$fields = mysql_fetch_assoc($result);

その後、クエリの結果を などで参照できます$fields['pagename']

ドキュメンテーションはこちら。一般に、mysql モジュールのドキュメントを参照することをお勧めします。

于 2012-05-15T15:40:38.237 に答える
0

列からすべてのデータを取得するために機能するこの関数を作成しました。

 function page_data($fieldname){

              $result = mysql_query("SELECT ".$fieldname." FROM pages");

              while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                  $arrdata[] =  $row[$fieldname];
              }

              return $arrdata;   
          }

列が「pagename」であるページテーブルからすべてのデータを取得します

    $pagename=array();
    $pagename=page_data('pagename');
    $numpages=count($pagename)-1;

pagename の各値について、値をテキストボックスにエコーします

    for($i=0; $i <= $numpages; $i++){
    echo '<input name="pagename" type="text" value=".$pagename[$i]."/>';
    }
于 2012-05-15T15:51:33.160 に答える
0
<?php
  // Make a MySQL Connection
  mysql_connect("####", "####", "####") or die(mysql_error());
  mysql_select_db("####") or die(mysql_error());

  // Get all the data from the "example" table
  $result = mysql_query("SELECT * FROM pages") or die(mysql_error());
  while($row = mysql_fetch_array($result))
  {
?>

  <p>Page title</p><br />
  <input name="pagename" type="text" id="pagename" value="<?php echo $row['pagename']; ?>">
  <p>Keywords</p><br />
  <input name="pagekey" type="text" id="pagekey" value="<?php echo $row['pagekey']; ?>">
  <p>Description</p><br />
  <input name="pagedesc" type="text" id="pagedesc" value="<?php echo $row['pagedesc']; ?>">
  <p>Content</p><br />
  <textarea name="pagecont" cols="120" rows="20" id="pagecont"><?php echo $row['pagecont']; ?></textarea>

<?php
  }
?>
于 2012-05-25T05:53:15.153 に答える