streleca_stz
Registered
Здравейте! Искам да ви попитам как би изглеждала заявката ако искам да изпратя 1 съобщение до всички регистрирани потребители? Напимер ако искам да съобщя нещо на всеки и да не го пиша по страниците на сайта? 
$sql=mysql_query("SELECT `ID` FROM `users` WHERE `active`=1");
$i=0;
while($row=mysql_fetch_assoc($sql)){
$id=$row[ID];
if($i>=2000){
mysql_query($msg);
$i=0;
}elseif($i<2000){
$msg.=" ,('1','$id','Syob6tenie')";
}
if($i==0){
$msg="INSERT INTO `messages`(`from`,`to`,`msg`) VALUES
('1','$id','Syob6tenie')";
}
$i++;
}
if($i!=0){
mysql_query($msg);
}
Ако иска всеки да го получи на лично съобщение. И не мога да разбера каккъв е проблема със записите в базата данни ?tedo96 каза:И кво? Така ако в сайта му има 500 потребители, ти за всяко ново масово съобщение ще правиш 500 записа в базата данни?
Този вариант е тотално неоптимизиран! Ако на 5 дни пуска такива съобщения? Тоест на месец да кажем ще пусне по 6. Това са ти 6масови съобщения x 500потребителя = 3 000реда в базата данни. Това е само за един месец...HerpaMoTeH каза:Ако иска всеки да го получи на лично съобщение. И не мога да разбера каккъв е проблема със записите в базата данни ?tedo96 каза:И кво? Така ако в сайта му има 500 потребители, ти за всяко ново масово съобщение ще правиш 500 записа в базата данни?
Амм.. тогава друг начин има ли? :idea:tedo96 каза:Този вариант е тотално неоптимизиран! Ако на 5 дни пуска такива съобщения? Тоест на месец да кажем ще пусне по 6. Това са ти 6масови съобщения x 500потребителя = 3 000реда в базата данни. Това е само за един месец...HerpaMoTeH каза:Ако иска всеки да го получи на лично съобщение. И не мога да разбера каккъв е проблема със записите в базата данни ?tedo96 каза:И кво? Така ако в сайта му има 500 потребители, ти за всяко ново масово съобщение ще правиш 500 записа в базата данни?
При всяко влизане на даден потребител ще трябва да се обходят тези 3 000 реда.
Много зависи с каква заявка обхождаш. Имам база данни с над 2 милиона реда и я обхождам без какъвто и да е проблем за под половин секунда. Сървъра не е на хостинг и не е много мощенtedo96 каза:Този вариант е тотално неоптимизиран! Ако на 5 дни пуска такива съобщения? Тоест на месец да кажем ще пусне по 6. Това са ти 6масови съобщения x 500потребителя = 3 000реда в базата данни. Това е само за един месец...HerpaMoTeH каза:Ако иска всеки да го получи на лично съобщение. И не мога да разбера каккъв е проблема със записите в базата данни ?tedo96 каза:И кво? Така ако в сайта му има 500 потребители, ти за всяко ново масово съобщение ще правиш 500 записа в базата данни?
При всяко влизане на даден потребител ще трябва да се обходят тези 3 000 реда.
$admin = "admin";
$result = mysql_query("SELECT * FROM `users`;");
while ($row = mysql_fetch_array($result)) {
mysql_query("INSERT INTO `pm` ( `title` , `message` , `touser` , `from` , `unread` , `date` ) VALUES ('$title', '$text', '" . $row['username'] . "', '$admin', 'unread', NOW())");
}