Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl


emp
Napisane: 8.05.2018, 09:21:26





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Gdybym za każdym razem kiedy usłysze o tym że jakiś programista się wypala dostawał grosza... to miałbym 2 grosze.
Nie skomlij tylko bierz się za robotę. Programowanie albo śmierć.
Z tego interesu możesz wyjść tylko nogami do przodu.
Także jeśli ci życie miłe bierz się za programowanie.
  Forum: Hydepark · Podgląd postu: #1232949 · Odpowiedzi: 18 · Wyświetleń: 802

emp
Napisane: 13.06.2013, 10:15:17





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Cytat(dżozef @ 12.06.2013, 23:04:09 ) *
- podkreślenie służy mi temu, że od razu wiem, która zmienna jest public a która private/protected. podejrzałem to gdzieś i zdaje się mi służyć


To źle ci służy. Wszystkie dane( pola ) dobrze zaprojektowanej klasy powinny być prywatne ( enkapsulacja danych ), więć nie ma żadnego powodu by dodawać do nich podkreślink skoro wszystkie są prywatne. Dane chornione czy publiczne to są bardzo specjalne przypadki. Dostęp do danych klasy powinien odbywać się tylko przez metody dostępowe i to one są najwyżej chronione. Interfejs jest publiczny.Podkreślnik przed zmiennymi prywatnymi to zboczenie programistów javy ponieważ tam można odwołać się do pola klasy beż this w jej obrębie i nie widać czy to zmienna lokalna czy klasy na pierwszy rzut oka. Pozatym zmiennych lokalnych nie powinno się używać tylko zapytania. Zastępujemy zmienną tymczasową zapytaniem.

Twoja klasa jest odpowiedzialna za 2 rzeczy czyli o jedną za dużo. Widze tu... póki jeszcze nie zarzuciłem bielunia to widze... obiekt dziedziny domain i utrwalanie go. 2 klasy bym tu minimum widział oczywiscie domain i np domain_table. Warstwa dziedziny i warstwa utrwalania. Domain bedzie delegować do domain_table. domain_table będzie polem klasy domain.

Na pewno musisz zastosować te przekształcenia tak na oko
* Rozdzielenie Zapytania i Modyfikacji
* Zastąpienie odwołania do zmiennej zapytaniem
* Ekstrakcje klasy ( z domain wyciagnij np domain_table )
* Ekstrakcje metody ( podzialkuj dlugie metody )
* Przeniesienie metody ( przenies do domain_table z domain )
Zastosować jakiś wzorzec do mapowania realcyjno-obiektowego
* Brama danych tabeli
* Brama danych wiersza
* Rekord aktywny
* Data mapper to by była w tym wypadku lekka przesada.

Dobrze że używasz instrukcji preparowanych i nazwanych symboli zastępczych ci którzy tak nie robią robią po prostu siare.

Każdy kto nie czytał tych ksiązek jak i welu innych klasyków, a programuje powinien się wstydzić i kajać.
Refaktoryzacja ulepszanie struktury istniejacego kodu
Architektura systemow zarzadzania przedsiebiorstwem wzorce projektowe
Wracam do szukania bielunia obok firmy może coś znajde. Pissss joł.
  Forum: Oceny · Podgląd postu: #1050629 · Odpowiedzi: 18 · Wyświetleń: 866

emp
Napisane: 5.05.2013, 00:38:00





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Do js trzeba koniecznie wiedzieć to:
javascript-programowanie-obiektowe
javascript-wzorce
Każdy kto używa js-a musi minimum wiedzieć i rozumieć to co jest zawarte w tych dwóch książkach Stoyan Stefanova
Do jotkłerego:
jquery-od-nowicjusza-do-wojownika-ninja
  Forum: Książki · Podgląd postu: #1043013 · Odpowiedzi: 7 · Wyświetleń: 4 132

emp
Napisane: 19.06.2013, 19:49:49





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Ogólnie Książki jak nie robić siary i z siebie totalnego lamusa. Nie czytałeś tych książek to się nawet nie przyznawaj.
Czysty Kod
Refaktoryzacja ulepszanie struktury istniejacego kodu
Wzorce projektowe elementy oprogramowania obiektowego wielokrotnegu uzytku
Architektura systemow zarzadzania przedsiebiorstwem wzorce projektowe

