Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Zapisanie rekordu do konkretnej godziny.
Forum PHP.pl > Forum > Przedszkole
Stron: 1, 2
nospor
No to nie powinienes przypadkiem tej daty pobierac dla danego usera a nie globalnie dla wszystkich?
woxala123
Teraz zrobiłem tak tylko mam problem bo nie ogranicza się do 3 rekordów i nadal może oddawać rekordy do zakładanego czsu a ja bym chciał by mógł tylko 3 rekordy czy w select zrobić LIMIT 3?
  1. $date = strtotime(date("Y-m-d H:i:s"));
  2. $date5 = strtotime(date("Y-m-d 22:15:00"));
  3.  
  4. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  5. mysql_select_db($database_local, $local);
  6. $query_Recordset1 = "SELECT * FROM loro WHERE 'username' = '".$username."'";
  7. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  8. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  9.  
  10. if ($date > $date5 ){
  11. echo "<center>'Po czasie'".$username."' '".$date5."'!'</center>";
  12.  
  13. }else{
  14. mysql_select_db($database_local, $local);
  15. $query_Recordset1 = "SELECT * FROM loro WHERE 'username' = '".$username."' ";
  16. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  17. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  18. if($totalRows_Recordset1 >=3){
  19.  
  20. //Jeśli osiągnął 3 rekordy to koniec
  21.  
  22. echo "<center>'Wykorzystałeś limit oddawania głosów'".$username."''</center>";
  23. }else{
  24. echo "<center>'Głosujesz-'".$username."''</center>";
nospor
'username'
to jest tekst a nie nazwa kolumny... skup sie troche
woxala123
Okey trafiłeś w sedno- działa. Tylko mam jeszcze problem że teraz owszem różny user może dodawać 3 rekordy- ale potem już nie może oddawać na następny dzień bo wykorzystał limit oddawania rekordów. Co tu jeszcze nie gra?. Oto kod

  1. $date = strtotime(date("Y-m-d H:i:s"));
  2. $date5 = strtotime(date("Y-m-d 21:19:00"));
  3.  
  4. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  5. mysql_select_db($database_local, $local);
  6. $query_Recordset1 = "SELECT * FROM loro ";
  7. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  8. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  9.  
  10. if ($date > $date5 ){
  11. echo "<center>'Po czasie'".$username."' '".$date5."'!'</center>";
  12.  
  13. }else{
  14. mysql_select_db($database_local, $local);
  15. $query_Recordset1 = "SELECT * FROM loro WHERE username = '".$username."' ";
  16. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  17. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  18. if($totalRows_Recordset1 >0){
  19.  
  20. //Jeśli osiągnął 3 rekordy to koniec
  21.  
  22. echo "<center>'Wykorzystałeś limit oddawania głosów'".$username."''</center>";
  23. }else{
  24. echo "<center>'Głosujesz-'".$username."''</center>";

Dzięki i Pozdrawiam

Okey trafiłeś w sedno- działa. Tylko mam jeszcze problem że teraz owszem różny user może dodawać 3 rekordy- ale potem już nie może oddawać na następny dzień bo wykorzystał limit oddawania rekordów. Co tu jeszcze nie gra?. Oto kod

  1. pobierz, plaintext
  2. [php]
  3. $date = strtotime(date("Y-m-d H:i:s"));
  4. $date5 = strtotime(date("Y-m-d 21:19:00"));
  5.  
  6. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  7. mysql_select_db($database_local, $local);
  8. $query_Recordset1 = "SELECT * FROM loro ";
  9. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  10. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  11.  
  12. if ($date > $date5 ){
  13. echo "<center>'Po czasie'".$username."' '".$date5."'!'</center>";
  14.  
  15. }else{
  16. mysql_select_db($database_local, $local);
  17. $query_Recordset1 = "SELECT * FROM loro WHERE username = '".$username."' ";
  18. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  19. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  20. if($totalRows_Recordset1 >=3{
  21.  
  22. //Jeśli osiągnął 3 rekordy to koniec
  23.  
  24. echo "<center>'Wykorzystałeś limit oddawania głosów'".$username."''</center>";
  25. }else{
  26. echo "<center>'Głosujesz-'".$username."''</center>";
  27.  

Dzięki i Pozdrawiam
nospor
$query_Recordset1 = "SELECT * FROM loro WHERE username = '".$username."' ";
Nigdzie tutaj nie sprawdzasz danych z danego dnia tylko leciszz po wszystkich wiec... tongue.gif
woxala123
Zgadza się to jak tu zrobić założenie by w końcu to zaczęło działać.
nospor
Dodac warunek by zczytywal dane z danego dnia?
woxala123
Ale czy najpierw zrobic jakiegoś selecta i póżniej warunek?
nospor
warunek ma byc w select... Tylko czasu sie bawisz z tym tematem to juz naprawde samo z siebie powinna ci ta odrobina wiedzy wejsc do glowy tongue.gif

ps i wywal to:
mysql_select_db($database_local, $local);
$query_Recordset1 = "SELECT * FROM loro ";
$Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
$totalRows_Recordset1 = mysql_num_rows($Recordset1);
Bo jest tam totalnie zbedne.

ps2: wybor bazy
mysql_select_db()
ma byc tylko raz w calej aplikacji a nie co kazde zapytanie
(pomijam rzecz jasna systemy wielobazowe, ale ty tego nie masz u siebie)
woxala123
To jaki ten warunek to zrobić tak
SELECT * FROM loro WHERE date<".$date."
nospor
No jesli to ci zwroci dane jakie potrzebujesz to tak, taki warunek. Jak nie, to nie, zly warunek.
Naprawde zamiast sttrzelac glupoty wez w koncu usiadz i pomysl troche. To jest naprawde banalne zrobic warunek na date.
woxala123
Nic nie wychodzi jak to ugryźć by ruszyc z kopyta. Nospor cieszy mnie że dla Ciebie to banalny kod ale jeszcze ja nie na tym etapie co ty. Bo jak z czytać te rekordy po dacie. Grupowac je czy co.
nospor
I wlasnie dlatego ze nie jestes na tym etapie to wypadaloby w koncu pomyslec troche. Tu nie chodzi tylko o te nieszczesne daty. Caly ten temat wyglada jakbys jedynie strzelal bez zadnego pomyslunku. Moze cie to bawi, ale osoby ktore pomagaja maja w pewnym momecie dosc takiego podejscia.

No nic, pozostaje ci poczekac na kogos innego, kto ci poraz kolejny da gotowe rozwiazanie.
woxala123
SELECT * FROM loro WHERE date = datetime("Y-m-d H-i-s")

Zrobiłem coś takiego. I owszem user może oddawać full rekordów tylko jeszcze żeby w danym limit 3
  1. $date = strtotime(date("Y-m-d H:i:s"));
  2. $date5 = strtotime(date("Y-m-d 21:19:00"));
  3. $czas=date("Y-m-d");
  4. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  5. mysql_select_db($database_local, $local);
  6. $query_Recordset1 = "SELECT * FROM loro WHERE username='".$username."' AND date < $czas ";
  7. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  8. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  9.  
  10. if ($date > $date5 ){
  11. echo "<center>'Po czasie'".$username."' '".$date5."'!'</center>";
  12.  
  13. }else{
  14. mysql_select_db($database_local, $local);
  15.  
  16. if($totalRows_Recordset1 >=3){
  17.  
  18. //Jeśli osiągnął 3 rekordy to koniec
  19.  
  20. echo "<center>'Wykorzystałeś limit oddawania głosów'".$username."''</center>";
  21. }else{
  22. echo "<center>'Głosujesz-'".$username."''</center>";
  23.  



A co powiesz Nospor na te rozwiązanie?
  1. $query_Recordset1 = "SELECT * FROM loro WHERE username='".$username."' AND `date`= CURDATE()";
  2. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  3. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  4.  
  5. if ($date > $date5 ){
  6. echo "<center>'Po czasie'".$username."' '".$date5."'!'</center>";
  7.  
  8. }else{
  9. mysql_select_db($database_local, $local);
  10.  
  11. if($totalRows_Recordset1 >=3){
  12.  
  13. //Jeśli osiągnął 3 rekordy to koniec
  14.  
  15. echo "<center>'Wykorzystałeś limit oddawania głosów'".$username."''</center>";
  16. }else{
  17. echo "<center>'Głosujesz-'".$username."''</center>";
  18.  
  19.  
  20.  
  21.  
nospor
Cytat
A co powiesz Nospor na te rozwiązanie?
A dziala jak oczekujesz?
woxala123
Widać że teraz działa, tylko muszę jeszcze sobie dopieścić ze komunikaty typu że dodał rekord pierwszy z danego dnia i itd bo dalsza część kodu to jest
  1. mysql_select_db($database_local, $local);
  2. $Recordset1 = mysql_query($insertSQL, $local) or die(mysql_error());
  3. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' ";
  4. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  5. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  6.  
  7. if($totalRows_Recordset1 == 1){
  8. echo '<center>Dodano rekord po raz pierwszy!</center>';
  9.  
  10.  
  11.  
  12.  
  13. }
  14. else if($totalRows_Recordset1 ==2){
  15. echo '<center>Dodałeś '.$totalRows_Recordset1.'-drugi rekord!</center>';
  16.  
  17. }
  18. else if($totalRows_Recordset1 >2){
  19. echo '<center>Dodałeś '.$totalRows_Recordset1.' rekordy!</center>';
  20.  

I czy w ten sposób zastosować select by zliczał rekordy z bieżącego dnia. Podpowiedz czy już dobrze myślę w tej kwestii.?
nospor
Nie bardzo wiem co chcesz teraz zrobic wiec nie wiem czy dobrze myslisz.
Chcesz mu wyswietlic liczbe rekordow wszystkich i liczbe rekordow z danego dnia?
woxala123
Raczej to jest kod że jak user dodaje rekord to wyświetla komunikat mu się
-Dodał pierwszy rekord
-Dodał drugi rekord
- Dodał trzeci rekord " Wykorzystałeś limit"
viking
Czyli co? Wracasz po tygodniu do http://forum.php.pl/index.php?s=&showt...t&p=1206537 i nic dalej nie wiesz?
woxala123
Dobre to ciking?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.