Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] co oznacza warunek z operatorem ->
Forum PHP.pl > Forum > Przedszkole
wozniak
Co oznacza taki warunek?
  1. if ($this->update('podstrony','nazwa="'.$_POST['nazwa'].'", tresc="'.$_POST['tresc'].'", pozycja="'.$_POST['pozycja'].'", data_modyfikacji="'.date('U').'"','id='.$_GET['id']))
  2. {
markonix
Co oznacza dokładniej musisz wyczytać z dokumentacji.
Równie dobrze może oznaczać prawidłowe wykonanie zapytania (bez warunku sprawdzenia czy obiekt o danym ID istniał) jak również prawidłowy update.
wozniak
acha, chyba po aktualizacji serwera przestała mi działać aktualizacja sad.gif
Posiadam PHP 5.4.19
  1. if ($this->update('podstrony','nazwa="'.$_POST['nazwa'].'", tresc="'.$_POST['tresc'].'", pozycja="'.$_POST['pozycja'].'", data_modyfikacji="'.date('U').'"','id='.$_GET['id']))
  2. {
  3. $this->updatePozycji('podstrony',$_POST['pozycja'],$_GET['id']);
  4. switch($_POST['menu_gorne'][0])
  5. {
  6. case 0:
  7. $this->delete('podstrony_menu_gorne','id_podstrony='.$_GET['id']);
  8. break;
  9. case 1:
  10. $sprawdzam = $this->row($this->select('id','podstrony_menu_gorne','id_podstrony='.$_GET['id'],'id',1));
  11. if (in_array('id',array_keys($sprawdzam)))
  12. {
  13. $this->update('podstrony_menu_gorne','pozycja='.$_POST['pozycja_menu_gorne'],'id_podstrony='.$_GET['id']);
  14. $id_podstrony = $sprawdzam['id'];
  15. }else{
  16. $this->insert('podstrony_menu_gorne','"","0","'.$_GET['id'].'","","'.$_POST['pozycja_menu_gorne'].'","1"');
  17. $id_podstrony_gorne_menu = mysql_insert_id();
  18. if ($id_podstrony_gorne_menu>0)
  19. {
  20. $id_podstrony = $id_podstrony_gorne_menu;
  21. }
  22. }
  23. if (!empty($id_podstrony))
  24. {
  25. $this->updatePozycji('podstrony_menu_gorne',$_POST['pozycja_menu_gorne'],$id_podstrony_gorne_menu);
  26. }
  27. break;
  28. }
  29. return 1;
  30. }
  31. return 'Wystąpił błąd i zmiany nie zostały zapisane poprawnie!!';


Cały czas zwraca bład 'Wystąpił błąd i zmiany nie zostały zapisane poprawnie!!' sad.gif( dlaczego?smile.gif
markonix
To jest w ogóle ciało funkcji..
Tak więc funkcja zwraca ten tekst gdy się nie wykona $this->update.
Wciąż nikt nie wie co dokładnie ta metoda robi więc nikt nie pomoże.
stud3nt
Jeśli dobrze zrozumiałem, o co Tobie chodzi, to:

W instrukcji warunkowej IF możemy sprawdzać zarówno wartość zmiennych, np
  1. if ($zmienna === 1)
  2. {
  3. //instrukcje, jesli zmienna ma wartość 1;
  4. }
  5. else
  6. {
  7. //instrukcje, jeśli zmienna ma inną wartość
  8. }


jak i funkcje oraz metody, np:

  1. if (jakas_funkcja($zmienna1, $zmienna2))
  2. {
  3. //jesli funkcja wykonala sie poprawnie i nie zwraca NULL ani FALSE;
  4. }
  5. else
  6. {
  7. //jesli funkcja nie wykonala sie poprawnie albo zwrocila NULL albo FALSE;
  8. }


Jeśli wrzucimy do IF jakąś funkcję lub metodę (tak jak wyżej), zostanie ona wykonana i jeśli nie zwraca NULL ani FALSE ani błędu, warunek if zostaje uznany za spełniony.

Podana przez Ciebie metoda z operatorem $this-> pochodzi pewnie z wewnątrz jakiejś klasy. Jest to odwołanie się do metody z klasy - tej samej, lub tej, po której dziedziczymy - w takim wypadku na początku pliku powinno być coś takiego:
  1. class moja_klasa extends klasa_po_ktorej_dziedziczymy {



UPDATE//

Błąd zwraca, bo pierwszy warunek IF nie został spełniony. Słowo kluczowe return przerywa wykonywanie funkcji/metody i zwraca odpowiednią wartość.
wozniak
sql
  1. public $info = null;
  2.  
  3. private function __construct()
  4. {
  5. $this->link = mysql_connect(BAZA_HOST,BAZA_USER,BAZA_HASLO);
  6. if ($this->link)
  7. {
  8. $this->sql("SET NAMES UTF8");
  9. mysql_select_db(BAZA_BAZA);
  10. }else{
  11. echo 'Wystąpił błąd podczas próby połączenia się do bazy danych!';
  12. }
  13. }
  14. public function __destruct()
  15. {
  16. @mysql_close($this->link);
  17. }
  18. public static function getInstance()
  19. {
  20. if (is_null(self::$instance))
  21. {
  22. return self::$instance = new self();
  23. }else{
  24. return self::$instance;
  25. }
  26. }
  27. public function sprawdzSSL()
  28. {
  29. if ($this->czy_ssl && $_SERVER['SERVER_PORT']!=443)
  30. {
  31. $this->reload(0,'https://www.'.DOMENA_2.$_SERVER['REQUEST_URI']);
  32. }
  33. }
  34. public function stripAndTrim($tab)
  35. {
  36. $znaki = array('\\'=>'');
  37.  
  38. $argumenty = func_get_args();
  39. foreach($tab as $i=>$v)
  40. {
  41. if (!in_array($i,$argumenty))
  42. {
  43. $tab[$i] = str_replace(array_keys($znaki),array_values($znaki),trim(strip_tags($v)));
  44. }
  45. }
  46. return $tab;
  47. }
  48. public function select($pola,$baza,$where,$order='id',$limit, $debug = 0)
  49. {
  50. $where = empty($where) ? '' : 'WHERE '.$where;
  51. $limit = empty($limit) ? '' : 'LIMIT '.$limit;
  52. if ($debug)
  53. {
  54. echo "SELECT $pola FROM `".$this->db_prefix."_".$baza."` {$where} ORDER BY {$order} {$limit}<br />"; //DEBUG ONLY
  55. }
  56. return mysql_query("SELECT $pola FROM `".$this->db_prefix."_".$baza."` {$where} ORDER BY {$order} {$limit}");
  57. }
  58. public function selectJoin($pola,$baza,$join,$join_baza,$join_warunek,$where,$order='id',$limit,$debug=0)
  59. {
  60. $where = empty($where) ? '' : 'WHERE '.$where;
  61. $limit = empty($limit) ? '' : 'LIMIT '.$limit;
  62. if ($debug)
  63. {
  64. echo 'SELECT '.$pola.' FROM '.$this->db_prefix.'_'.$baza.' '.$join.' '.$this->db_prefix.'_'.$join_baza.' ON ('.$join_warunek.')'.' '.$where.' ORDER BY '.$order.' '.$limit;
  65. }
  66. return mysql_query('SELECT '.$pola.' FROM '.$this->db_prefix.'_'.$baza.' '.$join.' '.$this->db_prefix.'_'.$join_baza.' ON ('.$join_warunek.')'.' '.$where.' ORDER BY '.$order.' '.$limit);
  67. }
  68. public function update($baza,$set,$where,$debug = 0)
  69. {
  70. if ($debug)
  71. {
  72. echo "UPDATE `".$this->db_prefix."_".$baza."` SET {$set} WHERE {$where}"; // DEBUG ONLY
  73. }
  74. return mysql_query("UPDATE `".$this->db_prefix."_".$baza."` SET {$set} WHERE {$where}");
  75. }
  76. public function insert($baza,$dane, $debug = 0)
  77. {
  78. if ($debug)
  79. {
  80. echo "INSERT INTO `".$this->db_prefix."_".$baza."` VALUES ({$dane})";
  81. }
  82. mysql_query("INSERT INTO `".$this->db_prefix."_".$baza."` VALUES ({$dane})");
  83. return mysql_insert_id();
  84. }
  85. public function delete($baza,$where)
  86. {
  87. mysql_query("DELETE FROM `".$this->db_prefix."_".$baza."` WHERE {$where}");
  88. {
  89. return 1;
  90. }
  91. return 0;
  92. }
  93. public function sql($query)
  94. {
  95. return mysql_query($query);
  96. }
  97. public function num($query)
  98. {
  99. return mysql_num_rows($query);
  100. }
  101. public function row($query)
  102. {
  103. return mysql_fetch_array($query);
  104. }
  105. public function date($parametry)
  106. {
  107. return date($parametry);
  108. }
  109. public function koduj($string,$klucz)
  110. {
  111. $this->info = "";
  112. for($i=0;$i<strlen($string);$i++)
  113. {
  114. $this->info .= chr(ord($string[$i])+$klucz);
  115. }
  116. return base64_encode($this->info);
  117. }
  118. public function dekoduj($string,$klucz)
  119. {
  120. $this->info = "";
  121. $string = base64_decode($string);
  122. for($i=0;$i<strlen($string);$i++)
  123. {
  124. $this->info .= chr(ord($string[$i])-$klucz);
  125. }
  126. return $this->info;
  127. }
  128. public function htmlspecialchars_encode(&$zmienna)
  129. {
  130. $zmienna = stripslashes(htmlspecialchars($zmienna,ENT_QUOTES));
  131. }
  132. public function reload($time, $url)
  133. {
  134. echo '<meta http-equiv="refresh" content="' . $time . ';url=' . $url . '">';
  135. exit();
  136. }
Turson
Po prostu $this->update() wykonuje metodę obiektu...
nospor
Najzwyklej w swiecie masz blad bazy/zapytania
Zamiast nic nie mowiacego:
return 'Wystąpił błąd i zmiany nie zostały zapisane poprawnie!!';
daj komunikat bledu
return 'Blad bazy:'.mysql_error();

I wszystko bedzie jasne.
wozniak
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'text-align: center;"> I. INFORMACJE OGÓLNE &n' at line 1


hmm ?
nospor
Dane przed wlozeniem do zapytania sie ESCAPUJE
wozniak
Dzięki wielkie smile.gif tylko dlaczego tyle lat działało, a nagle przestało ?smile.gif

dla zainteresowanych :
  1.  
  2.  
  3. $tresc = mysql_escape_string($_POST['tresc']);
  4.  
  5. if ($this->update('podstrony','nazwa="'.$_POST['nazwa'].'", tresc="'.$tresc.'", pozycja="'.$_POST['pozycja'].'", data_modyfikacji="'.date('U').'"','id='.$_GET['id']))
nospor
Bo pewnie zmienily sie ustawienia serwera. Wczesniej miales MAGIC_QUOTES a teraz nie smile.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.