Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Problem z if
Forum PHP.pl > Forum > Przedszkole
mit2
witam ma problem z if mam taki kod
  1. if($stop < $teraz)
  2. {

$stop pobiera z bazy a $teraz jest zrobione tak
  1. $teraz = time();

$stop ma taki rodzaj daty : 2011-06-13 20:56:20. jak moge zrobic żeby $teraz miał też taki sam rodzaj daty
sadistic_son
  1. $stop=strtotime($stop);
LUB
  1. $teraz=date("Y-m-d H:i:s",$teraz);
Ale jeśli zamienisz $teraz na taki format to już ich nie porównasz w ifie.
bastard13
  1. date('Y-m-d H:i:s', time());

Więcej formatów dat na:
http://pl2.php.net/manual/en/function.date.php
mit2
niewiem cos mi nie działa
tu mam pełny kod
  1. <?php
  2. //by mit2
  3. $sql=mysql_connect('localhost', 'root', '');
  4. $sprawdz = "SELECT * FROM serwer";
  5. $sprawdz = mysql_query("$sprawdz");
  6. $sprawdz = mysql_fetch_array($sprawdz);
  7. $tera = time();
  8. $end = $sprawdz['datastop'];
  9. $stop=strtotime($end);
  10. $delete = $sprawdz[datadelete];
  11. $usun = strtotime($delete);
  12. $teraz = date('Y-m-d H:i:s', time());
  13. if($stop < $teraz)
  14. {
  15. $zmien = "UPDATE serwer SET tryb='4' WHERE id='$sprawdz[id]'";
  16. $zmien = mysql_query($zmien);
  17. $panel = "SELECT * FROM serwery WHERE id='$sprawdz[lok]'";
  18. $panel = mysql_query("$panel");
  19. $panel = mysql_fetch_array($panel);
  20. $is = "SELECT * FROM gry WHERE id='$sprawdz[gra]'";
  21. $is = mysql_query("$is");
  22. $is = mysql_fetch_array($is);
  23. $connection = ssh2_connect(''.$panel["ip"].'', $panel["port"]);
  24. ssh2_auth_password($connection, ''.$panel["login"].'', ''.$panel["haslo"].'');
  25. $dodaj = ssh2_exec($connection, 'cd /home/'.$sprawdz["katalog"].'/hlds_l && killall hlds_run && '.$is[katpass].'pass.sh '.$sprawdz["katalog"].' ruchradzionkow');
  26. echo'zrobione';
  27. }
  28. if($usun < $teraz)
  29. {
  30. $usun = "DELETE FROM serwer WHERE id=id='$sprawdz[id]'";
  31. $usun = mysql_query($delete);
  32. $connection = ssh2_connect(''.$panel["ip"].'', $panel["port"]);
  33. ssh2_auth_password($connection, ''.$panel["login"].'', ''.$panel["haslo"].'');
  34. $usun = ssh2_exec($connection, 'cd /home/'.$sprawdz["katalog"].'/hlds_l && killall hlds_run && '.$is[katpass].'pass.sh '.$sprawdz["katalog"].' ruchradzionkow');
  35. echo'zrobione1';
  36. }
  37. ?>

plik ma sprawdzac czy data już się skończyła i zablokowac ja i nie działa
bastard13
Przed:
  1. if($stop < $teraz)

dodaj:
  1. var_dump($stop);
  2. var_dump($teraz);

i wklej to, co ci zwróci.
worek
usun = "DELETE FROM serwer WHERE id=id='$sprawdz[id]'";

id=id =

Coś nie teges chyba biggrin.gif
mit2
te id=id= juz wczesniej usunołem. takie coś mi wyskoczyło
int(1304337344) string(19) "2011-05-29 23:45:29"
mortus
  1. if(strtotime($stop) < ($teraz = time()))
worek
Co do czasu proponuje formatowanie daty jako czasu uniksowy w celu zastosowania porównania w instrukcji warunkowej if. Mam nadzieję że to ci rozjaśni biggrin.gif

funkcja microtime() biggrin.gif
mit2
mam jeszcze jeden problem ponieważ nie chce mi robić update
  1. $zmien = "UPDATE serwer SET tryb='4' WHERE id='$sprawdz[id]'";
  2. $zmien = mysql_query("$zmien");

sprawdziłem pod mysql_error i wszystko jest ok ale niechce zrobić update
worek
$zmien = "UPDATE serwer SET tryb='4' WHERE id='".$sprawdz[id]."';";

to powinno pomóc, Pozdrawiam
mit2
problem rozwiązany
worek
musi działać biggrin.gif

no i kwestia jeszcze jakie wartości zwraca ci do zmiennej $sprawdz['id'] czy są zgodne wartości z oczekiwanymi, najlepiej daj zwykłe echo i zobacz czy ci wyrzuci to co chciałeś. Jak nie to może być problem tutaj np

$sprawdz = "SELECT * FROM serwer";
$sprawdz = mysql_query("$sprawdz");
$sprawdz = mysql_fetch_array($sprawdz); no i troszkę bym się do nazewnictwa czepiał

$sql = "SELECT * FROM serwer";
$result = mysql_query($sql,$connect);
$sprawdz = mysql_fetch_array($result);

wygląda znacznie przejrzyściej biggrin.gif I nie ma konfliktu.
mit2
mam jeszcze jeden problem z update poniewaz nie daje mi tego id co powinno tylko daje pierwsze z kolei zastosowalem twoją opcje i nic sie nie zmieniło
worek
a które id ma pokazywać? ostatnie? czy każda opcja inne?
problem jest taki że $sprawdz[id] przyjmie docelowo jedną wartość chyba że zrobisz np w pętli while lub foreach wtedy będzie ci się zmieniać wyświetlany rekord, a w twoim przypadku to te sprawdz[id] stoi w miejscu.
mit2
w wszystkim ma szukac ale jeżeli w jakimś znajdzie to zmienia w tym którego znalazł
worek
to robisz coś takiego

while($result =mysql_fetch_array($sprawdz){
if(warunek){
$hit = $sprawdz['id'];
}
}

w updacie dajesz zamiast sprawdz[id] dajes $hit biggrin.gif Powinno pomóc
Rid
Trochę to poprawię:/

do
{
if(warunek){
$hit = $sprawdz['id'];
}
}
while($result =mysql_fetch_array($sprawdz));
worek
Cytat(Rid @ 30.05.2011, 01:18:17 ) *
Trochę to poprawię:/

do
{
if(warunek){
$hit = $sprawdz['id'];
}
}
while($result =mysql_fetch_array($sprawdz));


no coś chyba nie tak biggrin.gif takiej składni nie widziałem biggrin.gif zawsze może użyć jeszcze foreach biggrin.gif

gościu sprawdza rekordy za bazy czyli np szuka w tabeli serwer kolumnie user wartości rysiek

while($result =mysql_fetch_array($sprawdz){
if($result['user'] == rysiek){
$hit = $result['id'];
}
}
mit2
rozwiązałem to mysle że będzie działać
Rid
Cytat
no coś chyba nie tak biggrin.gif takiej składni nie widziałem biggrin.gif zawsze może użyć jeszcze foreach biggrin.gif

Pętla do while ,będzie się wykonywała dopóki nie zostanie przerwana lub nie zostanie spełniony warunek.

Ale w tym przypadku ,chyba Pańska pętla będzie lepsz,niedoczytałem wszystkiego tongue.gif
worek
Aha w twoim jeszcze przypadku jak chcesz update'ować wszystkie wartości której się zmieniły to możesz update w pętlę warunkową wcisnąć. Wtedy np. data spełni warunek w jednym miejscu, to od razu updatowane jest i potem leci jeszcze przez pozostałe na przykład rekordy, znajdzie kolejny z datą i znowu update robi i tak w kółko aż przeleci wszystkie rekordy. Nie znam dokładnie struktury bazy także niewiele wiem ale zgaduję że tak to może wyglądać biggrin.gif
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.