Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Sortowanie tablic
Forum PHP.pl > Forum > Przedszkole
br4tp1t
Witam jak posortowac wedlug NAZWISKA cos takiego, ponieważ potrafie posortowac tylko wedlug PRACOWID sad.gif
  1. <?php
  2.  
  3. function wyswietl_karty ($xtematid, $xselekt)
  4.  {
  5.  $btlo2=&#092;"#AFC7E8\";
  6.  $cent=&#092;"align=center\";
  7.  $img=&#092;"hspace=7 border=0\";
  8.  &#092;"<table border=0 $cent>
  9.  <tr align=center>&#092;";
  10.  echo &#092;" <td width=30 bgcolor=$btlo2><b>Lp.</b></td>
  11.  <td width=100 bgcolor=$btlo2><b>Data pracy</b></td>
  12.  <td width=200 bgcolor=$btlo2><b>Pracownik</b></td>
  13.  <td width=200 bgcolor=$btlo2><b>Kontrakt</b></td>
  14.  <td width=70 bgcolor=$btlo2><b>Stawka</b></td>
  15.  <td width=70 bgcolor=$btlo2><b>Ilość godzin</b></td>
  16.  <td width=80 bgcolor=$btlo2><b>Kwota</b></td>
  17.  <td width=50 bgcolor=$btlo2></td>
  18. &#092;";
  19.  
  20. $warunek=&#092;"where tem_dzialid = $xtematid\";
  21. //$warunek.=\" order by pracowid \";
  22. $result = czytaj_karty( $warunek);
  23. $il_rek = mysql_num_rows ($result);
  24. if ($il_rek > 0) {
  25. $lp=0;
  26.  
  27.  while($row = mysql_fetch_array($result)) {
  28. $pid=$row[&#092;"id\"];  
  29. $ppracowid=$row[&#092;"pracowid\"];
  30. $pdatapr=$row[&#092;"data_pracy\"];
  31. $popis=$row[&#092;"opis\"];
  32. $pkontraktid=$row[&#092;"kontraktid\"];
  33. $pstawka=$row[&#092;"stawka\"]; $pstawka=sprintf(\"%.2f\",$pstawka);
  34. $pilosc=$row[&#092;"ilosc\"]; $pilosc=sprintf(\"%.2f\",$pilosc);
  35. $pkwota=$row[&#092;"kwota\"]; $pkwota=sprintf(\"%.2f\",$pkwota);
  36.  
  37. $nazwa= podaj_nazwe($ppracowid);
  38. $opis_kontr = podaj_kontrakt($pkontraktid);
  39. $lp=$lp+1;
  40. $btlo = kolor($btlo);
  41.  echo &#092;" <tr>
  42.  <td width=30 bgcolor=$btlo><b>$lp</b></td>
  43.  <td width=100 bgcolor=$btlo><b>$pdatapr</b></td>
  44.  <td width=200 bgcolor=$btlo><b><a href=&#092;"edytuj.php?id=$pid\">$nazwa</a></b></td>
  45.  <td width=200 bgcolor=$btlo align=left><b>$opis_kontr</b></td>
  46.  <td width=70 bgcolor=$btlo align=right><b>$pstawka</b></td>
  47.  <td width=70 bgcolor=$btlo align=right><b>$pilosc</b></td>
  48.  <td width=80 bgcolor=$btlo align=right><b>$pkwota</b></td>
  49.  <td width=50 bgcolor=$btlo align=right><a href=umowa.php?id=$pid><b>Drukuj<b></a></td>
  50.  </tr>&#092;";
  51. }
  52. }
  53.  echo &#092;"</table> \";
  54. }
  55.  
  56.  
  57. function czytaj_karty ($xwarunek )
  58. {
  59. $qq=&#092;"select * from sekret_karta \";
  60. $qq.=$xwarunek;
  61. $result = mysql_query($qq)
  62. or die(&#092;"Zapytanie '$qq' jest niepoprawne: \" . mysql_error());;
  63. return ($result);
  64. }
  65.  
  66. function podaj_nazwe($xpracowid)
  67. {
  68. $warunek=&#092;"where madarid=$xpracowid limit 1\" ;
  69. $result = czytaj_pracownika ($warunek);
  70. $il_rek = mysql_num_rows ($result);
  71. if ($il_rek > 0) {
  72.  while($row = mysql_fetch_array($result)) {
  73. $pnazwisko=$row[&#092;"nazwisko\"];
  74. $pimie=$row[&#092;"imie\"];
  75.  }
  76. $nazwa= $pnazwisko.' '.$pimie;
  77. return $nazwa;
  78. }
  79. else return 0;
  80. }
  81.  
  82. ?>
nospor
Dobrze że napisałeś "coś takiego" bo faktycznie nie wiadomo co to ma być. Za dużo informacji to tez nie zawsze pomaga (a raczej dużo skryptu, bo informacji to tu mało). Czy to wszystko jest nam do szczęścia i do rozwiązania problemu potrzebne?

A nie możesz poprostu w zapytaniu dac '... order by NAZWISKO'? Słyszałeś wogóle o czymś takim jak order by?
jacu
Co chcesz sortować wg nazwiska? Podałeś tu trzy różne funkcje.
I gdzie są zapisane nazwiska?
br4tp1t
oki juz tlumacze slyszalem o ORDER BY NAZWISKO tylko ze jesli czytales skrypt to w jednej tabeli sa karty pracy i tam sa podane PRACOWID a nie nazwiska i imiona pracownikow . W petli sprawdza jaki pracownik (imie + nazwisko) pasuje do jego id. Czyli W jednej talicy mamy wszystkie dane bez nazwiska i imienia a w drugiej mamy imie i nazwisko plus dodatkowe dane. Wiec nie sadze ze dalem za duzo danych poniewaz jedna funkcja jest do wyswietlania kart pracy a druga do sprawdzania jaki pracownik pasuje do pracowid troche zakrecone ale prosciej nie ptorafie wytlumaczyc
nospor
oki, wporzo, a czy słyszales o wykorzystywaniu w zapytaniu danych z wielu tabel?

przykladowa struktura podobna do twojej:
tabela1
pola: id, bla, bla2, PRACOWID (klucz obcy do tabela2)

tabela2
pola: id, imie, nazwisko

zapytanie:
  1. SELECT *
  2. FROM tabela1 t1, tabela2 t2 WHERE t1.PRACOWID = t2.id ORDER BY t2.nazwisko
br4tp1t
dzieki chyba o cos takiego mi chodzi tylko jeszcze nie wiem dokladnie jak to zapytanie napisac moglbys mi napisac to troszke jasniej lub gdzie moge o takim czyms szukac?
nospor
Wydaję mi się że napisalem wmiarę jasno. POdalem ci strukturę tabel, podalem ci zapytanie. No ale cóż.

t1, t2 - to aliasy tabela1, tabela2

t1.PRACOWID = t2.id - przez ten warunek łączysz tabela1 z tabela2
order by t2.nazwisko - to już chyba wiesz.

A gdzie szukać ? w manualu do mysql (zapytania z kilku tabel)?
lub u nas na fourm mysql - bylo full razy
br4tp1t
dobra WILKIE DZIEKI biggrin.gif dziala
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.