Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Zapisanie rekordu do konkretnej godziny.
woxala123
post
Post #1





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Witam!
Zrobiłem dodatkową kolumnę 'time' - określiłem w niej godzinę do której user mógł zapisać rekord. I teraz mam pytanko jaki warunek dopisać do
zapytania aby gdy jest już po czasie to user nie dopisze rekordu.
  1. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < CURRENT_TIME()";
  2. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  3. if(mysql_num_rows($Recordset1) ==0){
  4.  
  5. // akcja po znalezieniu że dodał wszystkie rekordy
  6. echo "<center>'Dodajesz w czasie'!'</center>";
  7. }else{
  8. echo "<center>' Dodajesz po czasie'</center>";

Tylko nie chcę by zapisywało do rekordu


Czy jest ktoś w stanie pomóc w tym temacie jak to zrobić by user tylko zapisywał dane do konkretnej godziny. Gdyby próbował wyskakiwał by mu błąd że czas minął na dodanie rekordu.
Proszę o wskazówki.
Pozdrawiam

Ten post edytował woxala123 10.12.2016, 19:02:16
Go to the top of the page
+Quote Post
4 Stron V   1 2 3 > »   
Start new topic
Odpowiedzi (1 - 69)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Eeee... przecież masz już to co chciałeś albo ja Cię nie rozumiem.
Go to the top of the page
+Quote Post
woxala123
post
Post #3





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Chcę by user nie mógł zapisywać rekordu po minionym czasie. Np: teraz czas w kolumnie jest zdefiniowany na 22:00:00 gdy minie ten czas to user ma nie zapisać i wyskoczyć komunikat że może zapisać do określonej godziny. Bo owszem pokazuje sie komunikat że zapisuje rekord przd czasem albo po czasie -Ale włąśnie zapisuje nawet po czasie.
Go to the top of the page
+Quote Post
olszam
post
Post #4





Grupa: Zarejestrowani
Postów: 342
Pomógł: 23
Dołączył: 20.01.2011
Skąd: Chełm

Ostrzeżenie: (0%)
-----


sprawdź normalnie na losowym użytkowniku czy mimo wszystko zwróci ci zero wyników i dodatkowo sprawdź jaki wynik ci zwraca mysql_num_rows i jeszcze zobacz jaki czas serwera masz ustawiony

Ten post edytował olszam 10.12.2016, 22:20:03
Go to the top of the page
+Quote Post
woxala123
post
Post #5





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


  1. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  2. mysql_select_db($database_local, $local);
  3. $query_time= "SELECT * FROM loro WHERE `time` = '".$time."'";
  4. $Time = mysql_query($query_time, $local) or die(mysql_error());
  5.  
  6. if(mysql_num_rows($Time) == 0){
  7. echo '<center>Oddajesz rekord po czasie!!!</center>';
  8.  
  9. } else if(mysql_num_rows($Time) != 1){
  10. echo '<center>Dodano rekord w czasie!</center>';
  11.  
  12. }
  13. mysql_select_db($database_local, $local);
  14. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `date` = CURRENT_DATE() ";
  15. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  16.  
  17.  
  18.  
  19. if(mysql_num_rows($Recordset1) == 2){
  20.  
  21. // akcja po znalezieniu że dodał wszystkie rekordy
  22. echo "<center>'Wykorzystałeś limit '".$username."'!'</center>";
  23.  
  24. } else {
  25. // akcja po stwierdzeniu że dodał rekord
  26. echo "<center>' Rekord dodany'</center>";
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33. $insertSQL = sprintf("INSERT INTO loro (`username`, `bal1`, `bal2`, `bal3`, `bal4`, `bal5`, `bal6`, `date` ) VALUES ('".$username."',$bal1, $bal2, $bal3, $bal4, $bal5, $bal6, (NOW()))",
  34. GetSQLValueString($_POST['hiddenField'], "int"));
  35.  
  36. mysql_select_db($database_local, $local);
  37. $Result1 = mysql_query($insertSQL, $local) or die(mysql_error());
  38.  
  39. }
  40. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `date` = CURRENT_DATE()";
  41. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  42.  
  43. $totalRows_Recordset1 = mysql_num_rows($Recordset1);
  44.  
  45. if($totalRows_Recordset1 >= 2){
  46. echo '<center>Dodałeś już wszystkie 2 rekordy!</center>';
  47. }
  48. else if($totalRows_Recordset1 ==1){
  49. echo '<center>Dodałeś '.$totalRows_Recordset1.'-pierwszy rekord!</center>';
  50.  
  51. }
  52. else if($totalRows_Recordset1 >1){
  53. echo '<center>Dodałeś '.$totalRows_Recordset1.' typy!</center>';
  54.  
  55. } else if($totalRows_Recordset1 == 0){
  56. echo '<center>Dodano rekord po raz pierwszy!</center>';
  57.  
  58.  
  59.  
  60. }
  61. }

