0

私は、顧客データベースを作成できるプロジェクトに取り組んでいます。Create.php と Delete.php を作成しましたが、編集ページの基本構造に問題があります。

私の最初のアイデアは、クリックするとユーザーが domain.com/Customer.php?Customer_name="JohnD" に移動する、データが入力されたドロップダウン ボックスを作成することです (これは可能です)。

2つのことをしているので、これに関していくつかの問題があります。

  1. テーブル内のすべてのデータをエコーに出力しています。
  2. URL から値を取得していませんが、何かを見逃していることはわかっていますが、何を検索すればよいかわかりません。

これまでの私のスニペットは次のとおりです。

               <h2>
                <?Php
                $sql="SELECT id,customer_name FROM Customers";
                $result =mysql_query($sql);
                while ($data=mysql_fetch_assoc($result)){
                ?>
                <?Php echo $data['customer_name']; } ?>
                </h2>

まだヘッダーにこれを取得しています:

ジョン・ドゥ・ジミー・ティミー・テスト

これらは、Customers テーブルの行内のすべての値です。

質問がいたるところにある場合は申し訳ありません。わかりにくかったら訂正します。

前もって感謝します

4

3 に答える 3

1

このURLを使用する

domain.com/Customer.php?CID=1

コードは次のようになります

<?php

            $customer_id = (int) $_GET['CID'];

            $query = "SELECT id, customer_name FROM Customers 
                           WHERE id = {$customer_id}";

            $result = mysql_query($query) or die('<p>' . $query . '</p><div>' . 
                                   mysql_error() . '</div>');

            $customer = mysql_fetch_assoc($result);  

?>
 <h2><?php echo $customer['customer_name'] ?></h2>
于 2013-01-19T18:46:04.310 に答える
1

where句を使用して、SQL選択を特定の顧客に制限する必要があります。そして、リクエストからその顧客 ID を取得している可能性があります。ドロップダウン ボックスでは、名前ではなく顧客 ID を使用することをお勧めします。そうすれば、URL は次のようになります。

  domain.com/Customer.php?id=1

Customer.php ページで、次を使用して値を取得できます。$id = $_GET['id'];

SQLに関しては、データベースを照会するためのより安全な方法を使用する必要があります。

   $dsn = 'mysql:host=localhost;dbname=mydb';
   $username = 'myun';
   $password = 'mypw';
   $options = array(
       PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
   ); 
   $dbh = new PDO($dsn, $username, $password, $options);
   $stmt = $dbh->prepare("select id, Customer_name from customers where id = :id");
   $stmt->bindParam(':id', $id);
   $stmt->execute();

   while($c = $stmt->fetch()){
          echo $c['customer_name'];
   }

このようにして、選択した顧客のデータのみが表示されます。

于 2013-01-19T18:41:40.940 に答える
1

$_GETURL からパラメーターを取得するには、を使用する必要があります。

<?php

  //customer.php?Customer_name=JohnD (no quotes)

  echo $_GET[Customer_name];

?>

mysqli_次に、 orを使用して、クエリPDOをバインド$_GET[Customer_name]して実行します。SQL クエリでパラメーターをバインドしないと、SQL インジェクションに対して脆弱になります。

于 2013-01-19T18:36:41.737 に答える