Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

8 Stron V   1 2 3 > » 

Tomplus
Napisane: 7.12.2019, 10:55:51





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Sądzę że chodzi ci o to, tu biblioteka która wyświetla powiadomienia.

https://pushjs.org/#
  Forum: Przedszkole · Podgląd postu: #1248191 · Odpowiedzi: 2 · Wyświetleń: 89

Tomplus
Napisane: 3.12.2019, 12:37:13





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

@Daiszman
to co wskazuje Ci strona WWW to prawidłowa treść tego co napisałeś wyżej.

Pierwsze co powinieneś się nauczyć to jak pracuje się na stringach w PHP.

Przykład:

  1. <?php
  2. /*
  3. jakiś blok kodu
  4. */
  5.  
  6. echo "<a href='http://strona.pl'>Jakaś strona</a>";
  7.  
  8. $zmienna = true;
  9.  
  10. echo "<a href='http://strona2.pl' ".( ($zmienna == true ) ? 'target=\'_blank\'' : '') .">Jakaś strona 2</a>";
  11. //lub
  12.  
  13. echo "<a href='http://strona2.pl'";
  14. if($zmienna == true) {
  15. echo 'target=\'_blank\''
  16. }
  17. echo '>Jakaś strona 2</a>';


  1. <?php
  2. /*
  3. jakiś blok kodu
  4. */
  5. ?>
  6. <a href='http://strona2.pl' <?php if($zmienna == true) { echo 'target=\'_blank\'' } ?> >Jakaś strona 2</a>


Teraz sobie wywnioskuj z moich przykładów co u Ciebie jest źle.

  Forum: Przedszkole · Podgląd postu: #1248071 · Odpowiedzi: 24 · Wyświetleń: 459

Tomplus
Napisane: 5.12.2019, 15:58:23





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Spójrz na swój kod ponownie, a konkretnie na fragment:

  1. do_koszyka(false);
  2. $akcesoria=$_SESSION['koszyk']['akcesoria'];
  3. usun_koszyk($akcesoria);


najpierw przypisujesz koszyk do zmiennej $akcesoria, a potem usuwasz z sesji klucz z tablicy.

Czyli nie wciąż do dalszego kodu używasz tylko i wyłącznie to co jest w $akcesoria. Wartość z funkcji usun_koszyk() będzie dopiero po przeładowaniu, bo tam modyfikujesz wartość sesyjną.
  Forum: Przedszkole · Podgląd postu: #1248165 · Odpowiedzi: 10 · Wyświetleń: 282

Tomplus
Napisane: 30.11.2019, 18:33:24





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Kod
display: inline;


Używasz DevTools jaką zapewniają przeglądarki?
Mógłbyś sam sprawdzić na żywo zmiany w CSS aby przyniosły efekt przy różnych wartościach atrybutów.

  Forum: Przedszkole · Podgląd postu: #1248006 · Odpowiedzi: 2 · Wyświetleń: 135

Tomplus
Napisane: 28.11.2019, 07:11:17





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Taki kod uzupełni Ci tabelę na dni na cały rok.
  1. INSERT INTO mytable (date)
  2. SELECT
  3. DATE_ADD('2019-01-01', INTERVAL t.n DAY)
  4. FROM (
  5. SELECT
  6. a.N + b.N * 10 + c.N * 100 AS n
  7. FROM
  8. (SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) a
  9. ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9) b
  10. ,(SELECT 0 AS N UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7) c
  11. ORDER BY n
  12. ) t
  13. WHERE
  14. t.n <= TIMESTAMPDIFF(DAY, '2019-01-01', '2019-12-31');


źródło: https://stackoverflow.com/questions/2549394...rom-an-interval
  Forum: Przedszkole · Podgląd postu: #1247926 · Odpowiedzi: 2 · Wyświetleń: 112

Tomplus
Napisane: 22.11.2019, 14:02:14





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

IDENTYFIKATOR - w skrócie `id` - zwykle unikalne, nie zmienialne liczbowe określenie pojedynczej jednostki zasobu.

U Ciebie opis wcześniej czy później możesz zmienić np. stwierdzisz że w opisie musi być autor, marka etc, albo stwierdzisz że będziesz musiał wyświetlić skróconą nazwę.

