Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Po zmianie MySQL 4.1 na v5 przestało działać PHP
Forum PHP.pl > Forum > PHP
klakciu
Witam,

mam taki problem, którego nie umiem już tydzien rozwiązać, a zapewne dla osoby w temacie różnic między zapytaniami do MySQL 4.1 i v5 to pikuś.


Na stronie mam wybór osób (typerów), każdy uzytkownik sobie wybiera takiego typera przez zaznaczenie i klika "Wyślij". Wtedy strona powinna zapamiętać to co wybrał i wysylac mu powiadomienia o nowych postach wybranej osoby (Typera).

Strona tak robiła, ale odkąd musialem zmienic wersje MySQL na v5 to calkowicie nie reaguje to zapytanie, wybiera sie, klika i nic. Strona tego nie czuje i nie zapamiętuje.

Zupełnie nie wiem co dostosować, żeby dzialalo tak samo jak wczesniej na v4.1, ale na wersji MySQL v5

Nie wyrzuca, żadnego błędu ani nic. Po prostu nie zapamietuje wybranych osób (powinno zachować znaczki wyboru obok nich), a do osoby po wyborze wysyla maila "Wybrales typerow: i tu jest PUSTO".

Z góry dzięki za każdą sugestie i pomoc.

  1. //to zapisze zmianę wybranych typerow
  2. if(isset($_POST[POST_CHANGE_TYPER_MAILING])){
  3.  
  4. $qry_wybrani = "SELECT t.id id_typer , t.nick nick , m.id_uzytkownicy wybrany"."\n".
  5. "FROM (uzytkownicy u, uzytkownicy_typer_mail m) "."\n".
  6. "RIGHT JOIN uzytkownicy t "."\n".
  7. "ON t.id = m.id_uzytkownicy_typer "."\n".
  8. "AND u.id = m.id_uzytkownicy "."\n".
  9. "WHERE u.id = $this->m_iUserId "."\n AND m.id_uzytkownicy IS NOT NULL";//.
  10.  
  11.  
  12. $res1 = mysql_query($qry_wybrani) or die ("LINE : ".__LINE__."SQL: <pre>\n".$qry_wybrani."\n</pre>".mysql_error()."<br>");
  13. while($row = mysql_fetch_array($res1)) $starzy .= "$row[nick],";
  14. $starzy = substr($starzy,0,-1);
  15.  
  16. $SQL_1 = "DELETE FROM uzytkownicy_typer_mail WHERE id_uzytkownicy = $this->m_iUserId";
  17. mysql_query($SQL_1) or die ("LINE : ".__LINE__."SQL: <pre>\n".$SQL_1."\n</pre>".mysql_error()."<br>");
  18. foreach($_SESSION[SESSION_SELECTED_TYPERS] as $key => $val){
  19. if(isset($_POST[$val])){
  20. $SQL_2 = "INSERT INTO uzytkownicy_typer_mail(id_uzytkownicy,id_uzytkownicy_typer) VALUES($this->m_iUserId,$_POST[$val])";
  21. mysql_query($SQL_2) or die ("LINE : ".__LINE__."SQL: <pre>\n".$SQL_2."\n</pre>".mysql_error()."<br>");
  22. }
  23. }
  24.  
  25. $res2 = mysql_query($qry_wybrani) or die ("LINE : ".__LINE__."SQL: <pre>\n".$qry_wybrani."\n</pre>".mysql_error()."<br>");
  26. while($row = mysql_fetch_array($res2)) $nowi .= "$row[nick],";
  27. $nowi = substr($nowi,0,-1);
  28.  
  29. $tresc_mail = readData($this->m_aSkorki[MAIL_ZMIANA_TYPEROW][SKIN]);
  30. $labels = array('%NICK%','%MAIL%','%STARA_LISTA_TYPEROW%','%NOWA_LISTA_TYPEROW%');
  31. $values = array($this->m_strUserNazwa,$this->m_strUserMail,$starzy,$nowi);
  32. $tresc_mail = str_replace($labels,$values,$tresc_mail);
  33. $mail = new CMail();
  34. $mail->to = $this->m_strUserMail;
  35. $mail->from = ADMIN_MAIL;
  36. $mail->subject = TEXT_ZMIANA_TYPEROW;
  37. $mail->message = $tresc_mail;
  38. $mail->send();
  39.  
  40. }
  41. $_SESSION[SESSION_SELECTED_TYPERS] = NULL;
  42.  
  43. }
  44. else{
  45. $Q_TYERZY_WYBRANI_LUB_NIE = "SELECT t.id id_typer , t.nick nick_typer , m.id_uzytkownicy wybrany "."\n".
  46. "FROM (uzytkownicy u, uzytkownicy_typer_mail m) "."\n".
  47. "RIGHT JOIN uzytkownicy t "."\n".
  48. "ON t.id = m.id_uzytkownicy_typer "."\n".
  49. "AND u.id = m.id_uzytkownicy "."\n".
  50. //"WHERE u.id = $this->m_iUserId "."\n". //"%USER_ZALOGOWANY%"
  51. "WHERE t.id = %TYPER%"."\n".
  52. "AND t.id_prawa > 1 limit 1"."\n";
  53.  
  54.  
Fifi209
Jak wykonasz to zapytanie w konsoli mysql to też nie działa?
klakciu
chcialem, ale nie umiem przeksztalcic tego na język SQL do phpmyadmin ohno-smiley.gif


w ogole on tak jakby wszystko wykonuje, bo nawet po zatwierdzeniu wyboru wysyla do uzytkownika strony maila, ze dokonal wyboru itp (Błędów też nie zwraca) - tylko po prostu NIE zapamiętuje wyboru - jakiś koszmar. Na 4.1 to działało.

powinien wygenerowac i wstawic ID wybranych osób i przypisać w bazie do tej osoby, co ich wybierała i wlasnie tylko tego nie robi ten kod.

MySQL 5 coś w tym fragmencie gdzie zapisuje nowe polecenia / usuwa coś gubi:
  1. $SQL_2 = "INSERT INTO uzytkownicy_typer_mail(id_uzytkownicy,id_uzytkownicy_typer) VALUES($this->m_iUserId,$_POST[$val])";
  2. mysql_query($SQL_2) or die ("LINE : ".__LINE__."SQL: <pre>\n".$SQL_2."\n</pre>".mysql_error()."<br>");
  3. }
