0

私は PHP を初めて使用しますが、これを正しく行っていますか? 以下のコードの関数は、データベース内に 2 つの値を同時に配置します。2 つのテキスト ボックスに値を入力すると、最初のテキスト ボックスの値のみがデータベースに格納されます。これら2つの値を1つのフォームでデータベースに保存するにはどうすればよいですか?

add.php

    <?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
    {
    die('Could not connect: ' . mysql_error());
        }

    mysql_select_db("my_database", $con);


    mysql_close($con);
    ?> 

    <html>
    <body>

    <form action="insert.php" method="post" name="form1">
    Firstname: <input type="text" name="firstname" />
    Firstname1: <input type="text" name="firstname" />

    Age: <input type="text" name="age" />



    <input type="submit" name="form1" />
    </form>



    </body>
    </html> 

insert.php

        <html>
     <head>
      <title>Record Added</title>
      <meta http-equiv="refresh" content="0;url=select.php">
     </head>
     <body>
     <?php
    $con = mysql_connect("localhost","root","");
    if (!$con)
      {
      die('Could not connect: ' . mysql_error());
      }

    mysql_select_db("my_database", $con);

    $sql="INSERT INTO biodata (FirstName)
    VALUES
    ('$_POST[firstname]')";

    if (!mysql_query($sql,$con))
      {
      die('Error: ' . mysql_error());
      }
    echo "1 record added";

    mysql_close($con);
    ?> 

    <a href="select.php"> see</a>

     </body>
    </html>

select.php

    <?php
    $dbHost = 'localhost';
    $dbUser = 'root';
    $dbPass = '';
    $dbName = 'my_database';

    $dbConn = mysql_connect ($dbHost,$dbUser, $dbPass) or die ('MySQL connect failed. ' . mysql_error());
    mysql_select_db($dbName) or die('Cannot select database. ' . mysql_error());

    ?>

    <html>
    <head>
    <title>Display</title>
    </head>
    <table align="center" border=1>
    <tr>
    <th> First Name</th>
    <th>Last Name </th>
    <th> Age </th>
    </tr>

    <?php
    $query = "SELECT * FROM biodata";
    $result = mysql_query($query);
    while ($row = mysql_fetch_assoc($result)){
    ?>
    <tr><td><?php echo $row['FirstName'];?></td>

    </tr>
    <?php }?>
    </table>
    </body>
    </html>
4

1 に答える 1

1

[更新] これを試してください:

フォームから値を配列として送信し、2 番目の入力にアクセスします。そうしないと、レコードが上書きされます。配列を形成する場合を除いて、同じ名前の 2 つのフォーム フィールドを持つことはできません。これが最良の選択肢です。ここでは、同じテーブルの 2 つの列に両方の値を格納しています。

あなたのフォーム

<form action="add.php" method="post" name="verify">
<font color="#FFFF00">Name:</font> <input type="text" name="FistName[0]" />
<font color="#FFFF00">Name:</font> <input type="text" name="FirstName[1]"/>

<input type="submit" value="add" name="verify"/>

これを使用してテキストボックス 2 をデータベースに追加します

<?php
$names = $_POST["FirstName"];
$FirstName_1 = mysql_real_escape_string($names[0]);
$FirstName_2 = mysql_real_escape_string($names[1]);

$query = "INSERT INTO biodata (FirstName_1, FirstName_2)
VALUES ('" . $FirstName_1 . "', '" . $FirstName_2 . "') ";
$result = mysql_query($query);

?>

これを使用してデータベースから表示します

<?php
$query = "SELECT * FROM biodata";
$result = mysql_query($query);
while ($row = mysql_fetch_assoc($result)){
?>
<tr><td><?php echo $row["FirstName_1"];?></td>
</tr>

データベースに 2 つ以上の値を追加するには、mysqli を使用して w3schools で次の例に従います (mysql は非推奨であることに注意してください)。

<?php
//Filename: insert.php
$con=mysqli_connect("example.com","peter","abc123","my_db");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO Persons (FirstName, LastName, Age)
VALUES
('$_POST[firstname]','$_POST[lastname]','$_POST[age]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error());
  }
echo "1 record added";

mysqli_close($con);
?>

あなたのフォーム:

<html>
<body>

<form action="insert.php" method="post">
Firstname: <input type="text" name="firstname">
Lastname: <input type="text" name="lastname">
Age: <input type="text" name="age">
<input type="submit">
</form>

</body>
</html>

ここで簡単なコースを実行します。

http://www.w3schools.com/php/php_mysql_insert.asp

于 2013-03-01T14:55:22.033 に答える