Dzięki używaniu ID, nie musisz się przejmować nazwami. Czytelniejszy jest odczyt i zapis, następnie tworzenie potencjalnych statystyk sprzedaży.


  Forum: Przedszkole · Podgląd postu: #1247791 · Odpowiedzi: 26 · Wyświetleń: 788

Tomplus
Napisane: 14.11.2019, 22:10:33





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Dlaczego uważasz, że to błąd parsera skoro jest to element który jest wytłumaczony nawet w manualu PHP?

https://www.php.net/manual/en/functions.user-defined.php

Parser znajduje wszystkie funkcje które nie są uwarunkowane i one działają. Uwarunkowane muszą poczekać przed wywołaniem.

  Forum: PHP · Podgląd postu: #1247600 · Odpowiedzi: 13 · Wyświetleń: 335

Tomplus
Napisane: 21.10.2019, 14:07:35





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Nazwa po polsku brzmi dziwnie biggrin.gif

Powiem szczerze że jest bardzo użyteczne narzędzie. Sądzę że skorzystam z niego wiele razy.
Na tą chwilę jedynej rzeczy jakiej mi brakuje to resetu, oczyszczenie zaznaczonych pól.
  Forum: Oceny · Podgląd postu: #1247168 · Odpowiedzi: 11 · Wyświetleń: 1 071

Tomplus
Napisane: 10.10.2019, 18:45:43





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

  1. preg_match("/{$CensorList[$i]}([^a-zA-Z0-9])/", $EditedMessage, $Results);
  Forum: Przedszkole · Podgląd postu: #1246935 · Odpowiedzi: 4 · Wyświetleń: 301

Tomplus
Napisane: 19.09.2019, 11:01:47





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Wciąż możesz korzystać z własnego serwera, ale przy wersji darmowej masz: Core editor + core plugins

Czyli jeżli nie potrzbujesz wodotrysków dodatkowych to wciąż bez problemu możesz używać:
https://www.tiny.cloud/pricing/
  Forum: Hydepark · Podgląd postu: #1245585 · Odpowiedzi: 6 · Wyświetleń: 529

Tomplus
Napisane: 18.09.2019, 10:15:39





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Coś takiego?
  1. SELECT (G.sila* G.szybkosc) iloczyn FROM turniej T INNER JOIN gracze G ON G.id = T.graczId ORDER BY iloczyn DESC;
  Forum: Przedszkole · Podgląd postu: #1245532 · Odpowiedzi: 5 · Wyświetleń: 225

Tomplus
Napisane: 18.09.2019, 10:31:50





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Oba stringi są takie same mówisz o $password_trim?
Sprawdź czy mysqli_real_escape_string($conn, $password_trim) jest takie samo?
  Forum: PHP · Podgląd postu: #1245535 · Odpowiedzi: 12 · Wyświetleń: 307

Tomplus
Napisane: 17.09.2019, 12:53:22





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Możesz nam powiedzieć jaki typ jest teraz?
Autoincrement używa się do typów INT a nie stringów.
jeżelu chcesz sekwencję to ustaw sobie dwie kolumny gdzie jedna to ID z AI, a druga string podczas zapytania użyj CONCAT(`id`, '-', `drugaInformacja`)
  Forum: MySQL · Podgląd postu: #1245504 · Odpowiedzi: 12 · Wyświetleń: 549

Tomplus
Napisane: 30.08.2019, 06:10:21





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Nie musi nic pokazywać. Zamknął w <form> wszystkie input-hidden więc wiadomo, że formularz po wysłaniu będzie odczytywał ostatnią taką zmienną.

@peperoni
Zamiast input-submit daj button-submit. Jest to lepsze rozwiązanie, i pominiesz problem który masz wyżej:
  1. echo "<td> <button type='submit' class='btn btn-primary btn-block' name='idusun' value='".$row->id."'>usuń</button> </td>";

Teraz nie potrzebujesz input-hidden, a wartość _POST[idusun] zostanie poprawnie przesłana jednym kliknięciem.

Dobrym zwyczajem jest zamykanie w cudzysłowie podwójne lub pojedyńcze wartości atrybutów tagów HTML.
  Forum: MySQL · Podgląd postu: #1244758 · Odpowiedzi: 6 · Wyświetleń: 514

Tomplus
Napisane: 27.08.2019, 12:32:14





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Skoro chcesz się dalej uczyć, możesz zacząć od zabawy np. tutaj: https://www.codingame.com

