0

フォームを送信してテーブルにデータを挿入した後、このテーブルを検索し、別のデータベース挿入で使用するセッション変数を設定したいと考えています。以下は、新しく更新されたテーブルを挿入してから検索する PHP です。

require_once("db_connect.php");

if($db_server) {

     mysql_select_db($db_database) or die ("<p>Couldn't find database.</p>");
     $query = "INSERT INTO routes (user_id, title, description, startlat, startlng, endlat, endlng) VALUES ('$user_id', '$title', '$desc', '$startlat.', '$startlng', '$endlat', '$endlng')";
     if (mysql_query($query)) {
          $get_id = mysql_query("SELECT * FROM routes WHERE user_id, title = '$user_id', '$title'");
          $route_id = mysql_result($get_id, 0,'id');
          $_SESSION['route_id'] = $route_id;
          echo $route_id; 
     } else {
          $message = ("Insert failed. " . mysql_error() . "<br/>" . $query);
     }  
} else {
     $message = "Error: could not connect to the database.";
}
mysql_close($db_server);

次の警告が表示されます。

 Warning: mysql_result() expects parameter 1 to be resource, boolean given in... 

上記のコードのこの行を参照します。

 $route_id = mysql_result($get_id, 0,'id');

基本的に私がやろうとしているのは、新しく挿入された行の 'id' を取得し (id は主キーであり、自動インクリメントされます)、$route_id として設定して、次のページでこの値を別のページに挿入できるようにすることです。 table は、2 つのテーブルをリンクするために使用される route_id として使用されます。

4

1 に答える 1

1
SELECT * FROM routes WHERE user_id, title = '$user_id', '$title'

上記は無効なクエリです。これが、関数が失敗し、期待されるリソースを返さない理由です。その適切な構文は

SELECT * FROM routes WHERE user_id= '$user_id' and title= '$title'
于 2013-03-29T17:07:19.543 に答える