2013-11-14 155 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']}"; 
} 

再見!

=)