Trudne zadania programistyczne.
  Forum: Przedszkole · Podgląd postu: #1244620 · Odpowiedzi: 1 · Wyświetleń: 184

Tomplus
Napisane: 8.08.2019, 11:52:20





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

  1. $result = mysqli_query($link, "SELECT * FROM newsletter WHERE id='$id'");
  2. $row = mysqli_fetch_assoc($result);
  3. $imie = $row['imie'];
  4. $nazwisko = $row['nazwisko'];
  5. $email = $row['email'];
  Forum: Przedszkole · Podgląd postu: #1244112 · Odpowiedzi: 2 · Wyświetleń: 287

Tomplus
Napisane: 7.08.2019, 08:14:39





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

I widzisz, jak bezmyślnie skopiowałeś mój kod.
Powiedz mi, gdzie ja tą pętlą while okalam kod HTML?

Pierwsza pętla, while ma na celu stworzenie poprawną tablicę: $listaUzytkownikow

A potem masz swoją pętlę while gdzie masz także tablicę $lista i własnie w linii 13. - do tej Twojej zmiennej tablicy kieruję się umieszczając foreach($listaUzytkownikow[$lista['ranga_id']])

Zresztą błędy także dużo mówią. Czyli skoro ja tworzę tablicę gdzie są odpowiednie klucze, a potem Ty odnosisz się do jeszcze nie utworzonych rekordów tablicy, to wywala błąd.


Postaraj się dobrze nazywać zmienne:
Ja np. $sql1 nazwałem jako $listaUzytkownikowSql - czyli wiem że zapytanie ma pobrać tylko i wyłącznie listę użytkowników z tablicy.

$sql - powinno nazywać sie $listaGrupSql albo $listaRangSql albo $listaPoziomowSql - wiesz później że ta tablica zawiera zapytanie które pobierze Ci tylko statusy rang użytkowników.


  Forum: Przedszkole · Podgląd postu: #1244054 · Odpowiedzi: 5 · Wyświetleń: 227

Tomplus
Napisane: 6.08.2019, 05:21:24





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Problem w tym że tworzysz to jako jedna tabela, a powinieneś mieć dwie.
Jedna tabela zawiera jedynie rangi, a druga listę administratorów.

Ale jak już robisz tak jak robisz to:



  1. $listaUzytkownikowSql = "SELECT nick, skin, id_rangi FROM Administracja WHERE id_rangi > 0"; //$sql1
  2. $listaUzytkownikowQuery = mysqli_query($conn,$listaUzytkownikowSql );
  3. while($lista = mysqli_fetch_array($listaUzytkownikowQuery)){
  4. $listaUzytkownikow[$lista['id_rangi']][] = $lista;
  5. }



