如何通过单击PHP中的按钮来触发SQL查询?

时间:2014-08-27 17:51:27

标签: php jquery mysql sql

所以我正在尝试建立一个网上商店,基本上不起作用的是当购买点击"购买"按钮。查询是:

$sql = mysql_query("INSERT INTO vehicles (model,owner) VALUES ('$vehid','$id')");   

,按钮是

<form action=\"\" method=\"post\">   
    <input type=\"submit\" value=\"BUY\">
</form>

整个代码:

<?php
$id = $_SESSION['SESS_MEMBER_ID'];


include ('config2.php');

$result = mysql_query("select * from shop_vehicule ORDER BY id DESC");
$result2 = mysql_query("select * from accounts where id = '$id'");
while($row = mysql_fetch_array($result2))
$credit = $row['credits'];
while($row = mysql_fetch_array($result)){
    $name = $row['nume'];
    $price = $row['pret'];
    $left = $credit - $price; 
    $vehid = $row['vehid'];

    echo "<p><center><b>$name</b> | $price </center>
        <a href=\"#\" class=\"topopup\">More information about $name</a></p>

    <div id=\"toPopup\"> 

        <div class=\"close\"></div>
        <span class=\"ecs_tooltip\">Press Esc to close <span class=\"arrow\"></span></span>
        <div id=\"popup_content\"> <!--your content start-->
            <p>
The $name costs $price, after you'll have $left !</p>

<form action=\"\" method=\"post\">   
    <input type=\"submit\" value=\"BUY\">
</form>

        </div> 

    </div> 

    <div class=\"loader\"></div>
    <div id=\"backgroundPopup\"></div>";
$sql = mysql_query("INSERT INTO vehicles (model,owner) VALUES ('$vehid','$id')");   
}

mysql_close();
?>

3 个答案:

答案 0 :(得分:1)

这是我尝试提供的帮助,我没有测试代码,但它应该正常工作。请阅读代码中的注释。它解释了它的作用。

$id = $_SESSION['SESS_MEMBER_ID'];

/* To use PDO the following line must be included in your config2.php

    define('DB_HOST', 'localhost');
    define('DB_NAME', 'database');
    define('DB_USER', 'username');
    define('DB_PASS', 'password');
    $db = new PDO('mysql:host='. DB_HOST .';dbname='. DB_NAME, DB_USER, DB_PASS);

    You can either use define or put the info straight into the PDO() function but I like it when it's easy to read and modify if needed.
*/
include ('config2.php');

$query = $db->prepare("SELECT * FROM accounts WHERE id = :id"); //Please use PDO or MySQLi, MySQL is outdated and unsecure. For this example, I am using my favorite method which is PDO.
$query->execute(array(':id' => $id));
$account = $query->fetchObject(); //Since we only need one line, we're going to use fetchObject object.

$query2 = $db->prepare("SELECT * FROM shop_vehicule ORDER BY id DESC");
$query2->execute();
$vehicules = $query2->fetchAll(); //I am using fetchAll due to multiple row will be returned.

foreach ($vehicules as $row) {
    echo '<p><center><b>'.$row['nume'].'</b> | '.$row['pret'].' </center>
        <a href="#" class="topopup">More information about $name</a></p>

    <div id="toPopup">
        <div class="close"></div>
        <span class="ecs_tooltip">Press Esc to close <span class="arrow"></span></span>
        <div id="popup_content"> <!--your content start-->
            <p>The '.$row['nume'].' costs '.$row['pret'].', after you\'ll have '.$account->credit - $row['pret'].' !</p>
            <a href="?purchase='.$row['vehid'],'">BUY</a>
        </div>
    </div> 
    <div class="loader"></div>
    <div id="backgroundPopup"></div>';
}

// Basically what this part does is whenever the user click on the link, purchase will be set and it'll trigger the query to insert into the vehicule table then return a message if it was successful or not.
if ( isset($_GET['purchase']) ) {
    $query = $db->prepare("INSERT INTO vehicles (model,owner) VALUES (':vehid',':id');");
    $query->execute(array(':vehid' => $_GET['purchase'], ':id' => $id));

    if ($query) {
        echo 'Congratulations! You have successfully purchased the vehicule!';
    } else {
        echo 'An error has occured, the purchase was not complete.';
    }
}

答案 1 :(得分:0)

在表单标记中使用action = $ _ SERVER [&#39; PHP_SELF&#39;]并在isset($ _ POST [&#39; Buy&#39;])为真的情况下写入MySQL插入代码

答案 2 :(得分:-1)

你可以在php中做到这一点,但是在2个不同的文件中。 第一个将具有表单,第二个将读取POST值并执行查询

示例(请填写缺失的部分)

文件1。 PHP

    <form action="file2.php" method="post">   
        <input type="hidden" value=<?php echo $vehid;?>" name="vehid">
        <input type="hidden" value=<?php echo $id;?>" name="id">
        <input type="submit" value="BUY">
    </form>

File2.php

$vehid=$_POST['model'];
$id=$_POST['id'];
$sql = mysql_query("INSERT INTO vehicles (model,owner) VALUES ('$vehid','$id')"); 

有关完整教程,请参阅http://www.w3schools.com/php/php_mysql_insert.asp