Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Poprawna metoda pisania
Forum PHP.pl > Forum > PHP
slawo
Witam, mam takie pytanie. Która wersja jest poprawna. (obie działają)
  1. <?php
  2.  
  3. $ostatnio_pobrane = mysql_query("SELECT * FROM albumy_pobrania ORDER BY id DESC LIMIT 5")
  4. or die('');
  5.  
  6. while($op = mysql_fetch_assoc($ostatnio_pobrane)) {
  7.  
  8. $album_op = mysql_query("SELECT * FROM albumy WHERE id='".$op['album']."'")
  9. or die('');
  10.  
  11. while($aop = mysql_fetch_assoc($album_op)) {
  12. ?>
  13. <div id="tresc">
  14.  
  15. <a href="album/<?php echo "".$aop['url']."_".$aop['rok']."_".$aop['wydanie']."_".$aop['id']."";?>.html">
  16. <img width="35" height="35" src="okladki/<?php echo "".$aop['okladka']."";?>" align="left" vspace="2" border="0"></a>
  17. <b><?php echo "".$aop['grupa']."";?></b> - <a href="album/<?php echo "".$aop['url']."_".$aop['rok']."_".$aop['wydanie']."_".$aop['id']."";?>.html"><?php echo "".$aop['tytul']."";?></a>
  18. <span class="details2"><br> pobrał: <a href="<?php echo "pokaz_profil.php?user=".urlencode($op['login'])."";?>"><b><?php echo "".$op['login']."";?></b></a> data: <b><?php echo "".$op['data']."";?></b></a></span>
  19. </div>
  20. <?php
  21. }
  22. }
  23. ?>



  1. $ostatnio_pobrane = mysql_query("SELECT * FROM albumy_pobrania ORDER BY id DESC LIMIT 5")
  2. or die('');
  3.  
  4. while($op = mysql_fetch_assoc($ostatnio_pobrane)) {
  5.  
  6. $album_op = mysql_query("SELECT * FROM albumy WHERE id='".$op['album']."'")
  7. or die('');
  8.  
  9. while($aop = mysql_fetch_assoc($album_op)) {
  10.  
  11.  
  12.  
  13. echo "<table border=2 width=100% style='border-collapse: collapse' bgcolor=#FAF8F8 bordercolor=#FFFFFF>
  14. <tr>
  15. <td>";
  16.  
  17. echo "<a href=album/".$aop['url']."_".$aop['rok']."_".$aop['wydanie']."_".$aop['id'].".html><img width=35 height=35 src="."okladki/".$aop['okladka']." align=left vspace=2 border=0></a>";
  18. echo "<b>&nbsp;<font size=2 face=arial>".$aop['grupa']."</font></b> - ";
  19. echo "&nbsp;<a href=album/".$aop['url']."_".$aop['rok']."_".$aop['wydanie']."_".$aop['id'].".html style='text-decoration: none'><font size=2 face=arial color=black>".$aop['tytul']."</font></a>";
  20. echo "&nbsp;";
  21. echo "<br>&nbsp;<font size=1 face=verdana color=grey>pobrał:</font> <a href=pokaz_profil.php?user=".urlencode($op['login'])." style='text-decoration: none'><font size=1 face=verdana color=grey><b>".$op['login']."</b></font></a> <font size=1 face=verdana color=grey>data:</font> <font size=1 face=verdana color=grey><b>".$op['data']."</b></font></a>";
  22.  
  23.  
  24. echo "</td>
  25. </tr>
  26. </table>";
  27.  
  28. }
  29. }
Hpsi
W każdej cześci po zapytaniu or die(''); jest złym nawykiem bo nie widzisz błedu mysql smile.gif
Powiem Ci , że wg mnie wygoniejsza jest druga wersja - ja bym podobnie napisał, tylko troszkę bezensu w każdej lini robić echo , skoro można to zrobić wszystko w jednym. Pozatym zamiast cudzysłowi powinno się używać apostrofów
tehaha
obie wersje są tragiczne:
1. nigdy nie rób zapytania w pętli, to jest jeden z najgorszych możliwych błędów -> numery albumów z pierwszego zapytania zapisz do tablicy a w drugim zapytaniu pobierz od razu wszystkie używając konstrukcji WHERE id IN(1,2,3)
2. jeżeli Twoje pytanie dotyczyło tego czy parametry lepiej dawać w echo czy <?php echo ?> to wybieraj to co jest w danym przypadku bardziej czytelne i wygodne, akurat tutaj będzie to druga metoda
3. jak robisz echo z cudzysłowem to nie musisz z niego wychodzić, żeby wstawić zmienną możesz użyć nawiasu klamrowego:
  1. echo "<a href='{$aop['url']}' title='{$aop['url']}'"
i możesz też to wszystko wrzucić w jedno echo, po co robić 6 jedno pod drugim
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.