viking
Włączyłeś raportowanie błędów pełne w PHP? Możliwe że np typ danych insertowanych się nie zgadza. W ogóle jak można tak pisać kod: mysql_query($SQL_2) or die? Żadnej spójności danych tym nie zachowujesz. Już nie mówiąc o POST bezpośrednio do inserta.
Uriziel01
1)Spróbuj przed linią z tym SQLem jeszcze jednak dodać włączenie raportowania błędów (może gdzieś jest zrobiona supresja błędów która nie zostanie poprawnie wyłączona):
  1. error_reporting(E_ALL);


2)Skoro email się wysyła to domyślamy się że problem leży po stronie bazy gdyż kod i tak się wykonuje (choć to nie jest wcale pewne).

3)Dodaj przed zapytaniem:
  1. var_dump($SQL_2);

Zobaczymy jak wygląda zapytanie. Fajnie było by też zobaczyć strukturę tabeli 'uzytkownicy_typer'.

EDIT:
I na miłość Boską nie rób absolutnie nigdy zawartości $_POST bezpośrednio do SQL'a.
klakciu
widze ze ten POST do SQLa to mega błąd, ale ja tego nie pisalem, tylko znajomy programista, ktory juz dzisiaj bez kontaktu jest, wyjechal 2 lata temu do pracy w UK i nie mam z nim kontaktu.

moglbys w tym kodzie dokladniej powiedziec gdzie wstawic te 2 linijki ?


sam z tym zostalem i nie umiem tego zrobić, a moja wiedza jest na poziomie 5% w PHP i 10% MySQL