To kawałek kodu i teraz gdzie leży tu błąd aby user nie zapisywał rekordu gdy jest przekroczony czas?
Czas lokalny z mojego kompa na razie localhost
Pozdrawiam

Ten post edytował woxala123 10.12.2016, 22:31:44
Go to the top of the page
+Quote Post
Niree
post
Post #6





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


$aktualnyczas = date("H:m:s");

$query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` > $aktualnyczas";

Skoro "time" stanowi limit, to musi być "time" większy niż $aktualna godzina. Jeśli time będzie mniejszy, to zwróci Ci zerowierszy .

Poza tym nie używaj w jednym pliku takich samych nazw zmiennych (już któryś raz widzę $query_Recordset) bo jedna zmienną podmieni daCo ne drugiej zmiennej i będzie syf. Ustal sobie od czego są konkretne zapytania i tak je nazywaj, np $query_checktime

Ten post edytował Niree 10.12.2016, 22:47:14
Go to the top of the page
+Quote Post
woxala123
post
Post #7





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Na razie wg. twoich wskazówek zrobiłem tak - z tymi zmiennymi masz racje zaraz jeszcze to poprawię ale nadal zapisuje

  1.  
  2. $times = date("H:mm:ss");
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  10. mysql_select_db($database_local, $local);
  11. $query_time= "ELECT * FROM loro WHERE `username` = '".$username."' AND `time` > $times";
  12. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  13.  
  14.  
  15. if(mysql_num_rows($Recordset1) == 0){
  16. echo '<center>Oddajesz rekord po czasie!!!</center>';
  17.  
  18. } else {
  19. echo '<center>Dodano typ w czasie!</center>';
  20.  
  21.  

poprawiłem już na takie coś
  1. $times = time("H:mm:ss");
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  9. mysql_select_db($database_local, $local);
  10. $query_time= "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < $times";
  11. $Recordset1 = mysql_query($query_time, $local) or die(mysql_error());
  12.  
  13.  
  14. if(mysql_num_rows($Recordset1) == 0){
  15. echo '<center>Oddajesz rekord po czasie!!!</center>';
  16.  
  17. } else {
  18. echo '<center>Dodano typ w czasie!</center>';
  19.  
  20. }


Ten post edytował woxala123 10.12.2016, 22:52:36
Go to the top of the page
+Quote Post
Niree
post
Post #8





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


Daj H:m:s, jestem na telefonie i mi się rozmnożyły te literki.
Czas w kolumnie musi być w też w takim formacie.Ewentualnie mozesz wcześniej zrobić zapytanie do bazy o ostatni wpis danego użytkownika (limit 1 order by id) i robić np warunek

if($danebaza['time'] > $Times) echo 'dodano'; else 'po czasie';

Wtedy usuwasz w warunku zapytania kolumnę time I wyciągasz ostatni wpis danegoużytkownika .
Go to the top of the page
+Quote Post
woxala123
post
Post #9





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Już troche pogubiłem z tym się dziś. Co dalej?
Go to the top of the page
+Quote Post
Niree
post
Post #10





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


$query_time= "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < $times";

Popatrz na warunek czasu. Napisałem Ci, że time musi być większe od $times. Ty dałeś na odwrót.
Go to the top of the page
+Quote Post
woxala123
post
Post #11





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


To jest teraz jak piszesz i nadal to samo dodae i wyskakuje komunikat dodałeś rekord w czasie
  1. $times = time("H:m:s");
  2. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  3. mysql_select_db($database_local, $local);
  4. $query_time= "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < $times";
  5. $Res = mysql_query($query_time, $local) or die(mysql_error());
  6.  
  7.  
  8. if(mysql_num_rows($Res) !=0){
  9. echo '<center>Oddajesz rekord po czasie!!!</center>';
  10.  
  11. } else {
  12. echo '<center>Dodano rekord w czasie!</center>';
  13.  
  14. }
  15. mysql_select_db($database_local, $local);
  16. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `date` = CURRENT_DATE() ";
  17. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  18.  
  19.  
  20.  
  21. if(mysql_num_rows($Recordset1) == 2){
  22.  
  23. // akcja po znalezieniu że dodał wszystkie rekordy
  24. echo "<center>'Wykorzystałeś limit '".$username."'!'</center>";
  25.  
  26. } else {
  27. // akcja po stwierdzeniu że dodał rekord
  28. echo "<center>' Rekord oddany'</center>";
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. $insertSQL = sprintf("INSERT INTO loro (`username`, `bal1`, `bal2`, `bal3`, `bal4`, `bal5`, `bal6`, `date` ) VALUES ('".$username."',$bal1, $bal2, $bal3, $bal4, $bal5, $bal6, (NOW()))",
  36. GetSQLValueString($_POST['hiddenField'], "int"));
  37.  
  38. mysql_select_db($database_local, $local);
  39. $Result1 = mysql_query($insertSQL, $local) or die(mysql_error());
  40.  
  41.  


Ten post edytował woxala123 10.12.2016, 23:22:44
Go to the top of the page
+Quote Post
Niree
post
Post #12





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


...
Nie < tylko >.

Poza tym zły warunek z tym (!= 0), tak logicznie sobie przetłumacz co się dzieje z kodem krok po kroku.
Go to the top of the page
+Quote Post
woxala123
post
Post #13





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


I cały czas to samo

  1. $times = time("H:m:s");
  2. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  3. mysql_select_db($database_local, $local);
  4. $query_time= "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < $times";
  5. $Res = mysql_query($query_time, $local) or die(mysql_error());
  6.  
  7.  
  8. if(mysql_num_rows($Res) ==0){
  9. echo '<center>Oddajesz rekord po czasie!!!</center>';
  10.  
  11. } else {
  12. echo '<center>Dodano rekord w czasie!</center>';
  13.  
  14. }
  15. mysql_select_db($database_local, $local);
  16. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `date` = CURRENT_DATE() ";
  17. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  18.  
  19.  
  20.  
  21. if(mysql_num_rows($Recordset1) == 2){
  22.  
  23. // akcja po znalezieniu że dodał wszystkie rekordy
  24. echo "<center>'Wykorzystałeś limit '".$username."'!'</center>";
  25.  
  26. } else {
  27. // akcja po stwierdzeniu że dodał rekord
  28. echo "<center>' Typy oddany'</center>";
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35. $insertSQL = sprintf("INSERT INTO loro (`username`, `bal1`, `bal2`, `bal3`, `bal4`, `bal5`, `bal6`, `date` ) VALUES ('".$username."',$bal1, $bal2, $bal3, $bal4, $bal5, $bal6, (NOW()))",
  36. GetSQLValueString($_POST['hiddenField'], "int"));
  37.  
  38. mysql_select_db($database_local, $local);
  39. $Result1 = mysql_query($insertSQL, $local) or die(mysql_error());
Go to the top of the page
+Quote Post
nospor
post
Post #14





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Sprawdzales w ogole czy $username masz poprawnie ustawione?

echo "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < $times";
I sprawdz jak wyglada to zapytanie. Jesli wg. ciebie jest ok to odpal je w konsoli mysql i zobacz co dokladnie dostaniesz


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Niree
post
Post #15





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


`time` < $times

Nie będę tysiąc razy powtarzał, że coś tu jest źle :-)
Go to the top of the page
+Quote Post
woxala123
post
Post #16





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Otrzymuje to
"SELECT * FROM loro WHERE `username` = 'w' AND `time` < 1481439184"

Poprawiłem zmienną co wcześniej podawałeś tzn:
  1. $times = time("H:m:s") na
  2. $times = date("H:m:s")

i daje komunikat
"SELECT * FROM loro WHERE `username` = 'w' AND `time` < 08:12:51" i potem jak wysyłam do zapisu daje komunikat
SELECT * FROM loro WHERE `username` = 'w' AND `time` < 08:12:40You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':12:40' at line 1
Co to może być?
Go to the top of the page
+Quote Post
Niree
post
Post #17





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


A dałeś to w cudzysłów? Tą $times w zapytaniu.
Go to the top of the page
+Quote Post
arturpiotrowski
post
Post #18





Grupa: Zarejestrowani
Postów: 71
Pomógł: 1
Dołączył: 6.12.2016

Ostrzeżenie: (0%)
-----


a 08:12:51 nie powinno być w cudzysłowie?
Go to the top of the page
+Quote Post
Niree
post
Post #19





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


Poza tym masz zły znak większości. To 'time' ma być większy , a nie $times.

Popraw na:
`time` > '".$times."'
Go to the top of the page
+Quote Post
woxala123
post
Post #20





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Poprawiłem i teraz komunikat
SELECT * FROM loro WHERE `username` = 'w' AND `time` > '08:12:28' You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ':12:28' at line 1
Go to the top of the page
+Quote Post
Niree
post
Post #21





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


A w tabeli jaką masz godzinę wpisaną?
Go to the top of the page
+Quote Post
woxala123
post
Post #22





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


22:00:00 -custom kolumna time

czyli tak ma być
$times = date("G:m:s ");

Ten post edytował woxala123 11.12.2016, 08:50:56
Go to the top of the page
+Quote Post
Niree
post
Post #23





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


W $times daj G:m:s

//tak, tak ma być, tylko bez tej spacji na końcu


Ten post edytował Niree 11.12.2016, 08:52:10
Go to the top of the page
+Quote Post
woxala123
post
Post #24





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


  1. $times = date("G:m:s");
  2. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  3. mysql_select_db($database_local, $local);
  4. $query_time= "SELECT * FROM loro WHERE `username` = '".$username."' AND`time` > '".$times."'" ;
  5. $Res = mysql_query($query_time, $local) or die(mysql_error());
  6.  
  7.  
  8. if(mysql_num_rows($Res) ==0){
  9. echo '<center>Oddajesz rekord w czasie!!!</center>';
  10.  
  11. } else {
  12. echo '<center>Dodano rekord po czasie!</center>';
  13.  
  14. }
  15. echo "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < '".$times."'";
  16. mysql_select_db($database_local, $local);
  17. $query_Recordset1 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `date` = CURRENT_DATE() ";
  18. $Recordset1 = mysql_query($query_Recordset1, $local) or die(mysql_error());
  19.  
  20.  
  21.  
  22. if(mysql_num_rows($Recordset1) == 2){
  23.  
  24. // akcja po znalezieniu że dodał wszystkie rekordy
  25. echo "<center>'Wykorzystałeś limit '".$username."'!'</center>";
  26.  
  27. } else {
  28. // akcja po stwierdzeniu że dodał rekord
  29. echo "<center>' Rekord oddany'</center>";
  30.  

Taka mam wersję i nadal zapisuje -gdy np: ustawię godzinę 08:00:00 czyli teraz gdy ktoś próbuje zapisac po tej godzinie to zapisuje. Dobrze b było by blokowało taką możliwość

A może spróbować tą drogą że robie zmienna $times=date('2016:12:11 08:00:00) i tutaj zacząć porównywać pole time z zmienną.
Tylko jak to ropzpisać wraz z select?

Okey na razie działa na takiej zasadzie oto kod
Mam ustawioną na godzinę 10:00:00 - i teraz jak ktoś chce dodać rekord po tej godzinie to nie dodaje ale jak ustawie wyższą od aktualnej to doda. Tylko pozostała mi rzecz by tylko 2 rekordy wpisywał.
Jest to na razie zbyt prostę rozwiązanie i łopatologiczne gdzie codziennie będę musiał wpisywac wartości pole time Ale jeszcze nad tym rozwiązaniem trzeba pomysleć
  1. $times=date("Y-m-d h"m"s");
  2.  
  3. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  4. mysql_select_db($database_local, $local);
  5. $query_Recordset12 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `time`>='".$times."'";
  6. $Recordset12 = mysql_query($query_Recordset12, $local) or die(mysql_error());
  7. echo "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` < '".$times."'"
  8. ;
  9. if(mysql_num_rows($Recordset12) > 0){
  10.  
  11. // akcja po znalezieniu że dodał wszystkie rekordy
  12. echo "<center>'Próbujesz wstawić rekord po czasie '".$username."'!'</center>";
  13. } else {
  14. // akcja po stwierdzeniu że dodał rekord
  15. echo "<center>' Rekord dodany w czasie'</center>";
  16.  


Czy ktoś moze podać jakieś inne przykłady?

Witam!
Niree albo ktoś inny z fum czy może mi dpowiedzieć na pytanie- czy to jest dobre rozwiązanie?

  1. $times=date("Y-m-d h:m:s");
  2.  
  3. if((isset($_POST["MM_insert"])) && ($_POST["MM_insert"] == "form1")) {
  4. mysql_select_db($database_local, $local);
  5. $query_Recordset12 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` > '".$times."'";
  6. $Recordset12 = mysql_query($query_Recordset12, $local) or die(mysql_error());
  7.  
  8.  
  9. if(mysql_num_rows($Recordset12) > 2){
  10.  
  11. // akcja po znalezieniu że dodał wszystkie rekordy
  12. echo "<center>'Wykorzystałeś limit na dziś '".$username."'!'</center>";
  13. } else if(mysql_num_rows($Recordset12) < 0){
  14.  
  15. // akcja po znalezieniu że dodał wszystkie rekordy
  16. echo "<center>'Nie możesz dodać rekordu '".$username."'!'</center>";
  17. } else {
  18. // akcja po stwierdzeniu że dodał rekord
  19. echo "<center>' Wstawiłeś rekord w czasie'</center>";
  20.  


Ten post edytował woxala123 11.12.2016, 14:09:29
Go to the top of the page
+Quote Post
Niree
post
Post #25





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


  1. if(mysql_num_rows($Recordset12) > 2){
  2.  
  3. // akcja po znalezieniu przynajmniej dwóch rekordów
  4. echo "<center>'Wykorzystałeś limit na dziś '".$username."'!'</center>";
  5. } else if(mysql_num_rows($Recordset12) == 0){
  6.  
  7. // akcja, gdy ilość wyszukanych rekorów wynosi 0
  8. echo "<center>'Nie możesz dodać rekordu '".$username."'!'</center>";
  9. } else {
  10. // akcja po stwierdzeniu że zarówno limit(2) nie jest przekroczony, jak i ilość rekordów nie wynosi 0
  11. echo "<center>' Wstawiłeś rekord w czasie'</center>";


Nic wielkiego nie zmieniłem, oprócz operatora porównania mysql_num_rows($Recordset12) == 0
Reszta powinna być OK. Działa Ci to w ogóle?
Go to the top of the page
+Quote Post
woxala123
post
Post #26





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Teraz jest tak,że data ustawiona jest 2016-12-13 11:00:00 to nie można dodać rekordu-coś zaczyna juz sue dziać tylko nie tak bo powinien dodawac rekord.
Go to the top of the page
+Quote Post
Niree
post
Post #27





Grupa: Zarejestrowani
Postów: 220
Pomógł: 18
Dołączył: 5.02.2016
Skąd: Polska

Ostrzeżenie: (0%)
-----


A dałeś tez datę w $times?

//edit widzę ze dałeś
Dlaczego zmieniłeś format godziny? Czytałeś manuala? Dlaczego wcześniej było G:m:s i czym to się różni od tego co aktualnie masz w $times?

Ten post edytował Niree 13.12.2016, 04:46:23
Go to the top of the page
+Quote Post
woxala123
post
Post #28





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Tak dałem datę też w kolumnie time i zmieniłem na datetime
Go to the top of the page
+Quote Post
viking
post
Post #29





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Małe h oznacza 12-godzinny format.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #30





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


A może viking coś konkretnie - dał jakiś przykład. Już próbowałem róznych opcji z ustawieniem daty. teraz wróciłem do czasu G:m:s a w kolumnie Time, typ danych Time
Go to the top of the page
+Quote Post
viking
post
Post #31





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


W twoim programowaniu widać gigantyczny chaos. Bardziej strzelasz niż myślisz. Moja rada. Weź kartkę papieru, spisz co chcesz osiągnąć, warunki jakie mają być spełnione. Utwórz na papierze strukturę danych i dopiero to przepisuj do PHP. Coś tu jest nie tak jeśli nie ma znaczenia czy to data, czy czas.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #32





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Znaczenie ma w tym przypadku teraz czas -Teraz czas mam ustawiony na 15:00:00 - i jest tak że dodaje 2 rekordy gdzie najpierw wyrzuca komunikat-"Dajesz rekord w czasie"- a jak ktos dał już 2 rekordy to wywala mu komunikat Masz juz limit wykorzystany. Tylko jak ustawie godzinę 11:00:00 czyli mniejsza od aktualnego to dodaje rekordy ile razy kliknę. Czyli jeszcze bym musiał dać jakis select co będzie informował że daje rekordy po tym czasie. Tylko zastanawiam jak to najlepiej ująć - Prosze o poradę.
Pozdrawiam.
  1. $query_Recordset12 = "SELECT * FROM loro WHERE `username` = '".$username."' AND `time` > '".$times."'";
  2. $Recordset12 = mysql_query($query_Recordset12, $local) or die(mysql_error());
  3. if(mysql_num_rows($Recordset12) == 2){
  4.  
  5. // akcja po znalezieniu przynajmniej dwóch rekordów
  6. echo "<center>'Masz już dziś limit '".$username."'!'</center>";
  7.  
  8. }else{
  9. echo "<center>'Dajesz rekord w czasie'".$username."'!'</center>";
Go to the top of the page
+Quote Post
viking
post
Post #33





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Czyli dla jednego usera w tabeli loro jest np
woxala123 | 13:21:12
woxala123 | 10:22:15

Jeśli tak to dlaczego countem nie sprawdzisz ile było dodane?


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #34





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Mi cały czas biega o to żeby user nie mógł dodawać rekordu po czasie nawet jak wcześniej nawet nie dawał rekordu-czyli jak zapisuje to w ten sposób

'w''2016-12-13', '15:00:00');
Mogę zrobić następną kolumnę gdzie będzie zapisywać dodanie rekordu automatycznie ale nie chce na razie tego robić.

Ten post edytował woxala123 13.12.2016, 13:25:45
Go to the top of the page
+Quote Post
viking
post
Post #35





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Ok. A odpowiesz na pytanie wyżej? Bo od tego zależy ile rekordów jest zwracanych.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #36





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Nie wiem jak to countem sprawdzić-.
Go to the top of the page
+Quote Post
viking
post
Post #37





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


select COUNT(*) from loro where czas > CURTIME() AND username = 'w'


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #38





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Zrobiłęm to tak . Ale co mi to da i jakie warunki bym musiał postawić?
[php]
SELECT COUNT(*) FROM loro WHERE `time` >CURTIME() AND `username` = '".$username."'
/php]
Go to the top of the page
+Quote Post
viking
post
Post #39





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Da ci to liczbę rekordów w przedziale czasowym.
Bardziej mnie zastanawia czym ten temat różni się od 4 poprzednich (http://forum.php.pl/index.php?showtopic=253331&hl=) w którym już podobno był działający kod.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #40





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Tutaj było do konkretnej daty ale tu chodzi by nie było możliwości zapisywania rekordu oo podanym czasie np: ustawionym w custom.

Ten post edytował woxala123 13.12.2016, 14:02:51
Go to the top of the page
+Quote Post
viking
post
Post #41





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


No patrz http://forum.php.pl/index.php?s=&showt...t&p=1205960

Możesz też wkładać przez funkcję:

  1. CREATE PROCEDURE `insertCostam`(
  2. IN `username` VARCHAR(50)
  3. )
  4. LANGUAGE SQL
  5. NOT DETERMINISTIC
  6. CONTAINS SQL
  7. SQL SECURITY DEFINER
  8. COMMENT ''
  9. BEGIN
  10. declare records int;
  11. SELECT COUNT(*) INTO records FROM t1 WHERE czas > CURTIME() AND user = username;
  12. IF records > 2 then
  13. SIGNAL SQLSTATE 'ERR0R' SET MESSAGE_TEXT = 'Błąd...';
  14. end IF;
  15. END
  16.  
  17. call `insertCostam`('test')


Ten post edytował viking 13.12.2016, 14:20:55


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #42





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Tej funkcji nie użyje-nawet nie potrafiłbym jej zastosować. Myślałem może od BETWEEN tzn że w jednej kolumnie mam zdefiniowany czas 06:00:00 a w drugiej kolumnie czas np: 20:00:00 i wtedy
gdzie $times BETWEEN 06:00:00 AND 20:00:00 to by mógł godać rekord a po gdy nie występuję select to nie dodaje rekordu czy to jest dobry pomysł ewentualnie jeśli tak to jak zrobić zapytanie i if.
Pozdrawiam
Go to the top of the page
+Quote Post
trueblue
post
Post #43





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


A nie wystarczy Ci jedno zapytanie?

  1. INSERT INTO tabela
  2. SELECT wartosc1,wartosc2,...wartoscN FROM loro WHERE username=XXXX AND time<NOW()
  3. GROUP BY username
  4. HAVING COUNT(*)<1


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #44





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Spróbuję to zastosować późnym wieczorem - bo teraz idę do roboty. Ale jeszcze fajnie by było czy w wartości podawać nazwe kolumn czy godziny które podałem i jeszcze co ta ...wartośćN ?
Go to the top of the page
+Quote Post
trueblue
post
Post #45





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


W wartościach wstawiasz albo suche wartości, albo nazwy kolumn. Przy czym jest to zapytanie grupujące, więc...nie wchodząc w szczegóły...może nie działać do końca tak jak chcesz.
Czy wartości, które chcesz wstawić są w tabeli loro? Czas, zakładam, że wstawiasz aktualny, czyli NOW(), a nie wartość kolumny time.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #46





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Kolumna time jest ustawiona sztywno tzn. że ma okresloną godzine w custom w tym przpadku np16:00:00 lub można zmienić że dzisiejsza data i sztywna godzina. I tylko mi zalezy by user nie mógł dodawac rekordu po wyznaczonym czasie w kolumnie time
Go to the top of the page
+Quote Post
trueblue
post
Post #47





Grupa: Zarejestrowani
Postów: 6 806
Pomógł: 1828
Dołączył: 11.03.2014

Ostrzeżenie: (0%)
-----


Przecież od tego jest warunek w klauzli WHERE.


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #48





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


okey póżniej to sprawdzę na razie dzięki za zainteresowanie.

Witam!
Sorry że jeszcze wracam do tematu. Ale zrobiłem taką wersję zapisywania do konkretnej godziny.
Oto kawałek kodu.
  1. $date = strtotime(date("Y-m-d H:i:s"));
  2. $date5 = strtotime(date("2016-12-11 22:00: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."'!'</center>";
  12.  
  13. }else{
  14. mysql_select_db($database_local, $local);
  15. $query_Recordset1 = "SELECT * FROM loro ";
  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'</center>";

Pytanko -Czy jest to dobre rozwiązanie - czy jest cos takiego żeby zmienna $date5 zmieniała swoją wartośc automatycznie co 24 godziny. pozdrawiam.
Go to the top of the page
+Quote Post
nospor
post
Post #49





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Ty wez w koncu usiadz raz a porzadnie na tych datach bo sie bujasz i bujasz z banalnym kodem

$date5 = strtotime(date("2016-12-11 22:00:00"));

Czy to nie tobie juz mowilem, ze
date('2016-01-01')
to jest to samo co
2016-01-01
?

jak chcesz miec date z danego dnia, to wstawiaj tam formaty daty a nie date z palca...
$date5 = strtotime(date("Y-m-d 22:00:00"));


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #50





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Teraz wyszedł jeden z problem. W momencie gdy jeden z userów doda rekordy inny user już nie może oddać bo wyskakuje komunikat 'Wykorzystałeś limit oddawania głosów'.
Kod powyżej. Jakie założenie trzeba zrobić?

Ten post edytował woxala123 19.12.2016, 21:51:35
Go to the top of the page
+Quote Post
nospor
post
Post #51





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




No to nie powinienes przypadkiem tej daty pobierac dla danego usera a nie globalnie dla wszystkich?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #52





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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>";
Go to the top of the page
+Quote Post
nospor
post
Post #53





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




'username'
to jest tekst a nie nazwa kolumny... skup sie troche


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #54





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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

Ten post edytował woxala123 20.12.2016, 16:19:37
Go to the top of the page
+Quote Post
nospor
post
Post #55





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




$query_Recordset1 = "SELECT * FROM loro WHERE username = '".$username."' ";
Nigdzie tutaj nie sprawdzasz danych z danego dnia tylko leciszz po wszystkich wiec... tongue.gif


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #56





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Zgadza się to jak tu zrobić założenie by w końcu to zaczęło działać.
Go to the top of the page
+Quote Post
nospor
post
Post #57





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Dodac warunek by zczytywal dane z danego dnia?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #58





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Ale czy najpierw zrobic jakiegoś selecta i póżniej warunek?
Go to the top of the page
+Quote Post
nospor
post
Post #59





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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)


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #60





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


To jaki ten warunek to zrobić tak
SELECT * FROM loro WHERE date<".$date."
Go to the top of the page
+Quote Post
nospor
post
Post #61





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #62





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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.
Go to the top of the page
+Quote Post
nospor
post
Post #63





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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.


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #64





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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.  


Ten post edytował woxala123 20.12.2016, 17:44:11
Go to the top of the page
+Quote Post
nospor
post
Post #65





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Cytat
A co powiesz Nospor na te rozwiązanie?
A dziala jak oczekujesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #66





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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.?
Go to the top of the page
+Quote Post
nospor
post
Post #67





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
woxala123
post
Post #68





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


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"
Go to the top of the page
+Quote Post
viking
post
Post #69





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

Ostrzeżenie: (0%)
-----


Czyli co? Wracasz po tygodniu do http://forum.php.pl/index.php?s=&showt...t&p=1206537 i nic dalej nie wiesz?


--------------------
Go to the top of the page
+Quote Post
woxala123
post
Post #70





Grupa: Zarejestrowani
Postów: 361
Pomógł: 12
Dołączył: 9.01.2010

Ostrzeżenie: (10%)
X----


Dobre to ciking?
Go to the top of the page
+Quote Post

4 Stron V   1 2 3 > » 
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 22:58