0

PHP でオンライン データベースに行を追加するクエリ サービス中に問題が発生しました。行の追加は問題なく機能します。URL からユーザー ID と書籍 ID を取得し、書籍の名前とユーザーをフェッチして、3 番目と最後のテーブルに追加する行に入力します。名前を取得したら、それらを配列に入れ、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、おそらく結果は1つだけです)。考えられる結果が複数ある場合は、ループでそれを行う必要があります。


あなたの質問に対するすべてのコメントを聞いてください。

于 2013-03-16T15:34:27.033 に答える