struktura tych 2 tabeli:
  1. --
  2. -- Struktura tabeli dla `uzytkownicy`
  3. --
  4.  
  5. CREATE TABLE IF NOT EXISTS `uzytkownicy` (
  6. `id` int(10) NOT NULL AUTO_INCREMENT,
  7. `mail` varchar(128) NOT NULL DEFAULT '',
  8. `pass` varchar(128) NOT NULL DEFAULT '',
  9. `nick` varchar(128) NOT NULL DEFAULT '',
  10. `id_prawa` varchar(10) NOT NULL DEFAULT '1',
  11. `podpis` text,
  12. PRIMARY KEY (`id`),
  13. UNIQUE KEY `mail` (`mail`,`nick`),
  14. KEY `nick` (`nick`,`pass`),
  15. KEY `id_prawa` (`id_prawa`)
  16. ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=6046 ;
  17.  
  18. -- --------------------------------------------------------
  19.  
  20. --
  21. -- Struktura tabeli dla `uzytkownicy_typer_mail`
  22. --
  23.  
  24. CREATE TABLE IF NOT EXISTS `uzytkownicy_typer_mail` (
  25. `id_uzytkownicy` int(10) NOT NULL DEFAULT '0',
  26. `id_uzytkownicy_typer` int(10) NOT NULL DEFAULT '0',
  27. KEY `id_uzytkownicy` (`id_uzytkownicy`),
  28. KEY `id_uzytkownicy_typer` (`id_uzytkownicy_typer`)
  29. ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
Uriziel01
We wszystkich numerach linii będę opierał się na tym co pokazałeś w pierwszym poście:
-W linii pierwszej dodaj:
  1. echo '#SESSION:';
  2. var_dump($_SESSION[SESSION_SELECTED_TYPERS]);
  3. echo '#POST:';
  4. var_dump($_POST);

-Po linii 16 wstaw:
  1. echo '#SQL1:';
  2. var_dump($SQL_1);

-Po linii 20 wstaw:
  1. echo '#SQL2:';
  2. var_dump($SQL_2);


EDIT:
-W linii 28 możesz dać:
  1. Exit();


Daj wynik i powiemy co dokładnie poszło nie tak smile.gif
P.s- nie ma to jak zdalny 'debug'.
klakciu
wow, wielkie dzięki za pomoc wink.gif

wszystkie błędy w zasadzie polegają na tym samym 1 komunikacie:
"Use of undefined constant: .... "
"Undefined variable: .... "
i dotyczą w 95% komunikatów 1 pliku: index.php


no to teraz więcej już wiemy, bo jak się wchodzi w ten wybór do zaznaczania typerów, to wywaliło tym razem tyle błędów:

  1. #SESSION:
  2. Notice: Use of undefined constant SESSION_SELECTED_TYPERS - assumed 'SESSION_SELECTED_TYPERS' in /home/tipsss/public_html/dtypy.net/index.php on line 418
  3. array(118) { [0]=> string(6) "ziz99" [2]=> string(6) "m4rcin" [3]=> string(5) } #POST:array(0) { }
  4. Notice: Use of undefined constant POST_CHANGE_TYPER_MAILING - assumed 'POST_CHANGE_TYPER_MAILING' in /home/tipsss/public_html/dtypy.net/index.php on line 421
  5.  
  6. Notice: Use of undefined constant SESSION_SELECTED_TYPERS - assumed 'SESSION_SELECTED_TYPERS' in /home/tipsss/public_html/dtypy.net/index.php on line 465
  7.  
  8. Notice: Undefined variable: AND_YEAR in /home/tipsss/public_html/dtypy.net/index.php on line 490
  9.  
  10. Notice: Undefined variable: AND_MONTH in /home/tipsss/public_html/dtypy.net/index.php on line 490
  11.  
  12. Notice: Undefined variable: AND_YEAR in /home/tipsss/public_html/dtypy.net/index.php on line 491
  13.  
  14. Notice: Undefined variable: AND_MONTH in /home/tipsss/public_html/dtypy.net/index.php on line 491
  15.  
  16. Notice: Undefined variable: AND_YEAR in /home/tipsss/public_html/dtypy.net/index.php on line 492
  17.  
  18. Notice: Undefined variable: AND_MONTH in /home/tipsss/public_html/dtypy.net/index.php on line 492
  19.  
  20. Notice: Use of undefined constant TYPERZY - assumed 'TYPERZY' in /home/tipsss/public_html/dtypy.net/index.php on line 495
  21.  
  22. Notice: Use of undefined constant SKIN - assumed 'SKIN' in /home/tipsss/public_html/dtypy.net/index.php on line 495
  23.  
  24. Notice: Use of undefined constant HREF - assumed 'HREF' in /home/tipsss/public_html/dtypy.net/index.php on line 496
  25.  
  26. Notice: Use of undefined constant HREF_VAL - assumed 'HREF_VAL' in /home/tipsss/public_html/dtypy.net/index.php on line 496
  27.  
  28. Notice: Use of undefined constant TYPER_PLUS - assumed 'TYPER_PLUS' in /home/tipsss/public_html/dtypy.net/index.php on line 498
  29.  
  30. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 5
  31.  
  32. Notice: Use of undefined constant TYPER_PLUS - assumed 'TYPER_PLUS' in /home/tipsss/public_html/dtypy.net/index.php on line 499
  33.  
  34. Notice: Use of undefined constant LOGGED - assumed 'LOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 499
  35.  
  36. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  37.  
  38. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  39.  
  40. Notice: Use of undefined constant TYPER_PLUS - assumed 'TYPER_PLUS' in /home/tipsss/public_html/dtypy.net/index.php on line 500
  41.  
  42. Notice: Use of undefined constant NOTLOGGED - assumed 'NOTLOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 500
  43.  
  44. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  45.  
  46. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  47.  
  48. Notice: Use of undefined constant TYPER_MINUS - assumed 'TYPER_MINUS' in /home/tipsss/public_html/dtypy.net/index.php on line 501
  49.  
  50. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 5
  51.  
  52. Notice: Use of undefined constant TYPER_MINUS - assumed 'TYPER_MINUS' in /home/tipsss/public_html/dtypy.net/index.php on line 502
  53.  
  54. Notice: Use of undefined constant LOGGED - assumed 'LOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 502
  55.  
  56. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  57.  
  58. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  59.  
  60. Notice: Use of undefined constant TYPER_MINUS - assumed 'TYPER_MINUS' in /home/tipsss/public_html/dtypy.net/index.php on line 503
  61.  
  62. Notice: Use of undefined constant NOTLOGGED - assumed 'NOTLOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 503
  63.  
  64. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  65.  
  66. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  67.  
  68. Notice: Use of undefined constant TYPER_ZERO - assumed 'TYPER_ZERO' in /home/tipsss/public_html/dtypy.net/index.php on line 505
  69.  
  70. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 5
  71.  
  72. Notice: Use of undefined constant TYPER_ZERO - assumed 'TYPER_ZERO' in /home/tipsss/public_html/dtypy.net/index.php on line 506
  73.  
  74. Notice: Use of undefined constant LOGGED - assumed 'LOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 506
  75.  
  76. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  77.  
  78. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  79.  
  80. Notice: Use of undefined constant TYPER_ZERO - assumed 'TYPER_ZERO' in /home/tipsss/public_html/dtypy.net/index.php on line 507
  81.  
  82. Notice: Use of undefined constant NOTLOGGED - assumed 'NOTLOGGED' in /home/tipsss/public_html/dtypy.net/index.php on line 507
  83.  
  84. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 11
  85.  
  86. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 12
  87.  
  88. Notice: Use of undefined constant TYPER_PLUS - assumed 'TYPER_PLUS' in /home/tipsss/public_html/dtypy.net/index.php on line 510
  89.  
  90. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  91.  
  92. Notice: Use of undefined constant LABELS - assumed 'LABELS' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  93.  
  94. Notice: Use of undefined constant VALUES - assumed 'VALUES' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  95.  
  96. Notice: Use of undefined constant TYPER_MINUS - assumed 'TYPER_MINUS' in /home/tipsss/public_html/dtypy.net/index.php on line 511
  97.  
  98. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  99.  
  100. Notice: Use of undefined constant LABELS - assumed 'LABELS' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  101.  
  102. Notice: Use of undefined constant VALUES - assumed 'VALUES' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  103.  
  104. Notice: Use of undefined constant TYPER_ZERO - assumed 'TYPER_ZERO' in /home/tipsss/public_html/dtypy.net/index.php on line 512
  105.  
  106. Notice: Use of undefined constant REGEX - assumed 'REGEX' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  107.  
  108. Notice: Use of undefined constant LABELS - assumed 'LABELS' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  109.  
  110. Notice: Use of undefined constant VALUES - assumed 'VALUES' in /home/tipsss/public_html/dtypy.net/fun/fun_rozne.php on line 84
  111.  
  112. Notice: Undefined variable: row in /home/tipsss/public_html/dtypy.net/index.php on line 514
  113.  
  114. Notice: Use of undefined constant id_typer - assumed 'id_typer' in /home/tipsss/public_html/dtypy.net/index.php on line 550
  115.  
  116. Notice: Use of undefined constant SESSION_SELECTED_TYPERS - assumed 'SESSION_SELECTED_TYPERS' in /home/tipsss/public_html/dtypy.net/index.php on line 554
Uriziel01
Uuuuu. Ja tutaj już tylko dalszą możliwość jaką widzę to napisanie do mnie na PW jakiś namiar na Siebie (najchętniej Skype) i tam możemy już to doprowadzić do końca, tutaj zajmie nam to dwa dni czasu i ogólnie jest ciężkie do prowadzenia. Ogólnie objaw jest taki jak gdybyś nie miał zaincludowanej jakiejś sporej tablicy stałych. Bo jak widzimy praktycznie zasypany zostałeś błędami o ich braku.
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.