2013-11-14 159 views
0

我想在我的网站上设置一个表单,但它给了我一个错误,我确定我的代码正确但仍然无法正常工作。HTML mySQL表单不能正常工作

我正在砸我的头试图找到任何帮助,将不胜感激的问题。 这是PHP脚本:

<?php 

$host=""; // Host name 
$username=""; // Mysql username 
$password=""; // Mysql password 
$db_name=""; // Database name 
$tbl_name="orders_mysql"; // Table name 

// Connect to server and select database. 
mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// Get values from form 
$name=$_POST["name"]; 
$lastname=$_POST["lastname"]; 
$address=$_POST["address"]; 
$address2=$_POST["address2"]; 
$city=$_POST["city"]; 
$state=$_POST["state"]; 
$zip=$_POST["zip"]; 
$country=$_POST["country"]; 
$phone=$_POST["phone"]; 
$bra_size=$_POST["bra_size"]; 
$bra_color=$_POST["bra_color"]; 
$cami_size=$_POST["cami_size"]; 
$cami_color=$_POST["cami_color"]; 
$email=$_POST["email"]; 

// Insert data into mysql 
$sql="INSERT INTO orders_mysql(name, lastname, address, address2, city, state, zip, country, phone, bra_size, bra_color, cami_size, cami_color, email)VALUES('$name', '$lastname', '$address' '$address2', '$city', '$state', '$zip', '$country', '$phone', '$bra_size', '$bra_color', '$cami_size', '$cami_color', '$email')"; 
$result=mysql_query($sql); 

// if successfully insert data into database, displays message "Successful". 
if($result){ 
echo "Successful"; 
echo "<BR>"; 
echo "<a href='index.php'>Back to main page</a>"; 
} 

else { 
echo "ERROR"; 
} 
?> 

<?php 
// close connection 
mysql_close(); 
?> 

这是HTML:

 <form action="insert_ac.php" id="order" method="post" > 
      <center><span class="products_title">Select Quantity, Size and Color</span> 
      <img id="product" src="/images/seamlesscami.jpg" alt="Seamless Cami"> 
       <label for="selectList">Size</label> 
       <select id="selectList"> 
        <option value="Option 1">Small</option> 
        <option value="Option 2">Medium</option> 
        <option value="Option 3">Large</option> 
       </select> 
      <ul> 
      <li> 
      <fieldset> 

      <legend id="title1" class="desc"> 
      Select a Choice 
      </legend> 

      <div> 
      <span> 
       <input id="Field1_0" name="Field1" type="radio" class="field radio" checked="checked"> 
       <label class="choice" for="Field1_0" style="background:beige; height:40px; width: 50px; float: left;"></label> 
      </span> 
      <span> 
       <input id="Field1_1" name="Field1" type="radio" class="field radio"> 
       <label class="choice" for="Field1_1" style="background:black; height:40px; width: 50px; float: left;"></label> 
      </span> 
      </div> 
      </fieldset> 
      </li> 
      </ul> 
      </center> 
      </div> 
     <div class="one-third column form_pos"> 
      <center><span class="products_title">Select Quantity, Size and Color</span> 
      <img id="product" src="/images/seamlesscontrolbrief.jpg" alt="Seamless Control Brief"> 
           <label for="selectList">Size</label> 
       <select id="selectList"> 
        <option value="Option 1">Small</option> 
        <option value="Option 2">Medium</option> 
        <option value="Option 3">Large</option> 
       </select> 
      <ul> 
      <li> 
      <fieldset> 

      <legend id="title2" class="desc"> 
      Select a Choice 
      </legend> 

      <div> 
      <span> 
      <input id="Field1_3" name="Field2" type="radio" class="field radio" checked="checked"> 
      <label class="choice" for="Field1_3" style="background:beige; height:40px; width: 50px; float: left;"></label> 
      </span> 
      <span> 
      <input id="Field1_4" name="Field2" type="radio" class="field radio"> 
      <label class="choice" for="Field1_4" style="background:black; height:40px; width: 50px; float: left;"></label> 
      </span> 
      </div> 
      </fieldset> 
      </li> 
      </ul></center> 
      </div> 
     <div class="fifteen columns"> 
      <p id="order">*Your free bonus offer will be automatically deducted at checkout with each BraWizard ordered. All you will be charged is 7.99 for additional processing and handling. New Jersey Residents add tax. 60 day gaurentee less S/H.</p> 
     </div> 
     <center> 
     <div class="fourteen columns" style="background: lightgrey; margin: 0 50% 0 7%;"> 

     <div class="seven columns"> 
     <center> 
     First name:* <input type="text" name="name" required> 
     Address 1:* <input type="text" name="address" required> 
     City:* <input type="text" name="city" required> 
     Zip Code:* <input type="text" name="zip" required> 
     Email Address:* <input type="text" name="email" required> 
     </center> 
     </div> 


     <div class="six columns"> 
     <center> 
     Last name:* <input type="text" name="lastname" required> 
     Address 2:* <input type="text" name="address2" required> 
     State:* <input type="text" name="state" required> 
     Country:* <input type="text" name="country" required> 
     Phone Number:* <input type="text" name="phone" required> 
     </center> 
     </div> 


     </div> 
     </center> 
     <div class="sixteen columns"> 
     <button type="submit" value="submit" name="Submit" style="margin-left:38%;"><img src="/images/order.jpg" alt="order"></button> 
     </form> 
     </div> 
     </div> 

    </div><!-- container --> 


