Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie tablic
Forum PHP.pl > Forum > PHP
_amb
Witam, dopiero zaczynam swoją przygodę z php, i potrzebuję pomocy.
Sytuacja wygląda tak, że mam taki oto skrypt do sortowania:

  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
  2. "http://www.w3.org/TR/html4/strict.dtd">
  3. <HTML>
  4. <HEAD>
  5. <TITLE>Sortowanie</TITLE>
  6. <META http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  7. <STYLE type="text/css">
  8. <!--
  9. BODY {
  10. font-family : Verdana;
  11. }
  12. TABLE {
  13. border-collapse : collapse;
  14. border : 1px black solid;
  15. }
  16. TD {
  17. border : 1px black solid;
  18. padding : 5px;
  19. }
  20. TH {
  21. border  : 1px black solid;
  22. padding : 5px;
  23. color : rgb(255,255,255);
  24. background : rgb(0,0,0);
  25.  
  26. }
  27. -->
  28. </STYLE>
  29. </HEAD>
  30. <BODY>
  31. <TABLE>
  32.  
  33. <TR>
  34. <TH>lp.</TH>
  35. <TH>Imię</TH>
  36. <TH>Nazwisko</TH>
  37. <TH>Wiek</TH>
  38. <TH>Płeć</TH>
  39. <TH>Staż pracy</TH>
  40. <TH>Pomoc</TH>
  41. </TR>
  42.  
  43. <?php
  44. $plk = file('dane.txt');
  45. $plkc  = count($plk);
  46.  
  47. $tab = array();
  48. $tab[0] = array(); //imię
  49. $tab[1] = array(); //nazwisko
  50. $tab[2] = array(); //wiek
  51. $tab[3] = array(); //płeć
  52. $tab[4] = array(); //liczba lat pracy
  53. $tab[5] = array(); //pomoc konieczna?
  54.  
  55. for ($i = 0; $i < $plkc; $i++) {
  56. $linia = explode(':', trim($plk[$i]));
  57.  
  58. $tab[0][] = $linia[0];
  59. $tab[1][] = $linia[1];
  60. $tab[2][] = $linia[2];
  61. $tab[3][] = $linia[3];
  62. $tab[4][] = $linia[4];
  63. $tab[5][] = $linia[5];
  64. }
  65.  
  66.  
  67. $tab[0], SORT_DESC, SORT_NUMERIC,
  68. $tab[2], SORT_ASC, SORT_STRING,
  69. $tab[1], SORT_ASC, SORT_STRING,
  70. $tab[3],
  71. $tab[4],
  72. $tab[5]
  73. );
  74.  
  75.  
  76. for ($i = 0; $i < $plkc; $i++) {
  77. echo "<TR>";
  78. echo "<TD>";
  79. echo $i+1;
  80. echo "</TD>";
  81. echo "<TD><CENTER><SMALL>{$tab[0][$i]}</SMALL></CENTER></TD>" .
  82.  "<TD><CENTER><SMALL>{$tab[1][$i]}</SMALL></CENTER></TD>" .
  83.  "<TD><CENTER><SMALL>{$tab[2][$i]}</SMALL></CENTER></TD>" .
  84.  "<TD><CENTER><SMALL>{$tab[3][$i]}</SMALL></CENTER></TD>" .
  85.  "<TD><CENTER><SMALL>{$tab[4][$i]}</SMALL></CENTER></TD>" .
  86.  "<TD><CENTER><SMALL>{$tab[5][$i]}</SMALL></CENTER></TD>";
  87. echo "</TR>\n";
  88. }
  89. ?>
  90.  
  91. </TABLE>
  92. </BODY>
  93. </HTML>


I dane do niego:
Cytat
7.6:0.96:YurOTS:233:Download:tak
7.6:0.94:YurOTS:235:Download:tak
7.5:0.12:BlackICE:111:Download:takAshley Rhey
7.6:1.43:Devilq:213:Download:takAsia Argento
7.1:1.42:Devilq:546:Download:tak
7.4:2.0:BKOT:12:Download:f
7.5:2.1:BKOT:23:Download:takHeather Graham


Problem polega na tym, że do danych chciałbym dodać obrazek lub link, lecz nie jest to możliwe ponieważ po znaku ":" skrypt czyta już dane jakby były z innego pola a linki przecież wyglądają w ten sposób "http://~~~~~".

Proszę więc o pomoc - co zrobić aby dodać do danych zdjęcie lub link tongue.gif?


Poprawiłem
~mike_mech
Kuziu
Mozesz najpierw zamienić w całym ciągu http:// na jakis inny ciąg a potem go odmienić po podzieleniu tablicy.

Chociaż może jest jakiś lepszy sposób.
_amb
a można jaśniej?

edit:
bo jeśli dobrze rozumiem twoje rozumowanie to nawet na logikę to nie zadziała smile.gif
Kuziu
  1. <?php
  2. $zmienna = "jakis tekst http://www.onet.pl";
  3. echo($zmienna . '<br />');
  4. $zmienna = str_replace("http:", "TYMCZASOWYTEKST", $zmienna);
  5. echo($zmienna . '<br />');
  6. $zmienna = str_replace("TYMCZASOWYTEKST", "http:", $zmienna);
  7. echo($zmienna . '<br />');
  8.  
  9. ?>


Na okres dzielenia zamieniasz http:// na TYMCZASOWYTEKST po podzieleniu powracasz do http://

Problem pojawia się gdy użytkownik wpisze sobie coś innego z dwukropkiem.

Myślę że dwukropek to troche zły znak jak na dzielnik.

Musiałbyś chyba w momencie zapisuj już zamieniać dwukropki na coś innego a przed pokazaniem ponownie je odmieniać.

No chyba że te dane są generowane przez Ciebie i wiesz że tam nie bedzie : ale to i tak troche lipa.
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.