Projektowanie, wytwarzanie, proces tworzenia Przydało by się znać podstawy programowania obiektowego, wzorce GRASP i tworzenia oprogramowania w sposób ewolucyjny no i jakieś podstawy inżynierii oprogramowania
Inżynieria oprogramowania. Klasyka informatyki
Uml i wzorce projektowe analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji
Inzynieria oprogramowania w ujeciu obiektowym uml wzorce projektowe Książka niezła bo porusza szeroki zakres wiedzy związanej z produkcją oprogramowania. Bardzo teoretyczna, zdeka nieaktulna, ale warta przeczytania.
UML należy znać Jezyk uml 2.0 w modelowaniu systemow informatycznych

PHP Uzupełnił bym to tym
Php obiekty wzorce narzedzia
i tym Php 5 narzedzia dla ekspertow

Javascript Nawet mi nie mów że tego nie czytałeś
Javascript programowanie obiektowe
Javascript wzorce

GUI, intefejs użytkownika i projektowanie dokumentu. Przydało by się wiedzieć co to jest koło barw, znać zasady DTP odległości, wyrównania, powtarzalności, kontrastu itp. Nie mówie że macie być grafikami, ale nie bądźcie totalnymi ignorantami.
Dtp od podstaw projekty z klasa
Niezawodne zasady web designu projektowanie spektakularnych witryn internetowych
Jeżeli robisz interfejsy użytkownika, tworzysz okienka, listy, formularze i tego nie czytałeś to lepiej to zrób zanim ktoś się dowie jak bardzo lecisz w kulki.
Projektowanie interfejsow sprawdzone wzorce-projektowe

SQL Bardzo ważna rzecz mi się jeszcze przypomniała przecież. Musisz to wiedzieć jak tworzysz instrukcje sql. Nie mówie że masz używać zaawansowanych udogodnień bazy. To jest wiedza konieczna jeśli jej nie posiadasz.
Antywzorce jezyka sql jak unikac pulapek podczas programowania baz danych
Jeżeli ktoś z was tworzy instrukcje sql, wiadomo że korzysta z instrukcji preparowanych, nazwanych symboli zastepczych, używa tranzakcji , warstwy utrwalania, sqle trzyma w osobnych plikach, zestawach do edycji nie w kodzie i... zna antywzorce sql.
Nagminnie programisci tworza antywzorce sql rozwiązując problemy z warstwy dziedziny. Ja jestem w czołówce tych programistów.
Rzecz jasna nie tworzymy sqlów spagetti na a4 strone. Nie powinno być takich krzywych akcji. To nie jest robienie raportów. Nie ma dla makaroniarzy usprawiedliwienia.
Kiedyś robiłem źle sqle. Po przeczytaniu tej ksiązki dalej robie źle, ale już wiem co.

Zarządzanie projektami. O zarządzaniu projektami też by się przydało coś wiedzieć by nie być totalnym ignorantem. To jest dobra książka dla każdego:
Efektywne zarzadzanie projektami
i uzupełnić to np tym: Scrum o zwinnym zarzadzaniu projektami

Nie piszę o css i html, ale wiadomo że css spriaty należy wykorzystywać, a nie ładowac setek obrazków w osobnych żądaniach itp Skrypty css i javascript należy lepić w pojedyńcze i minimalizować np: yui compresorem. W php wykorzystywać przestrzeń nazw, autoloadera, a nie robić przypał jakby się dragi sprzedawało pod sklepem. PDO, instrukcje preparowane i nazwane symbole zastępcze ( nazwane, a nie nienazwane ). Instrukcje wykonujemy w tranzakcjach itp itd Robimy testy z użytkownikami, a nie zakładamy że to się im będzie podobać, tworzymy persony. Jak projektujemy to jakieś UML-e robimy. Najelpiej korzystać z media wiki. Automatyzujemy co się da za pomocą serwerów ciągłej integracji, ROBIMY TESTY ! Korzystamy z gita, phinga, dbdeploya, phara itp

