2015-09-22 31 views
-1

首先,我目前正在努力學習php,我想我會構建一個基本的維護管理應用程序,以更好地掌握我在教程中看到的所有內容,並且遇到了障礙。我一直試圖在網上學習各種教程,但迄今爲止沒有成功,所以我想我會在這裏尋求幫助。我真的希望你能幫助我。我如何寫在PHP中的SQL查詢來獲得這個結果?

我想知道的是我該如何編寫mysqlmysql將數據從前3個表中寫入到desired_table中?

Clients 
------------------------------ 
client_id | client_name 
------------------------------ 
    1  | client_1 
------------------------------ 
    2  | client_2 
------------------------------ 
    3  | client_3 


Equipments 
------------------------------ 
eq_id  | eq_name 
------------------------------ 
    1  | pc 
------------------------------ 
    2  | laptop 
------------------------------ 
    3  | printer 


Operations 
------------------------------------------------ 
op_id  | op_desc 
------------------------------------------------  
    1  | dust cleaning 
------------------------------------------------  
    2  | changing processor cooling paste 
------------------------------------------------  
    3  | cpu replacement 
------------------------------------------------  
    4  | display replacement 
------------------------------------------------  
    5  | dvd-rom replacement 
------------------------------------------------  
    6  | ram replacement 
------------------------------------------------  
    7  | cartrige replacement 



Desired_table 
------------------------------------- 
id | client_id | eq_id | op_id | 
------------------------------------- 
    1 | 1  | 1 | 1 | 
------------------------------------- 
    2 | 1  | 1 | 2 | 
------------------------------------- 
    3 | 1  | 1 | 3 | 
------------------------------------- 
    4 | 1  | 1 | 5 | 
------------------------------------- 
    5 | 1  | 2 | 1 | 
------------------------------------- 
    6 | 1  | 2 | 2 | 
------------------------------------- 
    7 | 1  | 2 | 4 | 
------------------------------------- 
    8 | 2  | 1 | 1 | 
------------------------------------- 
    9 | 2  | 1 | 2 | 
------------------------------------- 
    10| 2  | 1 | 3 | 
------------------------------------- 
    11| 2  | 1 | 5 | 
------------------------------------- 
    12| 2  | 3 | 1 | 
------------------------------------- 
    13| 2  | 3 | 7 | 

我以爲我會與客戶端數據輸入字段和設備的數據和業務數據我會在下拉菜單的形式。當我選擇一個設備時,操作會出現一個新的下拉菜單,然後提交。

希望這不會得到標記爲過於寬泛主題:)

+0

這看起來像一個家庭作業問題我.. ..have你嘗試過什麼嗎? – MaggsWeb

+0

#卡拉丹,你可以通過使用AJAX來實現它。 –

+0

@MaggsWeb :)這不是作業。我是一名前會計師,試圖學習新的東西。我在構建WP主題方面有一點PHP的經驗,並希望鞏固我的知識。因此,在我的文章中試圖學習php。是的,我一直試圖讓它在過去的3-4天內工作,這是非常令人沮喪的。因爲這個,我甚至無法專注於我的其他工作。 – Kaladan

回答

0

從到位桶使用代碼這應該這樣做:

$page = $db->prepare(" 
    INSERT INTO new_table_name (column_name1, column_name2, column_name3) 
    VALUES (:col1, :col2, :col3) 
"); 

$page->bindparam(':col1', $value1); 
$page->bindparam(':col2', $value2); 
$page->bindparam(':col3', $value3); 
$page->execute(); 
if($page->rowcount() > 0){ 
    echo "Inserted a new row"; 
} 

下面是一個例子,取代「new_table_name」到命名新表並更改列名稱。

之後,簡單地將$ value1,2和3更改爲包含要插入的值的變量,並且您可以輕鬆完成。

如果你想知道插入是否成功,只需檢查$ page-> rowcount()。如果rowcount大於0,那麼它是成功的。

只是爲了澄清,如果你還不知道這一點,這就叫做準備好的陳述。代碼做的是這樣的:

  • 準備告訴服務器你打算做什麼。由於sql injection幾乎不可能做到,因此增加了非常強大的層失效保護。

  • 之後,你將變量綁定到給定的參數(其他語法是可能的,我只是喜歡這個)。代碼注意引號,因此只需將參數放在那裏。

  • 執行實際查詢

和公正的好辦法,可以添加2個額外的參數bindparam。 在第三部分中,您可以定義一個變量類型,PDO :: PARAM_STR和PDO :: PARAM_INT可以阻止任何其他類型的變量。 The 4th可讓您設置最大長度,如果變量更長,則會被阻止。

這將是這樣的:

$page->bindparam(':col1', $value1, PDO::PARAM_STR, 100); 
//block anything which isn't a string or longer than 100 characters 
+0

我會給你一個答案。如果我能做到這一點,我會將其標記爲最有幫助 – Kaladan

+0

@Kaladan如果您需要更多幫助,這裏是官方文檔,我忘了將它添加到答案中。 [鏈接](http://php.net/manual/en/pdo.prepared-statements.php) – Crecket

相關問題