2013-08-21 61 views
0

我想從他的身份證 從數據庫表中獲取用戶名的數據,並把它在其他數據表得到數據庫表到其他數據庫表的PHP MySQL的

function upload_image($image_temp, $image_ext, $album_id, $image_n, $image_description) { 
$album_id = (int)$album_id; 
$image_n = mysql_real_escape_string(htmlentities($image_n)); 
$image_description = mysql_real_escape_string(htmlentities($image_description)); 
//$download_link = 'uploads/'. $album_id. '/'. $image['id']. '.'. $image_ext; 
$mysql_date_now = date("Y-m-d (H:i:s)"); 
$user_name = mysql_query("SELECT `name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']); 

mysql_query("INSERT INTO `images` VALUES ('', '".$_SESSION['user_id']."','$user_name', '$album_id', UNIX_TIMESTAMP(), '$image_ext', '$image_n', '$image_description', '','$mysql_date_now')"); 


$image_id = mysql_insert_id(); 
$download_link = 'uploads/'. $album_id. '/'. $image_id. '.'. $image_ext; 

mysql_query("UPDATE `images` SET `download_link`='$download_link' WHERE `image_id`=$image_id "); 
$selection = mysql_query("SELECT `user_two` FROM `follow` WHERE `user_one`='".$_SESSION['user_id']."'"); 

while ($row = mysql_fetch_array($selection)) { 
mysql_query("INSERT INTO `notification` VALUES ('', '".$_SESSION['user_id']."', '".$row['user_two']."', '', UNIX_TIMESTAMP(), '$image_n', '$image_description', '$download_link')"); 
} 

$image_file = $image_id.'.'.$image_ext; 
move_uploaded_file($image_temp, 'uploads/'.$album_id.'/'.$image_file); 

Thumbnail('uploads/'.$album_id.'/', $image_file, 'uploads/thumbs/'.$album_id.'/'); 

}

問題這裏

$user_name = mysql_query("SELECT `name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']); 

mysql_query("INSERT INTO `images` VALUES ('', '".$_SESSION['user_id']."','$user_name', '$album_id', UNIX_TIMESTAMP(), '$image_ext', '$image_n', '$image_description', '','$mysql_date_now')"); 

我得到這個數據庫(資源ID#14)

+0

「SELECT'name' FROM'users' WHERE'user_id' =」。$ _ SESSION ['user_id']。「」) – Mihai

+2

'mysql_query'返回資源,而不是數據庫字段。您需要執行'$ resource = mysql_query(「SELECT \'name \'...)'然後'$ record = mysql_fetch_array($ resource)'然後'$ user_name = $ record ['user_name']'。用你的'$ select'查詢是否正確 – GreatBigBore

+0

感謝GreatBigBore它的工作完美 – user2687618

回答

2

您的查詢不返回數據:它返回資源。然後您必須使用資源來檢索您的數據,因此在此行中:

$user_name = mysql_query("SELECT `name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']); 

$ user_name不包含所需的信息。

嘗試:

$result = mysql_query("SELECT `name` FROM `users` WHERE `user_id` = ".$_SESSION['user_id']); 
list($user_name) = mysql_fetch_array($result); 

注:MySQL是過時 - 使用庫MySQLi或PDO。原理是一樣的。

-1

我想你應該看看這裏: MySQL syntax for Join Update

或者在這裏: MySQL Insert & Joins

您可以用表的一些加盟做到這一點,在短短一個查詢。

+0

他可能能夠以這種方式提高查詢效率,但問題出在PHP和使用'mysql'。 – 2013-08-21 22:56:02

+0

真的很有用。 。 – user2687618

相關問題