To tak zgrubsza co mi do głowy przychodzi. Jeśli to przeczytacie i zrozumiecie, nauczycie się wykorzystywać to możecie się juz nie uważać za totalnych lamusów.
Nie ma czegoś takiego jak książki dla zaawansowanych. Książki są wprowadzające, przedstawiające podstawy i cała reszta. Zaawansowany programista to taki który się ciągle rozwija, zdobywa wiedze i potrafi ją wykorzystać.
Ja oczywiście nie jestem zaawansowany bo potrafie przyjść do roboty nie widząc na oczy bo za dużo bielunia zarzuciłem.

Ja czytam jedną książkę na miesiąc. Oczywiście cały czas programuje, zdobytą wiedze wykorzystuje i też wam polecam tak robić. Bez wątpienia zarobione pieniądze poprzez nowo zdobyta więdzę i umiejętności wydajemy na narkotyki, alkochol, prostytutki, hazard, taksówki, broń palną itp itd a tak na prawde jestem nolifem programujacym 12 godzin dziennie grającym w tibie który nigdy jeszcze nie zaruchał dupeczki i przegrał gre zwaną życiem osobistym. Taka prawda jezd ona. Życie ciężkie jak maczeta. Pamiętajcie hajs musi się zgadzać i uratowałem wam życie. Pisss joł.
  Forum: Książki · Podgląd postu: #1051091 · Odpowiedzi: 7 · Wyświetleń: 4 319

emp
Napisane: 8.04.2013, 16:35:49





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

error-reporting - tutaj se mozesz ustawic zeby ci sie nie wyswietlaly warningi, ale nie powinines tego robic.
Obsluz te sytuacje. Niektóre funkcje zwracaja false w razie problemow, sprawdzaj zwracany wynik, pobieraj komunikat bledy, kod i reaguj w wypadku wyjątków przechwytuj je.
  Forum: PHP · Podgląd postu: #1037824 · Odpowiedzi: 1 · Wyświetleń: 171

emp
Napisane: 8.04.2013, 14:35:42





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Też kiedyś naskrobałem podobna klase
  1. <?php
  2. namespace antaeus_api\moduly\narzedzia;
  3.  
  4. /**
  5.  * Klasa pomocnicza dla testów jednostkowych nie używać w innym kontekście
  6.  *
  7.  * Jest to klasa pomocnicza wykorzystywana przy weryfikacji poprawności testów jednostkowych
  8.  * Służy to szybkiego konstruowania polaczen pdo i wykonaywanie nie definiowania zapytań
  9.  */
  10. class Sql_mini {
  11.  
  12. private $polaczenie;
  13. private $wynik_sql;
  14. private $wyrazenie_sql;
  15.  
  16. public function __construct($wyrazenie_sql = null, $polaczenie = null) {
  17.  
  18. if ($polaczenie == null)
  19. $polaczenie = \data\Konfiguracja::podaj_domyslne_polaczenie();
  20.  
  21. $this->wyrazenie_sql = $wyrazenie_sql;
  22. $this->polaczenie = self::utworz_polaczenie($polaczenie);
  23. }
  24.  
  25. public static function utworz_polaczenie($polaczenie = null) {
  26.  
  27. if ($polaczenie == null)
  28. $polaczenie = \data\Konfiguracja::podaj_domyslne_polaczenie();
  29.  
  30. $nazwa_zrodla_danych = self::utworz_nazwe_zrodla_danych($polaczenie);
  31.  
  32. try {
  33. $polaczenie = new \PDO($nazwa_zrodla_danych, \data\Konfiguracja::$polaczenia[$polaczenie]['uzytkownik'], \data\Konfiguracja::$polaczenia[$polaczenie]['haslo']);
  34. } catch (PDOException $wyjatek) {
  35. throw new \Exception($wyjatek->getMessage() . ' ' . $nazwa_zrodla_danych);
  36. }
  37.  
  38. return $polaczenie;
  39. }
  40.  
  41. public static function utworz_nazwe_zrodla_danych($polaczenie = null) {
  42.  
  43. if ($polaczenie == null)
  44. $polaczenie = \data\Konfiguracja::podaj_domyslne_polaczenie();
  45.  
  46. $nazwa_zrodla_danych = \data\Konfiguracja::$polaczenia[$polaczenie]['sterownik'] .
  47. ':dbname=' . \data\Konfiguracja::$polaczenia[$polaczenie]['baza'] .
  48. ';host=' . \data\Konfiguracja::$polaczenia[$polaczenie]['host'] .
  49. ';port=' . \data\Konfiguracja::$polaczenia[$polaczenie]['port'];
  50.  
  51. return $nazwa_zrodla_danych;
  52. }
  53.  
  54. public function wykonaj_zapytanie($wyrazenie_sql = null) {
  55.  
  56. if ($wyrazenie_sql == null)
  57. $wyrazenie_sql = $this->wyrazenie_sql;
  58. else
  59. $this->wyrazenie_sql = $wyrazenie_sql;
  60.  
  61. $this->wynik_sql = $this->polaczenie->query($wyrazenie_sql);
  62.  
  63. if (!$this->wynik_sql) {
  64. throw new \Exception($wyrazenie_sql . ' ' . $this->podaj_ostatni_blad());
  65. }
  66.  
  67. return $this;
  68. }
  69.  
  70. private function podaj_ostatni_blad() {
  71. $blad = "";
  72. foreach ($this->polaczenie->errorInfo() as $blad_tmp)
  73. $blad = $blad . ' ' . $blad_tmp;
  74.  
  75. return $blad;
  76. }
  77.  
  78. public function podaj_wiersz() {
  79. return $this->wynik_sql->fetch();
  80. }
  81.  
  82. public function podaj_ilosc_wierszy() {
  83. return $this->wynik_sql->rowCount();
  84. }
  85.  
  86. public function podaj_wiersze() {
  87. return $this->wynik_sql->fetchAll();
  88. }
  89.  
  90. public function podaj_ilosc_kolumn() {
  91. return $this->wynik_sql->columnCount();
  92. }
  93.  
  94. public function podaj_wartosc() {
  95. if ($this->podaj_ilosc_kolumn() > 0) {
  96. $wiersz = $this->podaj_wiersz();
  97.  
  98. if (is_array($wiersz)) {
  99. foreach ($wiersz as $wartosc)
  100. return $wartosc;
  101. }
  102. else return null ;
  103. } else
  104. return null;
  105. }
  106.  
  107. }
  108.  
  109. ?>


