0

我在查询服务期间遇到了一个问题,以便在 PHP 的在线数据库中添加一行。行的添加工作得很好。我从 url 获取用户 ID 和书籍 ID,并获取书籍和用户的名称以放入我添加到我的第三个和最后一个表的行中。当我得到名称时,将它们放入一个数组中,对其进行 json 编码,然后回显它,它就可以工作了。但是当我将它们放在行中时,它会打印资源 id#3 和资源 id#4 而不是名称。有任何想法吗?

这是我的服务:

<?php

$con = mysql_connect("localhost","root","root");

$userid=$_GET['uid'];
$id = $_GET['bookid'];
$type = $_GET['type'];
$zero = '0';
$one = '1';
$date = date("Y-m-d");

$arr = array();

if (!$con)
{
    die('Could not connect: ' . mysql_error());
    echo "error connection";
}

mysql_select_db("Jineel_lib",$con) or die("Could not select database");

$bkName = mysql_query("SELECT Name from books where ID='".$id."'");

$userName = mysql_query("SELECT Name from people WHERE User_ID='".$userid."'");


while($obj = mysql_fetch_object($userName))
{
    $arr[] = $obj;        
}

echo json_encode($arr);

if($type == 'borrow')
{
   $query="UPDATE books set Availablity = '".$zero."' where ID= '".$id."' ";
    mysql_query($query) or die (" borrow operation failed due to query 1");

   $query1="INSERT into borrowed (BookID, BookName, BorrowerID, BorrowedName, DateBorrowed, Extended, Returned) values('".$id."','".$bkName."','".$userid."','".$userName."','".$date."','".$zer‌​o."','".$zero."')";
    mysql_query($query1) or die (" borrow operation failed to due query 2");

    echo "borrow success";

}

else if($type=='return')

{
    $query="UPDATE books set Availablity = '".$one."' where ID= '".$id."' ";
    mysql_query($query) or die (" return operation failed");

    $query1="UPDATE borrowed set Returned = '".$one."' where BookID= '".$id."' ";
    mysql_query($query1) or die (" return operation failed 1");

    echo "return success";
}

else

echo "invalid parameters";

?>

先感谢您

4

1 回答 1

0

您实际上并没有在此处检索 userName 值:

$userName = mysql_query("SELECT Name...

$userName只是查询返回的结果资源对象。您mysql_fetch_object稍后会使用,这是合适的,但随后您尝试在插入查询中使用实际结果资源:

$query1="INSERT into borrowed ...

它被转换为您看到的字符串。相反,您需要使用$obj->Name(您将结果提取到$obj中,并且可能只有一个结果)。如果有多个可能的结果,则必须循环执行。


听听关于你的问题的所有评论。

于 2013-03-16T15:34:27.033 回答