【问题标题】:get data from database table to other database table php mysql从数据库表中获取数据到其他数据库表php mysql
【发布时间】:2013-08-21 22:42:08
【问题描述】:

我想从他的 id 从数据库表中获取用户名 并将其放入其他数据表中

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)

【问题讨论】:

  • "SELECT name FROM users WHERE user_id = ".$_SESSION['user_id']."")
  • mysql_query 返回资源,而不是数据库字段。你需要先$resource = mysql_query("SELECT `name`...) 然后$record = mysql_fetch_array($resource) 然后$user_name = $record['user_name']。您的 $selection 查询做得正确。
  • 感谢 GreatBigBore 运行良好

标签: php mysql


【解决方案1】:

您的查询不返回数据:它返回一个资源。然后你必须使用资源来检索你的数据,所以在这一行:

$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。原理是一样的。

【讨论】:

    【解决方案2】:

    我认为你应该看这里: MySQL syntax for Join Update

    或者在这里: MySQL Insert & Joins

    您可以在一个查询中通过一些表的连接来完成此操作。

    【讨论】:

    • 他这样也许能提高查询的效率,但问题出在PHP和mysql的使用上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2012-09-15
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多