2013-08-21 7 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')"); 

я получаю это в базе данных (идентификатор ресурса # 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 не содержит информацию, которую вы хотите.

Try:

$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. –

+0

действительно полезен. , – user2687618