<!-- End Document 
================================================== --> 
</body> 
</html> 
+2

什么是错误? – j08691

+0

你能否包括你在你的问题中得到的错误? – andrewsi

+0

'var_dump(mysql_query($ sql)?'查询OK':or die(mysql_error()));' – samayo

回答

1

好了,所以这里是交易,我可以在脚本中看到有以下担忧:

首先,尝试进行连接,如下所示:

mysql_connect($host, $username, $password) 

(下称“从变量删除)。第二,我看到你正在向数据库插入一个新的寄存器,而我看不到任何“id”列,你的数据库表是否与索引一起工作?你有自动增量值吗?如果是的话,你应该格式化你的SQL如下:

"INSERT INTO orders_mysql(id, name, lastname, address, address2, city, state, zip, country, phone, bra_size, bra_color, cami_size, cami_color, email)VALUES(NULL, '$name', '$lastname', '$address' '$address2', '$city', '$state', '$zip', '$country', '$phone', '$bra_size', '$bra_color', '$cami_size', '$cami_color', '$email')"; 

,你可以尝试,以解决了你的问题,其他的事情,情况如下: 复制你的SQL语句,并用实际值替换变量,只写randon的话,是这样的:有这个

"INSERT INTO orders_mysql(name, lastname, address, address2, city, state, zip, country, phone, bra_size, bra_color, cami_size, cami_color, email)VALUES('asd', 'asd', 'asd' 'asd', 'asd', 'asd', 'asd', 'asd', 'asd', 'asd', 'asd', asd', 'asd', 'asd')"; 

,使用phpMyAdmin,粘贴SQL语句在你的数据库SQL查询框中,并尝试添加它,这会给你一个错误,或者是成功的,如果它是一个错误,你会得到关于为什么你的陈述失败的描述。

是ussually使得语句失败了,其他的事情是,你必须添加“'”的列名:

"INSERT INTO orders_mysql(´name´, ´lastname´, ´address´, ´address2´, ´city´, ´state´, ´zip´, ´country´, ´phone´, ´bra_size´, ´bra_color´, ´cami_size´, ´cami_color´, ´email´)VALUES('$name', '$lastname', '$address' '$address2', '$city', '$state', '$zip', '$country', '$phone', '$bra_size', '$bra_color', '$cami_size', '$cami_color', '$email')"; 

让我们试着任一选项,并让我们与您取得错误更新为了尝试用更多的信息来解决这个问题。

+0

好的,我会尝试这个东西,让你知道发生了什么感谢 –

0

请记住,由mysql扩展提供的API将被弃用,并且不再支持mysql_connect(或任何mysql_ *)之类的函数。请看看这些链接:

MySQL的 - 选择一个API - http://us2.php.net/manual/en/mysqlinfo.api.choosing.php

PHP:正确的方式 - 数据库 - http://www.phptherightway.com/#databases与PDO

工作是非常简单的。为了与MySQL数据库连接,我们可以做这样的事情:

<?php 
$hostname = 'localhost'; 
$username = 'username'; 
$password = 'password'; 

try { 
    $db_host = new PDO("mysql:host=$hostname;dbname=mysql", $username, $password); 
    echo 'Connected!'; 
} 
catch(PDOException $e) { 
    echo $e->getMessage(); 
} 

既然我们已经连接,也许有些INSERT语句:

<?php 
try { 
    $cons = $db_host->exec("INSERT INTO orders_mysql(name, 
          lastname) VALUES('foo', 'bar', 'baz', 'bar2')"); 

    echo $cons; // number of affected rows 
} 
catch(PDOException $e) { 
    echo $e->getMessage(); 
} 

即使我们可以更好地准备我们的SQL执行之前:

<? 
$name  = 'foo'; 
$lastname = 'bar'; 
// [...] 
$email = 'qux'; 

// constructing 
$query = $db_host->prepare("SELECT * FROM orders_mysql 
          WHERE name = :name 
          AND lastname = :lastname"); 
// binding params 
$query->bindParam(':name', $name, PDO::PARAM_STR, 50); 
$query->bindParam(':lastname', $lastname, PDO::PARAM_STR, 50); 
// executing 
$query->execute(); 
// fetching results 
$results = $query->fetchAll(); 

// displaying 
foreach($results as $tuple) { 
    echo "Name: {$tuple['name']} - Lastname: {$tuple['name']}"; 
} 

再见!

=)