Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

11 Stron V   1 2 3 > » 

SmokAnalog
Napisane: 8.11.2020, 18:47:42





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Jak chcesz na szybko:

  1. if($row['category'] == 35 || $row['category'] == 38) {
  Forum: Przedszkole · Podgląd postu: #1253604 · Odpowiedzi: 2 · Wyświetleń: 277

SmokAnalog
Napisane: 7.11.2020, 21:52:09





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Pogooglałem chwilę i nie powinno być tak?

  1. <div class="users" *ngFor="let user of users | slice:0:visibleUsers">
  Forum: Przedszkole · Podgląd postu: #1253590 · Odpowiedzi: 15 · Wyświetleń: 631

SmokAnalog
Napisane: 4.11.2020, 20:54:02





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Możesz wprost zapisać w sesji numer aktualnego kroku i na tej podstawie wyświetlać. Ten pomysł ze switchem to tylko jedna z możliwości. Możesz też po prostu wczytać odpowiedni widok w jednej linii, np.:

  1. require 'views/steps/' + $_SESSION['step'] + '.php';
  Forum: Przedszkole · Podgląd postu: #1253531 · Odpowiedzi: 3 · Wyświetleń: 402

SmokAnalog
Napisane: 6.11.2020, 15:31:26





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Ja bym to zrobił w CSS-ie:

  1. body {
  2. counter-reset: ingredient;
  3. }
  4.  
  5. .ingredient-count::before {
  6. counter-increment: ingredient;
  7. content: counter(ingredient);
  8. }


  1. <label class='control-label'>Składnik #<span class="ingredient-count"></span></label>


W ten sposób nic nie musisz robić po stronie JS-a, bo licznik sam o siebie zadba.
  Forum: Przedszkole · Podgląd postu: #1253563 · Odpowiedzi: 5 · Wyświetleń: 707

SmokAnalog
Napisane: 3.11.2020, 09:27:03





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Być może chodziło o to, że po usunięciu rekordów baza wstawiała następne rekordy z kolejnym ID, a nie zaczynała od nowa. Tak to działa - wartość auto increment jest zapamiętywana. Zawsze możesz ją zresetować:

  1. ALTER TABLE `tabela` AUTO_INCREMENT = 1
  Forum: Przedszkole · Podgląd postu: #1253511 · Odpowiedzi: 7 · Wyświetleń: 626

SmokAnalog
Napisane: 2.11.2020, 21:15:23





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Jeszcze raz - jak masz na przykład w bazie jakąś kolumnę z wartościami 7, 69 i 101, to po nałożeniu auto increment baza sama wie, że kolejną wartością ma być 102. Nie nie musisz robić. O to chodzi, czy chcesz ustawić jakąś inną wartość ręcznie?
  Forum: Przedszkole · Podgląd postu: #1253505 · Odpowiedzi: 7 · Wyświetleń: 626

SmokAnalog
Napisane: 2.11.2020, 20:53:09





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

W sensie chcesz dodać do bazy auto increment czy używać swojego starego sposobu? Polecam jednak używać auto increment z poziomu bazy. Jak ustawisz na kolumnie auto increment, to nic więcej nie musisz robić - baza sama wie jaka jest kolejna wartość.
  Forum: Przedszkole · Podgląd postu: #1253502 · Odpowiedzi: 7 · Wyświetleń: 626

SmokAnalog
Napisane: 28.10.2020, 12:05:44





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

To jest bardzo dobre pytanie i odpowiem z mojej dzisiejszej perspektywy.

Jest wielu programistów, którzy mają fetysz interfejsów. Uznają kod nakazujący wstrzykiwać konkretne klasy za zło. Kiedyś też dałem się na to nabrać, dopóki nie dowiedziałem się, że wiele języków, w tym nawet Python, po prostu... nie mają czegoś takiego jak interfejs. Zrozumiałem, że wszystko trzeba robić z głową i nie masturbować się kodem.

That being said, interfejsy czasem są naprawdę super. Szczególnie, gdy testujesz swój kod lub naprawdę piszesz jakieś klasy, które będą używane w wielu projektach. Zawsze zadaj sobie pytanie, czy na pewno jest konieczne, żeby wiele różnych typów obiektów korzystało z tej klasy? Najczęściej odpowiedź brzmi "nie". Wtedy nie ma nic złego w type-hintowaniu po klasie. Ale gdy już nie jest to tak oczywiste, wtedy warto rozważyć stworzenie interfejsu i wstrzykiwanie po nim. Daje to więcej elastyczności, ale tak jak powiedziałem - nie zawsze jest potrzebne, a nie chcemy przerostu formy nad treścią.

Bardzo ciekawie sprawę rozwiązuje Laravel. Gdy masz type hint, duża część frameworka automatycznie szuka tej konkretnej klasy/interfejsu w kontenerze. Czyli np. jeśli masz metodę, która ma type hint na interfejs App\Contracts\Creature (w Laravelu interfejsy nazywa się kontraktami), to framework sprawdza czy nie przypisałeś czegoś do kontenera pod nazwą App\Contracts\Creature. Jest to genialne, znowu, przy testowaniu. Wystarczy w środowisku testowym określić, że domyślnie za App\Contracts\Creature jest podstawiona jakaś atrapa obiektu, dzięki czemu cała aplikacja może korzystać tymczasowo z określonej instancji. Testowanie to główne zastosowanie całej tej zabawy w interfejsy.
  Forum: Przedszkole · Podgląd postu: #1253421 · Odpowiedzi: 1 · Wyświetleń: 465

SmokAnalog
Napisane: 28.10.2020, 11:51:53





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

No właśnie, jakieś bajki kolega tworzy smile.gif Jak masz parametr z domyślną wartością, to przekazanie mu null nie powoduje użycia domyślnej wartości. To nie JavaScript z undefined, gdzie faktycznie tak to działa:

[JAVASCRIPT] pobierz, plaintext
  1. function foo(a = 1) {
  2. return a;
  3. }
  4.  
  5. console.log(
  6. foo(3), // 3
  7. foo(), // 1
  8. foo(undefined), // 1
  9. foo(null) // null
  10. );
[JAVASCRIPT] pobierz, plaintext


Dodam, że !empty($tryb) && $tryb != null jest trochę bez sensu, bo empty(null) to [b]true[b], więc wystarczy:

  1. if (!empty($tryb)) {


I jeszcze taka uwaga, że skoro używasz nowoczesnego PHP (?string), to polecam zamiast array() używać [].
  Forum: Przedszkole · Podgląd postu: #1253419 · Odpowiedzi: 2 · Wyświetleń: 387

SmokAnalog
Napisane: 24.10.2020, 21:16:20





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

To nie jest błąd, tylko wartość czegoś, nawet nie wiem czego.
  Forum: PHP · Podgląd postu: #1253383 · Odpowiedzi: 16 · Wyświetleń: 1 592

SmokAnalog
Napisane: 20.10.2020, 21:30:19





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Jeśli koniecznie muszą być gwiazdki, to daj elementom z gwiazdkami takie właściwości:

  1. position: relative;
  2. top: .23em;


Doszedłem do wartości .23em metodą prób i błędów - wygląda w porządku dla wszystkich wielkości czcionki.
  Forum: CSS · Podgląd postu: #1253325 · Odpowiedzi: 16 · Wyświetleń: 7 333

SmokAnalog
Napisane: 19.10.2020, 14:28:32





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Ja nie jestem zwolennikiem zapisywania w taki sposób warunków, gdy $var nie jest boolem.

Wolę tak:

  1. if ($var !== '') {/* dla string */}
  2. if ($var !== 0) {/* dla int */}
  3. if ($var !== null) {/* dla nullable */}
  4. if ($var) {/* dla bool */}


empty() używam tylko z tablicami.
  Forum: Przedszkole · Podgląd postu: #1253282 · Odpowiedzi: 11 · Wyświetleń: 814

SmokAnalog
Napisane: 16.10.2020, 14:36:30





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Masz trzy sensowne wyjścia:

1. Zabawa w przesuwanie i manipulację elementami DOM
2. SVG
3. Canvas

Ewentualnie czwarte wyjście to generowanie grafiki np. z PHP GD po każdej zmianie, ale to raczej zbyt ciężkie rozwiązanie.

Ja osobiście wolę robić takie rzeczy na DOM, bo najłatwiej to potem zmieniać. Być musiał po prostu właściwości obrazka przekształcać potem na obraz wyjściowy.

Ostatnio np. znalazłem fajny edytor CV - canva.com. Działa to też na DOM i moim zdaniem działa świetnie.
  Forum: XML, AJAX · Podgląd postu: #1253255 · Odpowiedzi: 2 · Wyświetleń: 4 815

SmokAnalog
Napisane: 14.10.2020, 12:13:07





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Ale nie wszędzie masz prepared statements. Tam, gdzie użyłeś bindParam, ładnie podstawiłeś, chociaż przyczepię się trzech rzeczy:

1. Dlaczego nazywasz pola formularza "1" i "2"?
2. Nie wiem dlaczego ludzie nadużywają bindParam(). Interesuje Cię raczej bindValue(), bo to pierwsze wiąże wartość z referencją, a nie wartością na dany moment. Poczytaj o tym.
3. PDO::PARAM_STR to domyślna wartość, możesz to pominąć, bo wiadomo, że domyślnie jest string.
  Forum: Przedszkole · Podgląd postu: #1253226 · Odpowiedzi: 2 · Wyświetleń: 355

SmokAnalog
Napisane: 7.10.2020, 17:22:36





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Ja bym zaczął od tabeli firmy:

  1. SELECT `pracownicy`.* FROM `firmy`
  2. JOIN `pracownicy` ON `pracownicy`.`id` = `firmy`.`pracownik_id`
  3. JOIN `pracownicy` AS `zwierzchnicy` ON `zwierzchnicy`.`id` = `firmy`.`pracownik_parent_id`
  4. WHERE `zwierzchnicy`.`type` = 'boss'
  5. AND `zwierzchnicy`.`status` = 1
  Forum: Przedszkole · Podgląd postu: #1253190 · Odpowiedzi: 3 · Wyświetleń: 398

SmokAnalog
Napisane: 6.10.2020, 15:21:45





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Zadanko domowe? smile.gif

Obrócić w którą stronę?

Żeby było widać tylko krawędzie, zastanów się jaki if dać w środku, żeby wypluwać gwiazdki tylko dla skrajnych wartości.
  Forum: PHP · Podgląd postu: #1253150 · Odpowiedzi: 15 · Wyświetleń: 1 892

SmokAnalog
Napisane: 4.10.2020, 23:14:10





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Niestety nie wiem jak pomóc. Nie mam pojęcia dlaczego działa w konsoli.
  Forum: Apache · Podgląd postu: #1253121 · Odpowiedzi: 18 · Wyświetleń: 5 502

SmokAnalog
Napisane: 28.09.2020, 12:52:48





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Idea jest prosta - przekazuj wartości które masz i pobieraj na tej podstawie te, które chcesz.
  Forum: PHP · Podgląd postu: #1253050 · Odpowiedzi: 1 · Wyświetleń: 685

SmokAnalog
Napisane: 16.09.2020, 19:19:36





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Wstawiłeś BROADCAST_DRIVER=pusher w .env?
  Forum: PHP · Podgląd postu: #1252856 · Odpowiedzi: 4 · Wyświetleń: 963

SmokAnalog
Napisane: 15.09.2020, 21:33:13





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Dobrze Ci intuicja podpowiada, że coś jest nie tak. Nie warto powtarzać tak dużej porcji kodu, podczas gdy tylko jego fragment jest inny. Mam na myśli te inputy.

Jeśli używasz PHP 7, to najprościej tak:

  1. <?php
  2. if(isset($_POST['confirm'])) {
  3. $_SESSION['name']= $_POST['name'];
  4. }
  5. ?>
  6. <html lang="pl">
  7. <head>
  8. <link rel="stylesheet" href="css/style.css">
  9. </head>
  10. <body>
  11. <div id="container">
  12. <form method="post">
  13. <?php for($i = 0; $i < 4; $i++): ?>
  14. <input type="text"
  15. name="name[]"
  16. placeholder="Imię i Nazwisko:"
  17. value="<?= htmlspecialchars($_SESSION['name'][$i] questionmark.gif '', ENT_QUOTES) ?>">
  18. <?php endfor ?>
  19. <br>
  20. <input type="submit" value="Zatwierdź" name="confirm">
  21. </form>
  22. </div>
  23. </body>
  24. </html>


Zauważ, że HTML z inputami pojawia się tylko raz. Jako wartość podajemy odpowiednio zakodowane $_SESSION['name'][$i] lub, jeśli to nie istnieje, pusty string. Operator questionmark.gif pojawił się w PHP 7, dlatego jeśli używasz starszej wersji, to trzeba to trochę przerobić.

P.S. W miejsce questionmark.gif wstaw dwa znaki zapytania obok siebie, bo to forum nadal nie wie kiedy wstawiać emotki, a kiedy nie.
  Forum: Przedszkole · Podgląd postu: #1252844 · Odpowiedzi: 1 · Wyświetleń: 326

SmokAnalog
Napisane: 10.08.2020, 20:49:10





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Masz $unlink() zamiast unlink().
  Forum: Przedszkole · Podgląd postu: #1252429 · Odpowiedzi: 6 · Wyświetleń: 485

SmokAnalog
Napisane: 7.08.2020, 14:09:09





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

background-color nie działa, ale background-image już tak. Możesz zastosować sztuczkę z ustawieniem tła na jeden piksel. Tutaj masz generator piksela: https://shoonia.github.io/1x1/

Z pola podpisanego CSS możesz skopiować wartość i nadać ją selektorowi option:checked, np. dla koloru żółtego będzie tak:

  1. option:checked {
  2. background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQYV2P4/5/hPwAH/QL+iVFj9AAAAABJRU5ErkJggg==);
  3. }
  Forum: Przedszkole · Podgląd postu: #1252407 · Odpowiedzi: 1 · Wyświetleń: 406

SmokAnalog
Napisane: 20.07.2020, 01:07:04





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Czasem powtórzenia nie da się uniknąć. Tak jest na przykład właśnie z odczytywaniem i zapisywaniem wartości - musisz wielokrotnie powtórzyć nazwę właściwości. Ale za to sam element mógłby sobie siedzieć w zmiennej - to powtórzenie akurat jest do naprawy.

$("#toFind").val() można zamienić na $(this).val().

I ostatnia rada - w 99% przypadków lepiej jest używać zdarzenia input zamiast keyup. Nie każdy wie o istnieniu zdarzenia input, dlatego dość często nadal można spotkać kod wykorzystujący keyup. A szkoda, bo keyup jest wywoływany nieznośnie późno.
  Forum: Przedszkole · Podgląd postu: #1252165 · Odpowiedzi: 2 · Wyświetleń: 517

SmokAnalog
Napisane: 15.11.2019, 00:31:24





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

W JavaScripcie też to masz. To się nazywa hoisting. W przypadku javascriptowych zmiennych w starym stylu (var) jest to faktycznie trochę niezręczne, ale już w przypadku funkcji niekoniecznie. Potraktuj kod jako zbiór deklaracji i instrukcji, gdzie deklaracje po prostu są, nieważne gdzie. Na tej samej zasadzie, co w klasie, gdzie kolejność metod też przecież nie ma znaczenia. Nie musi to być niewydajne, interpreter zapewne optymalizuje drugi przebieg.
  Forum: PHP · Podgląd postu: #1247602 · Odpowiedzi: 13 · Wyświetleń: 1 109

SmokAnalog
Napisane: 1.07.2019, 15:35:53





Grupa: Zarejestrowani
Postów: 1 707
Dołączył: 3.07.2012
Skąd: Poznań

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

Albo tak:

  1. $array = array_intersect_key($categoriesName, array_flip($videoCategories))


Tu masz nazwę jako klucz i ID jako wartość.
  Forum: PHP · Podgląd postu: #1243170 · Odpowiedzi: 2 · Wyświetleń: 497

11 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: 19.03.2024 - 08:31