Użycie
  1. $sql_mini = new \antaeus_api\moduly\narzedzia\Sql_mini();
  2. $ilosc_powiazan = $sql_mini->wykonaj_zapytanie('select * from role_uprawnienia where rola_id =' . $rola->podaj_id())->podaj_ilosc_wierszy();
  3. $this->assertEquals(0, $ilosc_powiazan);


Takiej klasy nie używam przy produkcji oprogramowania. Zawsze korzystam z obiektów dziedziny i wzorca data maper w szczegolnych przypadkach korzystam z podobnej klasy ale opartej na prepejrach i zamknietej w kontekście tranzakcji, ecz jest to tylko opakowanie pdo. Wtedy korzystam z tego tak
  1. $zapytanie_sql = $polaczenie->utworz_zapytanie(\antaeus_api\moduly\wydruki\sql\Sql::szablon_wydruku_dla_typu);
  2. $wiersz = $zapytanie_sql->wykonaj(array($typ_elementu))->podaj_wiersz();

To tego rozwiązania mam Fabryke_polaczen, klase polaczenia i klase sql która wygląda tak
  1. <?php
  2.  
  3. namespace antaeus_api\moduly\rdzen\fabryka_polaczen;
  4.  
  5. class Zapytanie_sql {
  6.  
  7. private $sql;
  8. private $polaczenie;
  9.  
  10. public function __construct($tresc_zapytania = null, $polaczenie = null) {
  11. if ($polaczenie == null)
  12. $this->polaczenie = Fabryka_polaczen::podaj_polaczenie();
  13. else
  14. $this->polaczenie = $polaczenie;
  15.  
  16. if ($tresc_zapytania != null) {
  17. if (is_array($tresc_zapytania)) {
  18. $this->sql = array();
  19. foreach ($tresc_zapytania as $klucz => $zapytanie)
  20. $this->sql[$klucz] = $this->polaczenie->podaj_zasob()->prepare($zapytanie);
  21. }
  22. else
  23. $this->sql = $this->polaczenie->podaj_zasob()->prepare($tresc_zapytania);
  24. }
  25. }
  26.  
  27. public function ilosc_zmienionych_rekordow() {
  28. return $this->sql->rowCount();
  29. }
  30.  
  31. public function wykonaj($parametry = array()) {
  32. $wynik = $this->sql->execute($parametry);
  33.  
  34. if (!$wynik) {
  35. $parametry_napis = "<br>";
  36. foreach ($parametry as $klucz => $parmetr) {
  37. $parametry_napis = $parametry_napis . '<b>' . $klucz . ".</b> " . $parmetr . "<br>";
  38. }
  39.  
  40. throw new \Exception('Błędne zapytanie <br><br><i>' . $this->sql->queryString . '</i><br>' . $parametry_napis . '<br>' . $this->polaczenie->podaj_ostatni_blad(), 2);
  41. }
  42.  
  43. return $this;
  44. }
  45.  
  46. public function podaj_wartosc() {
  47. if ($this->podaj_ilosc_wierszy() > 0) {
  48. $wiersz = $this->podaj_wiersz();
  49. foreach ($wiersz as $wartosc)
  50. return $wartosc;
  51. }
  52. else
  53. return null;
  54. }
  55.  
  56. public function przygotuj_zapytanie($tresc_zapytania) {
  57. if ($tresc_zapytania != null)
  58. $this->sql = $this->polaczenie->podaj_zasob()->prepare($tresc_zapytania);
  59. }
  60.  
  61. public function podaj_ilosc_kolumn() {
  62. return $this->sql->columnCount();
  63. }
  64.  
  65. public function zamknij_kursor() {
  66. $this->sql->closeCursor();
  67. }
  68.  
  69. public function podaj_wiersz() {
  70. return $this->sql->fetch();
  71. }
  72.  
  73. public function podaj_ilosc_wierszy() {
  74. return $this->sql->rowCount();
  75. }
  76.  
  77. public function podaj_wiersze() {
  78. return $this->sql->fetchAll(\PDO::FETCH_ASSOC);
  79. }
  80.  
  81. }
  82.  
  83. ?>
  Forum: Object-oriented programming · Podgląd postu: #1037807 · Odpowiedzi: 5 · Wyświetleń: 508

