Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Kod php - uproszczenie
kill15
post 1.05.2011, 10:36:48
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 14
Dołączył: 21.12.2010

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


Napisałem taki kod:
  1. while($nwyb1 = mysql_fetch_assoc($wszystkie))
  2. {
  3.  
  4. if($nwyb1[nazwa] == $infok)
  5. {
  6. echo " <option value=\"$nwyb1[nazwa]\" selected=\"selected\" />$nwyb1[nazwa]</option>";
  7. }
  8. elseif(!isset($infok))
  9. {
  10. if(!isset($spr))
  11. {
  12. $spr = 'istnieje';
  13. echo " <option value=\"\" selected=\"selected\" /></option>";
  14. echo " <option value=\"$nwyb1[nazwa]\" />$nwyb1[nazwa]</option>";
  15. }
  16. }
  17. else
  18. {
  19. if(!isset($spr))
  20. {
  21. $spr = 'istnieje';
  22. echo " <option value=\"\" /></option>";
  23. }
  24. echo " <option value=\"$nwyb1[nazwa]\" />$nwyb1[nazwa]</option>";
  25. }
  26. }


On działa ale czy dało by się to jakoś uprościć questionmark.gif
Wg mnie ten kod nie jest zbyt dobry.
Jak można zauważyć chodzi mi tu o puste pole (option) w pętli no i oczywiście select do tego ;>

Ten post edytował kill15 1.05.2011, 10:38:54
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
darko
post 1.05.2011, 11:47:32
Post #2





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Nie
  1. echo " <option value=\"$nwyb1[nazwa]\" selected=\"selected\" />$nwyb1[nazwa]</option>";

a
  1. echo "<option value=\"" . $nwyb1['nazwa'] . "\" selected=\"selected\" />" . $nwyb1['nazwa'] . "</option>";

i analogicznie dalej.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
kill15
post 1.05.2011, 12:44:53
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 14
Dołączył: 21.12.2010

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


Czy to zwiększy jakoś bezpieczeństwo kodu??
Go to the top of the page
+Quote Post
Spawnm
post 1.05.2011, 12:47:51
Post #4





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




@Darko -
nie
  1. echo "<option value=\"" . $nwyb1['nazwa'] . "\" selected=\"selected\" />" . $nwyb1['nazwa'] . "</option>";

tylko
  1. echo '<option value="' . $nwyb1['nazwa'] . '" selected="selected" />'. $nwyb1['nazwa'] . '</option>';

Go to the top of the page
+Quote Post
darko
post 1.05.2011, 13:05:02
Post #5





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


@Spawnm: Można i tak i tak, nie ma większej różnicy, chociaż Twoja wersja ładniej wygląda i powinno się ją stosować.
@kill15: nie chodzi o bezpieczeństwo, ale o poprawne wyświetlenie danych; zakładając że nie masz nigdzie zdefiniowanej stałej nazwa, sprawdź różnicę (var_dump) pomiędzy zapisem:
$nwyb1[nazwa]
a
$nwyb1['nazwa']

Ten post edytował darko 1.05.2011, 13:07:18


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post
Spawnm
post 1.05.2011, 14:02:21
Post #6





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Darko - jest różnica, dając " " informujesz php że mogą w stringu występować zmienne, czyli kod jest wolniejszy od ''.

Co do kodu który pokazał ~kill15 warto dodać że tablice w "" obejmujemy {}.
Go to the top of the page
+Quote Post
Bags_Bunny
post 1.05.2011, 14:03:19
Post #7





Grupa: Zarejestrowani
Postów: 262
Pomógł: 39
Dołączył: 12.04.2004

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


@darko: jeśli:
  1. echo "<option value=\"" . $nwyb1['nazwa'] . "\" selected=\"selected\" />" . $nwyb1['nazwa'] . "</option>";

to czemu nie po prostu:
  1. echo "<option value=\"{$nwyb1['nazwa']}\" selected=\"selected\" />{$nwyb1['nazwa']}</option>";

Jaki jest tutaj sens konkatenacji, skoro zmienne są parsowane wewnątrz cudzysłowów?

Kod Spawnma jest najczystszy, najprostszy i nie wprowadza zbędnego zamieszania. To jest różnica. Uczmy początkujących dobrych nawyków.


--------------------
rm -rf /*
Go to the top of the page
+Quote Post
darko
post 1.05.2011, 14:14:37
Post #8





Grupa: Zarejestrowani
Postów: 2 885
Pomógł: 463
Dołączył: 3.10.2009
Skąd: Wrocław

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


Ja nie neguję tego, co napisał @Spawnm, wręcz się z tym zgadzam. Kod w poście sformatowałem tak, a nie inaczej (czyt. lepiej) z czystego lenistwa, przerabiając fragment podany przez autora tematu. Nie prowadźmy sporu o pietruszkę.


--------------------
Nie pomagam na pw, tylko forum.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 25.07.2025 - 10:47