2012-01-15 12 views
0

データベースにtiが残っている場合、いくつかのデータをチェックしたいと思います。例:私のフォームには2つのフォームフィールドがあります。 1)url 2)name。だから私はセッションのユーザーが既にこの 'url'と '名前'データベースを持っているかどうかをチェックしたいのですが、エラーメッセージを表示する必要があります。ここにいくつかのmysqlコードがあります。Php Mysql Selectコマンドの問題

<?php 
$url  = mysql_real_escape_string(trim($_POST['url'])); 
$name  = mysql_real_escape_string(trim($_POST['name'])); 
$uname = $_SESSION['uname']; 

$check_add = mysql_query("SELECT * FROM add_fav WHERE url ='$url' AND name= '$name' 
AND uname = '$uname' "); 

$num  = mysql_num_rows($check_add); 

if($num > 0) 
      $err[] = "Already exist"; 
?> 

しかし、それはチェックされません。それは私のクエリの問題かもしれません。事前に
感謝:)

+0

ようこそスタックオーバーフローに!あなたはあなたのクエリで何かエラーチェックをしていないので、何も出てこないのは不思議ではなく、あなたのスクリプトはクエリが失敗したときに中断します。どのようにするかは、[mysql_query() '](http://php.net/mysql_query)またはこの[参照質問](http://stackoverflow.com/questions/6198104/reference)に記載されています。 -what-is-a-perfect-code-sample-using-mysql-extension) –

+0

あなたのコードの断片だけを表示しているのですか、mysql_connectを本当に忘れていますか? – bjelli

+0

@bjelli既に接続されています。 –

答えて

0

試してみて、あなたが実際にあなたのselect文の値を持っていることを確認するためにあなたのスクリプトをデバッグする...彼らはデータを持っていることを確認するために、変数をエコー...あなたがあなたの操作を行う直前に、それをチェックしますmysql_real_escape_stringを実行する前にdb接続をインスタンス化することを確認してください...

+0

まあ、私はそれを印刷した後、私のクエリでデータを取得していませんでした(エコー)..だから、どのように見えるでしょうか? –

0

mysqlとオープン接続している場合は試しましたか?

は(phpMyAdminにのように?)あなたは、MySQLに直接このクエリを試してみました

あなたはそれがずっといいsimplierだ、代わりにmysql_ *のPDOを使用する必要があります。

は、ここでの例ですが、それは、コードの中で、(あなたのテーブルはあなたが私たちを見るもののようであるならば、それはその後、依存)動作するはずです:

<?php 
$oPdo = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'login', password'); 

// here's your query : 
$oStmt = $oPdo->prepare ('SELECT * FROM add_fav WHERE url = :url AND name= :name AND uname = :uname'); 

$oStmt->execute (array (
    'url' => trim($_POST['url']), 
    'name' => trim($_POST['name']), 
    'uname' => $_SESSION['uname'] 
)); 

if (count($oStmt->fetchAll(PDO::FETCH_ASSOC)) > 0) 
    $err[] = "Already exist"; 
?> 
+0

よく@ cx42net私はしようとしている.. –