emp
Napisane: 8.04.2013, 11:15:58





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Jeżeli stwiasz pierwsze kroki to skup się na robieniu obiektów dziedziny.
Przygotowuj zapytania, korzystaj z prepejrów, binduj parametry, korzystaj z tranzakcji.
Daruj sobie defined. Stwórz klase konfiguracyjna z stałymi lub statycznymi polami.
Używaj przestrzeni nazw. Korzystaj z spl_autoloader zamiast z rekłirów i inkludów.
Jeżeli chcesz uprościć komunikacje z bazą to się z nią nie komunikuj bezpośrednio. Korzystasz z obiektów dziedziny , a to gdzie to jest utrwalane czy z jakiego źródła pobierane nie ma znaczeia.
Obiekt dziedziny->Odwzorowanie danych->Polaczenie z baza. Wzorców projektówych, znanych rozwiązań, dobrych praktyk odnosnie utrwalania jest masa, poznaj je.
Przeczytaj to architektura-systemow-zarzadzania-przedsiebiorstwem-wzorce-projektowe-martin-fowler
Jeżeli przedstawiasz klase to przedstaw też w jaki sposób z niej korzystasz i opisz jakie korzyści ci daje.
  Forum: Object-oriented programming · Podgląd postu: #1037765 · Odpowiedzi: 5 · Wyświetleń: 508

emp
Napisane: 11.01.2013, 10:24:42





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

UML i wzorce projektowe. Analiza i projektowanie obiektowe oraz iteracyjny model wytwarzania aplikacji. Wydanie III
  Forum: Pytania · Podgląd postu: #1017516 · Odpowiedzi: 4 · Wyświetleń: 4 639