wtedy w linii 14 dodasz zamiast
  1. while($cos = mysqli_fetch_array($res_data1)){


  1. foreach($listaUzytkownikow[$lista['ranga_id']] as $ranga_id => $dane) {
  2. // .... pętla z użytkownikami np. $dane['nick']
  3. }
  Forum: Przedszkole · Podgląd postu: #1244032 · Odpowiedzi: 5 · Wyświetleń: 227

Tomplus
Napisane: 5.08.2019, 16:09:36





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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


Spróbuj użyć funkcji GROUP_CONCAT() w mySQL.

  1. SELECT ckk, GROUP_CONCAT(nr_fabryczny), data_przegladu, adres FROM przeglad WHERE ckk = 121 GROUP BY ckk;
  Forum: PHP · Podgląd postu: #1244026 · Odpowiedzi: 4 · Wyświetleń: 568

Tomplus
Napisane: 21.06.2019, 08:09:08





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Wypalenie przychodzi w każdym zawodzie. Mnie także to spotyka. Że mimo że się dokształcam, to czuję że stoję w miejscu. Dlatego ja np. uczę się Pythona.
  Forum: Hydepark · Podgląd postu: #1242858 · Odpowiedzi: 61 · Wyświetleń: 5 352

Tomplus
Napisane: 17.06.2019, 13:28:23





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

  1. forach($array['status'] as $k => $v) {
  2. $status[$v][] = ['id' => $array['sid'][$k], 'waga' => $array['waga'][$k] ] ;
  3. }
  Forum: PHP · Podgląd postu: #1242776 · Odpowiedzi: 9 · Wyświetleń: 446

Tomplus
Napisane: 16.06.2019, 08:54:31





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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


zmienne dodane w {} na 100% działają, musisz coś psuć z apostrofami.

nie będzie działać jeżeli zrobisz:

  1. $sql = 'SELECT * FROM table WHERE name = "'{$Config->getUsername()}'";';


ale będzie działać tak:


  1. $sql = 'SELECT * FROM table WHERE name = '."'{$username}'".';';
  2. //albo
  3. $sql = "SELECT * FROM table WHERE name = '{$username}';"
  4. //albo
  5. $sql = "SELECT * FROM table WHERE name = '{$Config->getUsername()}';";


Możliwości jest więcej, chociaż najlepiej bindować zapytania SQL czy stworzyć zapytanie typu, które jest bezpieczne

  1. $sth = $dbh->prepare('SELECT * FROM table WHERE name = ?;');
  2. $sth->bindParam(1, $username);
  3. $sth->execute();
  Forum: MySQL · Podgląd postu: #1242740 · Odpowiedzi: 5 · Wyświetleń: 1 030

Tomplus
Napisane: 14.05.2019, 17:43:01





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

tak jak napisałem funckja isLogin() powinna zwracać albo true albo false, a nie `echo`


  1. function isLogin()
  2. {
  3. isset($_SESSION['succes-user']) ? unset ($_SESSION['succes-user']):null;
  4. if(isset($_SESSION['zalogowany']) && isset($_SESSION['zalogowany']) == true)
  5. {
  6. return true;
  7. }
  8. return false;
  9. }


Tzn. echo też może jak potrzebujesz prześledzić działanie funkcji.

W ogóle w takich miejscach krócej jest użyć coś takiego, bez żadnych ifów, klamerek

  1. <li><a href="#">Profil <?php echo isLogin() ? $_SESSION['user'] : "Gość"; ?></a></li>
  Forum: Przedszkole · Podgląd postu: #1241335 · Odpowiedzi: 7 · Wyświetleń: 261

Tomplus
Napisane: 6.05.2019, 06:11:32





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

j.w.

tylko to samo z www.strona.pl i strona.pl
Technicznie są to dwie różne strony, dlatego proponowałbym wykonać aby dla www.strona.pl było zawsze przekierowanie 301 na strona.pl, wtedy nie będziesz posługiwał się różnymi adresami.
  Forum: Przedszkole · Podgląd postu: #1240550 · Odpowiedzi: 4 · Wyświetleń: 265

Tomplus
Napisane: 4.05.2019, 09:58:45





Grupa: Zarejestrowani
Postów: 1 561
Dołączył: 20.03.2005
Skąd: Będzin

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

Funkcje i klasy anonimowe używasz tam gdzie nie ma potrzeby tworzenia osobnej funkcji, głównie gdy

  1. function isEven($val) {
  2. return $val % 2 == 0;
  3. }
  4. $arr_even = array_filter($arr, 'isEven');
  5.  
  6. function square($val) {
  7. return $val * $val;
  8. }
  9. $arr_square = array_map('square', $arr);


zamiast tego mozesz użyć coś takiego:

  1. $arr = range(0, 10);
  2. $arr_even = array_filter($arr, function($val) {
  3. return $val % 2 == 0;
  4. });
  5.  
  6. $arr_square = array_map(function($val) {
  7. return $val * $val;
  8. }, $arr);


Oczywiście to są proste przykłady, ale dzięki temu nie musisz przejmować się że nazwa funkcji bądź klasy będą powtarzalne w przestrzeni nazw.

W manualu możesz jeszcze coś takiego spotkać:


  1. $greet = function($name)
  2. {
  3. printf("Hello %s\r\n", $name);
  4. };
  5.  
  6. $greet('World');
  7. $greet('PHP');


Czyli coś w stylu zmiennej w zmiennej.

Większość rzeczy korzysta się gdy zachodzi taka potrzeba, więc lepiej mieć narzędzie, niż nie mieć go w ogóle.

materiały do poczytania:
https://www.php.net/manual/en/functions.anonymous.php
https://stackoverflow.com/questions/2412299...unctions-in-php


  Forum: PHP · Podgląd postu: #1240505 · Odpowiedzi: 3 · Wyświetleń: 314

8 Stron V   1 2 3 > » 

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: 12.12.2019 - 17:37