2017-08-21 12 views
-3

Ich möchte Kategorie ID, Kategorie Name, Kategorie Typ, Durchschnitt der Rate Spalten in Review-Tabelle und ich möchte es Ergebnis Tabelle Kategorie ID, Kategorie Name, Kategorie Typ, Durchschnitt der Rate in automatisch zu speichern . Also habe ich unten Code versucht. aber es hat nicht funktioniert. Also, wenn Sie irgendeine Lösung haben, bitte helfen Sie mir, das zu beheben? oder wenn Sie eine andere Methode haben, um meine Aufgabe zu erfüllen, können Sie das bitte beschreiben. hilf mir, diesen Fehler schnell zu beheben. Ich möchte Kategorie ID, Kategorie Name, Kategorie Typ, Durchschnitt der Rate Spalten in Review-Tabelle und ich möchte es Ergebnis Tabelle Kategorie ID, Kategorie Name, Kategorie Typ, Durchschnitt der Rate in automatisch zu speichern. Also habe ich unten Code versucht. aber es hat nicht funktioniert. Also, wenn Sie irgendeine Lösung haben, bitte helfen Sie mir, das zu beheben? oder wenn Sie eine andere Methode haben, um meine Aufgabe zu erfüllen, können Sie das bitte beschreiben. hilf mir, diesen Fehler schnell zu beheben.Abfrage mit Select-Abfrage einfügen

<?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

Inwiefern schlägt das fehl? Was ist der eigentliche Fehler? Was ist das Ergebnis der Abfragen? (Hinweis: Sie überprüfen nicht das Ergebnis oder prüfen auf Fehler. Sie sollten. Die Datenbank ist * wahrscheinlich * sagen Ihnen, was los ist.) – David

+0

Die mysql-Erweiterung wurde vor einiger Zeit veraltet; Sie sollten mysqli oder pdo verwenden. Und wie Sie Fehler, die bei der Verwendung dieser beiden auftreten, ordnungsgemäß debuggen, können Sie selbst erforschen. Genau wie bei SQL Injection. – CBroe

+0

Beide Kommentare, die Sie bereits hier haben, sind sehr gute Ratschläge. Überprüfen Sie außerdem, dass Sie diese Funktionen aufrufen, die Sie deklariert haben. –

Antwort

1

1. Platz: Fräulein abgestimmt Reihenfolge der Spalte und Werte

$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'"; 

Hinweis: Angegebene Spaltenreihenfolge mit dem Wert abgestimmt werden, sollte.

Um

$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'"; 

2.: Mysql ist try veraltet mysqli oder PDO zu verwenden.

3rd: Und auch versuchen, vorbereitete Aussage zu verwenden.

+0

Ich habe versucht, aber es funktioniert nicht –

+1

@NimeshhaDharana: (1) Keiner von uns weiß, was Sie ausprobiert haben. (2) Sie haben uns noch immer keine Details darüber mitgeteilt, was "es nicht funktioniert" bedeutet. Niemand hier kann Ihren Bildschirm sehen oder weiß, was in Ihrem Computer passiert. Sie müssen das Problem erklären. – David

+0

Ich habe meine Mine zu diesem Steinbruch aktualisiert. $ sql = "INSERT INTO result (kategorie_id, cat_name, cat_type, t_rate) SELECT category_id, cat_name, cat_type, AVG (rate) Von review WHERE category_id = '$ category_id'"; –