2013-05-07 137 views
-3

此php由發佈變量的表單填充。一旦它擁有汽車模型,它應該從數據庫中收集數據並存儲每個變量以供代碼使用。這與另一個數據庫一起使用,所以我寧願在向前移動之前填充每個var列表。僅提取第一個變量的數據庫

問題是,數據庫只收集第一個變量而沒有收集以下變量。我如何調用所有變量並將它們保存在下面的html中。

例如,客戶選擇汽車模型,提交併且表格將模型發送到該代碼,其中數據庫應該收集關於汽車的更多信息以用於自動生成的PDF小冊子。

感謝您的幫助!

//database, table CARS and store variables 
$conn = mysql_connect("localhost", "blah", "blah"); 
mysql_select_db("car_db", $conn); 

$sql = "SELECT * FROM cars WHERE modelname = '$carmodel'" or die(mysql_error()); 
       $rs_result = mysql_query ($sql, $conn); 
       while ($row = mysql_fetch_assoc($rs_result)) 

//create variables from database entry 
$dbbrand = $row['brandname']; 
$dbseries = $row['series']; 
$dbprice = $row['price']; 
$dbseats = $row['seats']; 
$dbtype = $row['type']; 
$dbcolor = $row['color']; 

// -------------------- HTML CONTENT -------------------- // 

$html = " 
<body> 
    <!--Print Wrap Start--> 
    <div id=\"content\"> 

     <!--Header with logo--> 
     <div id=\"div-head\"><div id=\"div-head\"><span class=\"important\">". $dbbrand ."</span></div></div> 


     <!--start relative container--> 
     <div id=\"div-1\"><span class=\"important\">". $dbseries ."</span> 
+0

您發佈的代碼至少包含兩個語法錯誤。這是一個直接的複製和粘貼?如果是這樣,你運行它時會出錯嗎? – 2013-05-07 22:28:42

+0

是的,這主要是直接複製粘貼,我替換的唯一東西是變量名稱,並刪除了數據庫連接密碼。我沒有收到任何錯誤,只有第一個錯過了每個錯誤的變量。感謝您的快速回復。 – user2360140 2013-05-07 22:35:11

回答

0

假設您的語法如上所述進行復制,您需要在變量賦值周圍放置大括號「{」和「}」。

$sql = "SELECT * FROM cars WHERE modelname = '$carmodel'" or die(mysql_error()); 
       $rs_result = mysql_query ($sql, $conn); 
       while ($row = mysql_fetch_assoc($rs_result)) {  <----- here 

//create variables from database entry 
$dbbrand = $row['brandname']; 
$dbseries = $row['series']; 
$dbprice = $row['price']; 
$dbseats = $row['seats']; 
$dbtype = $row['type']; 
$dbcolor = $row['color']; 

} <---- here 
+0

這樣做的工作,簡單但煩人。乾杯! 「我現在測試一下,謝謝你的幫助和快速回復!」 – user2360140 2013-05-07 22:38:28

+0

幫助你理解爲什麼它首先是一個問題,你需要知道while循環,for循環和if語句都不需要使用大括號{}來工作,但如果你不使用大括號,它只使用下一行作爲循環條件。所以把括號放在你所有的任務中也解決了問題 – bkdude 2013-05-08 13:06:36

+0

也停止使用mysql_query。你至少應該使用mysqli或者pdo。您將在將來升級時遇到問題,因爲mysql_query已被棄用。 – bkdude 2013-05-08 13:08:14

0

的問題是在這裏

while ($row = mysql_fetch_assoc($rs_result)) 
//create variables from database entry 
$dbbrand = $row['brandname']; 

該代碼分配從結果集到$ row變量,這僅用於當前值分配到環以下$dbbrand變量的記錄。

while循環只能控制一行代碼,即$dbbrand = $row['brandname'];。您需要將下面的所有相關代碼行作爲while循環的一部分進行封裝。下面我將演示並糾正代碼中的其他邏輯錯誤。

$data = array(); 
int a=0; 
while ($row = mysql_fetch_assoc($rs_result)) { 

//create variables from database entry 
$data[a]['dbbrand'] = $row['brandname']; 
$data[a]['dbseries'] = $row['series']; 
$data[a]['dbprice'] = $row['price']; 
$data[a]['dbseats'] = $row['seats']; 
$data[a]['dbtype'] = $row['type']; 
$data[a]['dbcolor'] = $row['color']; 
$a++; 
} 

如果你想要查詢返回的所有值,那麼上面代碼的調整就足夠了。

+0

感謝您的幫助! – user2360140 2013-05-07 22:43:08

+0

請注意,如果您需要查詢返回的所有記錄,則上述解決方案更加準確。並歡迎 – blackmambo 2013-05-07 22:47:14

相關問題