emp
Napisane: 12.12.2009, 04:30:03





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Na wiele sposobów to możesz ugryźć
1) zmienna globalna // nie za rozsądne nigdy nie stosuje w takich przypadkach jak twój
2) inna notacja np: obiektowo-singletonowa winksmiley.jpg // to stosuje można ładnie wszystko opakować, nie masz wskaźnika this, nie możesz tworzyć nowych instancji tej klasy , ale masz zawsze jedna instancje. This w twoim wypadku na nic by ci się nie przydał bo i tak by był niedostępny w twojej funkcji.
3) zapisz dane do niewidzialnego pola input, a potem możesz odczytać winksmiley.jpg // też niezbyt rozsądne stosuje w wyjątkowych okolicznościach twój taki nie jest
4) są na pewno inne sposoby


  1. calc =
  2. {
  3. space: 0,
  4.  
  5. calculateFreeSpace : function()
  6. {
  7. var url = 'index.php?view=homeworks&action=calculateFreeSpace&nocache=' + (new Date()).getTime();
  8.  
  9. window.httpObj = createXMLHTTPObject();
  10. window.httpObj.open('GET', url , true);
  11.  
  12. window.httpObj.onreadystatechange = function()
  13. {
  14. if (window.httpObj.readyState == 4 && window.httpObj.responseText)
  15. {
  16. result = eval('(' + window.httpObj.responseText + ')');
  17. document.getElementById('free_space_number').innerHTML = result.number;
  18. document.getElementById('free_space_percent').innerHTML = result.percent + ' %';
  19. calc.space = parseInt(result.percent);
  20. }
  21. }
  22.  
  23. alert( calc.space );
  24.  
  25. window.httpObj.send(null);
  26.  
  27. for (i=0; i < space ; i++)
  28. {
  29. id = '_'+0;
  30. document.getElementById(id).style.backgroundColor = '#AEA';
  31. }
  32. }
  33. }
  34.  
  35. calc.calculateFreeSpace() ;


Nie masz jak się odwołać do zmiennej space w swoim skrypcie w moim masz poprzez obiekt calc.
Ogólnie ogarnij sobie temat klas w javascripcie są 2 podstawowe notacje inaczej będziesz skazany na zmienne globalne i kombinatorykę.
  Forum: XML, AJAX · Podgląd postu: #690479 · Odpowiedzi: 2 · Wyświetleń: 637

emp
Napisane: 14.09.2009, 21:26:51





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

prestashop
virtuemart
oscommerce
  Forum: Systemy portalowe i CMS'y · Podgląd postu: #661170 · Odpowiedzi: 1 · Wyświetleń: 855

emp
Napisane: 22.08.2009, 16:41:20





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Pola wyboru radio javascript

Nie check a checked smile.gif nie wprowadzaj kolegi w błąd
  Forum: Przedszkole · Podgląd postu: #652045 · Odpowiedzi: 3 · Wyświetleń: 486

emp
Napisane: 23.08.2009, 12:49:44





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

W $xml masz obiekt nie tablice simplexml poczytaj komentarze.
Nie powinno być tak
  1.  
  2. $id = $xml->id;
  3. $name = $xml->name;
  4. $points = $xml->points;
  5. $position = $xml->position;
  6. $gangname = $xml->gang->name;


Przed zapisaniem do bazy daj echo i sprawdź czy dane w zmiennej $xml są takie jak w pliku.
echo $xml->name; itd
Będziesz wiedział gdzie masz błąd przed zapisaniem do bazy czy w trakcie zapisywania do bazy.

Zrób jakieś testy np:
if( $xml == false ) echo 'Wystapił bład !' ;
  Forum: Przedszkole · Podgląd postu: #652333 · Odpowiedzi: 11 · Wyświetleń: 1 063

emp
Napisane: 22.08.2009, 11:07:07





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Zapytanie jest źle skonstruowane. Poniżej moja propozycja bez grup by z użyciem podzapytań.

  1. SELECT
  2. ( SELECT count( id ) FROM articles_comments WHERE id_user = u.id) AS art_comms,
  3. ( SELECT count( id ) FROM comment_news WHERE author_id = u.id) AS news_comms,
  4. ( SELECT count( id ) FROM articles_votes WHERE id_user = u.id) AS art_votes,
  5. ( SELECT count( id ) FROM survey_votes WHERE id_user = u.id) AS surv_votes,
  6. ( SELECT count( id ) FROM shoutbox WHERE id_user = u.id) AS shout
  7. FROM USERS AS u WHERE u.id=$_SESSION[id]
  Forum: Przedszkole · Podgląd postu: #651927 · Odpowiedzi: 1 · Wyświetleń: 321

emp
Napisane: 20.08.2009, 12:47:46





Grupa: Zarejestrowani
Postów: 195
Dołączył: 12.01.2006
Skąd: Gotham City

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

