2013-08-21 33 views
1
$value = mysql_query("SELECT max(student_id) FROM student_profile"); 
$stud_id = mysql_fetch_array($value); 
COMMIT; 
mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id) 
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error()); 

我需要關於如何獲取student_profile表上的最大id並將其存儲在course_batch表中的幫助。 student_id是自動遞增的。 TIA如何在PHP中的變量中存儲mysql查詢

+0

什麼問題您有? – u54r

+1

[mysql_fetch_array](http://php.net/manual/en/function.mysql-fetch-array.php)返回一個數組。您可以使用[mysql_fetch_row](http://www.php.net/manual/en/function.mysql-fetch-row.php)。但是你不應該使用'mysql_'函數。他們已被棄用。改爲使用[PDO](http://php.net/manual/en/book.pdo.php)或[mysqli](http://php.net/manual/en/book.mysqli.php)。 – Brewal

+0

另外'var_dump()'你的變量來看看它們是什麼。 – Brewal

回答

0

有很多選項。 你可以使用當前的代碼和你現在和正確地使用結果獲取陣列,即

$stud_id['student_id'] 

編輯 - 試試這個

$value = mysql_query("SELECT max(student_id) AS StudId FROM student_profile"); 
$qryResultArray = mysql_fetch_array($value); 
$stud_id = $qryResultArray['StudId']; 

mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id) 
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error()); 

,如果你特別需要使用提交(無論什麼原因,你有其他代碼我看不到等),然後讓我知道。

以上是非常基本的,它不檢查事物是數組,如果有結果,並且根本沒有安全性,所以sql注入不受保護(但是這個代碼無論如何不會很快起作用,當服務器更新它們時PHP)


或者你可以大大提高安全性和易用性和麪向未來的代碼使用庫MySQLi或PDO,兩者同時學習曲線是相當容易學習,一旦學會了比你沒有困難現在正在編碼。 您現在使用的功能會很快,因爲你的問題和需要來檢查服務器上的PHP版本的代碼之前可以工作(這是不理想的在任何情況下)

非常基本的PDO例如:

$db = new PDO(details here); 

$stmt = $db->query('select id from student_profile etc'); 
$stud_id = $stmt->fetchColumn(0); 

//then use $stud_id in your update/insert/etc 

你然後就檢查結果爲假(其中包括健全檢查,以確保你的代碼是乾淨的,所有結果都佔了) 您可以使用「爲了通過限制1」或「最大,無論

+0

即時通訊在PHP。我試圖學習mysqli,但它太難了。這是一個在學校的項目,只剩下10天時間了。它只是一個簡單的招生系統,沒有課程只是程序。 – fianne

+0

夠公平的。你需要你需要的東西,但我們也需要確保你知道所有信息,以便你可以自己決定並根據最佳實踐做出決定:)我已經在上面編輯了我的帖子,試試這個代碼。 – James

+0

它的工作!仍然是在PHP的noob,但即時通訊努力學習..尋找天,只是爲了找到這個答案,但沒有找到任何。非常感謝! – fianne

0
$value = mysql_query("SELECT student_id FROM student_profile ORDER BY student_id DESC LIMIT 1"); 
$row = mysql_fetch_array($value); 

$stud_id = $row['student_id']; 

mysql_query("INSERT INTO course_batch (student_id, course_id, batch_id) 
VALUES('$stud_id','$course_id','$batch_id')") or die (mysql_error()); 

這就是你想要什麼?

編輯:

閱讀:The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

+0

$ stud_id仍然不會在我的表格中插入任何東西 – fianne

+0

嘗試回顯'$ stud_id'並查看問題是否與SELECT查詢或INSERT查詢相關。像:'echo $ stud_id;' –