1

ループを使用してfor、MySQL テーブル選択クエリの内容から HTML テーブルを作成しています。各行の最後に、その行を別のテーブルにコピーするためのリンクがあります。

MySQL 挿入クエリのテーブル行からデータを取得する方法がわかりません。苦労している場所をマークしましたXXX

<?php

mysql_select_db("cardatabase");

$link = mysql_connect("localhost", "root", "password");
$query = "SELECT * from cars";
$result = mysql_query($query);

if($_GET['rent']) {
    $rent = "INSERT INTO rentedcars VALUES('XXX','XXX','XXX','XXX','XXX','XXX','XXX','XXX','XXX','XXX')";
    mysql_query($rent);
    echo "<meta http-equiv='refresh' content='0;url=rent.php'/>";
}

echo "<table>";
echo "<tr><td>ID</td><td>Make</td><td>Model</td><td>Fuel Type</td><td>Transmission</td><td>Engine Size</td><td>Doors</td><td>Amount</td><td>Available</td><td>Date Added</td><td>Remove</td></tr>";

for ($i = 0; $i < mysql_num_rows($result); $i++) {
    $row = mysql_fetch_object($result);
    echo "<tr>
        <td>$row->ID</td>
        <td>$row->CARMAKE</td>
        <td>$row->CARMODEL</td>
        <td>$row->FUELTYPE</td>
        <td>$row->TRANSMISSION</td>
        <td>$row->ENGINESIZE</td>
        <td>$row->DOORS</td>
        <td>$row->AMOUNT</td>
        <td>$row->AVAILABLE</td>
        <td>$row->DATEADDED</td>
        <td><a href='?rent=$row->ID'>Rent</a></td>
        </tr>";
}
echo "</table>";

編集(更新されたコード):

<?php

mysql_select_db ("cardatabase");

$link   = mysql_connect ("localhost", "root", "password");
$query  = "SELECT * from cars";
$result = mysql_query ($query);

if($_GET['rent']) {
    $query_car = sprintf("SELECT * from cars WHERE ID=%s",$_GET['rent']);
    $rslt      = mysql_query($query_car);
    $car       = mysql_fetch_object ($rslt);
    $rent      = "INSERT INTO rentedcars VALUES('$car->ID','$car->CARMAKE','$car->CARMODEL','$car->FUELTYPE','$car->TRANSMISSION','$car->ENGINESIZE','$car->DOORS','$car->AMOUNT','$car->AVAILABLE','$car->DATEADDED')";
    mysql_query($rent);
    echo "<meta http-equiv='refresh' content='0;url=rent.php'/>";
}

echo "<table>";
echo "<tr>";
echo "<td>ID</td><td>Make</td><td>Model</td><td>Fuel Type</td><td>Transmission</td><td>Engine Size</td><td>Doors</td><td>Amount</td><td>Available</td><td>Date Added</td><td>Remove</td>";
echo "</tr>";

while ($row = mysql_fetch_object($result)) {
    echo "<tr>
        <td>$row->ID</td>
        <td>$row->CARMAKE</td>
        <td>$row->CARMODEL</td>
        <td>$row->FUELTYPE</td>
        <td>$row->TRANSMISSION</td>
        <td>$row->ENGINESIZE</td>
        <td>$row->DOORS</td>
        <td>$row->AMOUNT</td>
        <td>$row->AVAILABLE</td>
        <td>$row->DATEADDED</td>
        <td><a href='?rent=$row->ID'>Rent</a></td>
        </tr>";
}
echo "</table>";
4

3 に答える 3

2

mysql_* は PHP 5.5.0 で廃止されました。PDO などを使用する必要があります。

try {
    $DBH = new PDO('mysql:dbname=cardatabase;host=localhost', 'root', 'password');
} catch (PDOException $e) {
    echo 'Connection failed: ' . $e->getMessage();
}

$STH = $DBH->query("SELECT * FROM cars")->execute();

while ($row = $STH->fetch(PDO::FETCH_OBJ)) {
      echo "<tr>
<td>$row->ID</td>
<td>$row->CARMAKE</td>
<td>$row->CARMODEL</td>
<td>$row->FUELTYPE</td>
<td>$row->TRANSMISSION</td>
<td>$row->ENGINESIZE</td>
<td>$row->DOORS</td>
<td>$row->AMOUNT</td>
<td>$row->AVAILABLE</td>
<td>$row->DATEADDED</td>
<td><a href='?rent=".$row->ID."'>Rent</a></td>
</tr>";
    }

編集:@Skatoxが言ったように!

于 2012-12-20T13:38:55.107 に答える
1

挿入クエリに列名がありません

 $rent = "INSERT INTO rentedcars (id ,carmake, carmodel,fueltype,transmission, enginesize,doors,amount ,available, dateadded) 
           VALUES('xxx','xxx','".$carmodel."','XXX','XXX','XXX','XXX','XXX','XXX','XXX')"; 

                                   ^^^^^-------------i showed u exempel under

これらの XXX は、入力値から取得した値です

  <input  name= "car_model" id= "car_model" value="mercedes" > 

次に、この値を取得します

 if (isset($_POST['car_model'])){ $carmodel = $_POST['car_model']}

$carmodel次に、SQLでこの値を使用します

于 2012-12-20T13:33:19.213 に答える
1

私は次のようにします:

<?php
$link = mysql_connect ("localhost", "root", "password");
mysql_select_db ("cardatabase");
$query = "SELECT * from cars";
$result = mysql_query ($query);

車の情報を取得して保存する

if($_GET['rent'])
{
$query_car = sprintf("SELECT * from cars WHERE ID=%s",$_GET['rent']); //Avoids sql injection
$rslt = mysql_query($query_car);
$car = mysql_fetch_object ($rslt) 

ここでは、車がないかどうかを検証する必要があります

$rent = "INSERT INTO rentedcars VALUES('$car->ID','$car->CARMAKE','$car->CARMODEL','$car->FUELTYPE','$car->TRANSMISSION','$car->ENGINESIZE','$car->DOORS','$car->AMOUNT','$car->AVAILABLE','$car->DATEADDED')";
mysql_query($rent);
echo "<meta http-equiv='refresh' content='0;url=rent.php'/>";
}

@Vinoth Babuが言ったように、それをwhileに変更します:

while   ($row = mysql_fetch_object ($result)) 
{        
$row = mysql_fetch_object ($result);
echo "<tr>
<td>$row->ID</td>
<td>$row->CARMAKE</td>
<td>$row->CARMODEL</td>
<td>$row->FUELTYPE</td>
<td>$row->TRANSMISSION</td>
<td>$row->ENGINESIZE</td>
<td>$row->DOORS</td>
<td>$row->AMOUNT</td>
<td>$row->AVAILABLE</td>
<td>$row->DATEADDED</td>
<td><a href='?rent=$row->ID'>Rent</a></td>
</tr>";
}
print "</table>";
?>

MySQL PDO に切り替えることをお勧めします。より安全で、より優れた安全なコードを取得できます。

于 2012-12-20T13:31:34.347 に答える