Przy użyciu prototype.js , ale nad tym trzeba jeszcze popracować
Jeżeli chcemy przeciągać jakąs warstwe musi ona być w strykturze html ze stylem position abolute i indentyfikatorem
Nastepnie wystarczy wywolac metode ustaw_warstwe_jako_plywajaca( "id_notatki" ) ;

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  4. <script language="javascript" type="text/javascript" src="prototype.js"></script>
  5.  
  6. </head>
  7. <body>
  8. <script language="javascript">
  9. var ElementPrzeciagany = null ;
  10. var IloscWarstw = 0 ;
  11.  
  12. Event.observe( document, 'mouseup' , zabron_przeciagac, false );
  13. Event.observe( document, 'mousemove', przeciagaj, false);
  14.  
  15. function zabron_przeciagac( zdarzenie )
  16. {
  17. if( ElementPrzeciagany != null )
  18. {
  19. ElementPrzeciagany.style.opacity = 1 ;
  20. ElementPrzeciagany = null ;
  21. }
  22. }
  23.  
  24. function przeciagaj( zdarzenie )
  25. {
  26. if( Event.isLeftClick( zdarzenie ) )
  27. {
  28. if( ElementPrzeciagany != null )
  29. {
  30. if( ElementPrzeciagany.getAttribute('plywajacy') != null )
  31. {
  32. var myszx = Event.pointerX( zdarzenie )-10 ;
  33. var myszy = Event.pointerY( zdarzenie )-5 ;
  34.  
  35. var przesuniecieX = myszx - ElementPrzeciagany.myszx ;
  36. var przesuniecieY = myszy - ElementPrzeciagany.myszy ;
  37.  
  38. ElementPrzeciagany.style.top = przesuniecieY+"px" ;
  39. ElementPrzeciagany.style.left = przesuniecieX+"px" ;
  40.  
  41. }
  42. }
  43. }
  44. }
  45.  
  46. function pozwol_przeciagac( zdarzenie )
  47. {
  48. if( Event.isLeftClick( zdarzenie ) )
  49. {
  50. var element = Event.element( zdarzenie );
  51.  
  52. while( element.getAttribute('plywajacy') == null )
  53. {
  54. element = element.parentNode ;
  55. }
  56.  
  57. element.style.opacity = 0.7 ;
  58.  
  59. element.myszx = Event.pointerX( zdarzenie ) - element.offsetLeft ;
  60. element.myszy = Event.pointerY( zdarzenie ) - element.offsetTop ;
  61.  
  62. ElementPrzeciagany = element ;
  63.  
  64. element.style.zIndex = ++IloscWarstw ;
  65. }
  66. }
  67.  
  68. function ustaw_warstwe_jako_plywajaca( id )
  69. {
  70. $( id ).setAttribute("myszx", 0 ) ;
  71. $( id ).setAttribute("myszy", 0 ) ;
  72. $( id ).setAttribute("plywajacy", "true" ) ;
  73. $( id ).setAttribute("minimalizacja", "false" ) ;
  74.  
  75. Event.observe( id, 'mousedown', pozwol_przeciagac, false);
  76. IloscWarstw ++ ;
  77. }
  78. </script>
  79. <div id="id_notatki" style="top:50px;left:50px;cursor:move;border-style:solid;border-width:1px;position:absolute;width:300px;height:300px;background-color:rgb(250,0,0)"></div>
  80. <script language="javascript">
  81. ustaw_warstwe_jako_plywajaca( "id_notatki" ) ;
  82. </script>
  83. </body>
  84. </html>


Drag&Drop jest też tu Scriptaculous i proponuje raczej wykorzystać gotowy skrypt jak wyżej w poście lub ten.
  Forum: Szukam · Podgląd postu: #651159 · Odpowiedzi: 4 · Wyświetleń: 660


New Posts  Nowe odpowiedzi
No New Posts  Brak nowych odpowiedzi
Hot topic  Popularny temat (Nowe)
No new  Popularny temat (Brak nowych)
Poll  Sonda (Nowe)
No new votes  Sonda (Brak nowych)
Closed  Zamknięty temat
Moved  Przeniesiony temat
 

RSS Wersja Lo-Fi Aktualny czas: 19.06.2018 - 06:04