![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
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.
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 |
|
|
![]()
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.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
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.
|
|
|
![]()
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 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]()
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 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Na razie wg. twoich wskazówek zrobiłem tak - z tymi zmiennymi masz racje zaraz jeszcze to poprawię ale nadal zapisuje
poprawiłem już na takie coś
Ten post edytował woxala123 10.12.2016, 22:52:36 |
|
|
![]()
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 . |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Już troche pogubiłem z tym się dziś. Co dalej?
|
|
|
![]()
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. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
To jest teraz jak piszesz i nadal to samo dodae i wyskakuje komunikat dodałeś rekord w czasie
Ten post edytował woxala123 10.12.2016, 23:22:44 |
|
|
![]()
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. |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
I cały czas to samo
|
|
|
![]()
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 |
|
|
![]()
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 :-) |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
Otrzymuje to
"SELECT * FROM loro WHERE `username` = 'w' AND `time` < 1481439184" Poprawiłem zmienną co wcześniej podawałeś tzn: 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ć? |
|
|
![]()
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.
|
|
|
![]()
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?
|
|
|
![]()
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."' |
|
|
![]()
Post
#20
|
|
Grupa: Zarejestrowani Postów: 361 Pomógł: 12 Dołączył: 9.01.2010 Ostrzeżenie: (10%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 13:28 |