2017-08-21 9 views
-3

私はカテゴリID、カテゴリ名、カテゴリタイプ、レビューテーブルの平均レート列を選択したいと思います。結果テーブルカテゴリID、カテゴリ名、カテゴリタイプ、 。だから私はコードの下で試した。しかしそれはうまくいかなかった。何か解決策があれば、これを解決するのを手伝ってください。私の仕事を達成するための別の方法があればそれを記述してください。このエラーをすばやく解決するのに役立ちます。 私はカテゴリID、カテゴリ名、カテゴリタイプ、レビューテーブルのレート列の平均を選択したいと思います。結果テーブルのカテゴリID、カテゴリ名、カテゴリタイプ、平均レートを自動的に保存します。だから私はコードの下で試した。しかしそれはうまくいかなかった。何か解決策があれば、これを解決するのを手伝ってください。私の仕事を達成するための別の方法があればそれを記述してください。このエラーをすばやく解決するのに役立ちます。クエリを選択クエリで挿入します。

<?php 
$con=mysql_connect("localhost","root",""); 
$db=mysql_select_db("testing",$con); 
function setReviews($con){ 
    if (isset($_POST['submit'])) { 
     $user_email=$_POST["user_email"]; 
     $user_name=$_POST["user_name"]; 
     $review=$_POST["review"]; 
     $rate=$_POST["rate"]; 
     $sql=mysql_query("SELECT user_email FROM review WHERE user_email='$user_email'"); 
     if (mysql_num_rows($sql)>0) { 
      echo "user mail already exist"; 
     }else{ 
      mysql_query("INSERT INTO review(user_email,user_name,rate,review) VALUES ('$user_email','$user_name','$rate','$review')"); 
     echo "submitted"; 
     } 
    } 
} 
function getratingsave($con){ 
    $category_id=1; 
     $sql="INSERT INTO result (category_id,cat_name,cat_type,t_rate) SELECT category_id,AVG(rate),cat_name,cat_type FROM review WHERE category_id='$category_id'"; 
     $result=mysql_query($sql,$con); 
} 
?> 
+2

これはどのように失敗しますか?実際のエラーとは何ですか?クエリの結果は何ですか? (ヒント:結果をチェックしたり、エラーをチェックしないでください。データベースはおそらく何が間違っているかを伝えているでしょう) – David

+0

mysql拡張はずっと前に廃止されました。 mysqliまたはpdoを使用する必要があります。そして、これらの2つを使用しているときに発生するエラーを正しくデバッグする方法は、自分で調べることができます。 SQLインジェクションに対してあなたが必要とするのと同じです。 – CBroe

+0

ここにあなたがすでに持っているコメントはどちらも良いアドバイスです。また、宣言したこれらの関数を呼び出していることを確認してください。 –

答えて

1

1:指定された列の順序値の順序と一致する必要がありますミス注カラム

$sql="INSERT INTO result (category_id,cat_name,cat_type,t_rate) SELECT category_id,AVG(rate),cat_name,cat_type FROM review WHERE category_id='$category_id'"; 

の順序と一致しました。

$sql="INSERT INTO result (category_id,cat_name,cat_type,t_rate) SELECT category_id,cat_name,cat_type,AVG(rate) FROM review WHERE category_id='$category_id'"; 

第二:は、MySQLはmysqliのやPDOを使用しようとする推奨されていません。

第3:また、準備されたステートメントを使用しようとします。

+0

私は試しましたが動作しません。 –

+1

@NimeshaDharana:(1)私たちの誰もあなたが試したことを知っていません。 (2)あなたはまだ、「うまくいかない」ということを私たちに話したことはありません。ここに誰もあなたの画面を見たり、あなたのコンピュータの内部で何が起こっているかを知ることはできません。問題を説明する必要があります。 – David

+0

私はこの採石場に私の鉱山を更新しました.. $ sql = "INSERT INTO result(category_id、cat_name、cat_type、t_rate)SELECT category_id、cat_name、cat_type、AVG(レート)レビューからWHERE category_id = '$ category_id'"; –

関連する問題