如何向所有用户发送评论(在1个表中)(指另一个表)?

时间:2014-03-10 07:19:03

标签: php mysql sql

现在我有2张桌子。评论表和用户表。简短,我想向所有用户发送评论。我需要知道它的sql命令以及如何在PHP上显示。

评论表

  
      
  1. pk
  2.   
  3. 评论
  4.   
  5. 发件人(指用户名)
  6.   
  7. 接收者(指用户名)
  8.   

用户表

  
      
  1. PK
  2.   
  3. 用户名
  4.   
  5. 等.....
  6.   

我试过用这个:

$provider = $_REQUEST['provider'];

$cert = $_REQUEST['cert'];

$valid = $_REQUEST['valid'];

$lprice = $_REQUEST['lprice'];

$trial = $_REQUEST['trial'];

$cost = $_REQUEST['cost'];

echo $cert;

$sql=mysql_query("SELECT * FROM sslcert WHERE CertificateName='$cert'",$connect);
 if(mysql_num_rows($sql)>0)
   {
    echo"SSL already exists.";
    echo "<br><a href=addssl.php>Back</a>";
   }
 else
    {
      $insert = mysql_query("INSERT INTO sslcert (Provider, CertificateName, Validation,                    
      ListPrice, Trial, Cost) VALUES ('$provider', '$cert', '$valid', '$lprice', 
     '$trial',     '$cost')",$connect);


          $result77=mysql_query("SELECT username FROM user");
     while($row77=mysql_fetch_array($result77))
     {
       $insert1 = mysql_query("INSERT INTO notification (msg, sender, receiver,   notification) VALUES ('A new product is now available, $cert by $provider', '$username',   '$row77['username']', 1)");
       if(!$insert1){

            die("There's little problem: ".mysql_error());
            echo "<br><a href=quotesmanage1.php>Back</a>";
        }
     }

    if(!$insert){

       die("There's little problem: ".mysql_error());
       echo "<br><a href=addssl.php>Back</a>";
    }

    echo "<br>You have add a new Product <br><a href=adminhome.php>Back to Home</a>";

    }   
    mysql_close($connect);
}

用户名的调用是在页面上的其他位置。 它出现了一个空白页面(php上的错误),任何想法?

1 个答案:

答案 0 :(得分:0)

我相信你想要一个INSERT ... SELECT查询。

INSERT INTO `Comment`(`Comment`.`comment`, `Comment`.`sender`, `Comment`.`receiver`)
SELECT 'Message as text or variable substitution', `User`.`pk`, '1'
FROM `User`

您可以在SELECT行的末尾替换任何ID而不是1,我只是认为您的管理用户可能是1(但您可以创建一个新用户来发送这些群发消息,并使用任何数字ID对应。< / p>

顺便说一下,在你的评论表中你应该引用User.pk,而不是User.username。这就是为什么你首先拥有密钥的原因: - )