Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php]Formularz i problem ze zbudowaniem zapytania sql
northwest
post
Post #1





Grupa: Zarejestrowani
Postów: 788
Pomógł: 1
Dołączył: 17.09.2004

Ostrzeżenie: (10%)
X----


Witam,
Mam taki kod php:
  1. <?php
  2. define('ILOSC_WYNIKOW_NA_STRONIE', 1);
  3. echo"<u><center><b><big>Sortuj po:</big></u></b></center><br><br><TABLE border =0 align=center>
  4. <TR>
  5.  <TD><b>Data dodania:</b></TD>
  6.  <TD><b>Płeć:</b></TD>
  7.  <TD><b>Zarobki:</b></TD>
  8. <TD><b>Rodzaj pracy: </b></TD>
  9. </TR>
  10.  
  11. ...
  12. ...
  13. ...
  14.  
  15. $RES = mysql_query("SELECT COUNT(*) FROM baza_szukanie_pracy WHERE id<>'0' $a1 $a2 $a3 $a4 $a5 $a6");
  16. list($iloscWpisow) = mysql_fetch_row($RES);
  17. $teraz = date("Y-n-j");
  18. if ($_POST[times]=="dzisiaj"){ $a1="and datarejestracji ='$teraz'"; }
  19. $SQL = "SELECT * FROM baza_szukanie_pracy WHERE id<>'0' $a1 $a2 $a3 $a4 $a5 $a6 ORDER BY id ASC LIMIT ".mysql_escape_string((int)$_GET['key']*ILOSC_WYNIKOW_NA_STRONIE).",".ILOSC_WYNIKOW_NA_STRONIE;
  20.  echo"$SQL";
  21. $res = mysql_query($SQL);
  22. echo"<br><small><center>Strona: </small>";
  23. if($_GET['key']>0){
  24. echo '<a href="'.($url2).'/szukajacypracy/'.($_GET['key']-1).'/strona/moduly/inne/szukajacy_pracy.html"><small>Poprzednie</small></a> ';}
  25. for($i = 0;$i<=floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE);$i++){
  26. echo '<a href="'.($url2).'/szukajacypracy/'.($i).'/strona/moduly/inne/szukajacy_pracy.html"><small>'.($i+1).'&nbsp;</small>';}
  27. if($_GET['key']<floor($iloscWpisow/ILOSC_WYNIKOW_NA_STRONIE)){
  28. echo '<a href="'.($url2).'/szukajacypracy/'.($_GET['key']+1).'/strona/moduly/inne/szukajacy_pracy.html"><small>Następne</small></a>';}
  29. echo"<br><br>";
  30. ///////////
  31. echo("<table class='styl' border='0' width='580' cellpadding='2'>");
  32. echo("<tr style=&#092;"color: #fff; background: #bbb; font-weight: bold\"><td width=\"280 align=\"left\">Stanowisko</td><td width=\"90 align=\"left\">Data rejestracji</td></tr><td width=\"25align=\"left\"></td>\n");
  33. while ($query_data = mysql_fetch_array($res)){
  34. $kolor = 0;
  35. $kolor = $kolor+1;
  36. if ($kolor % 2 == 0) echo("<tr align='center' style=\"background: #fff\">"); else echo("<tr align='center' style=\"background: #ddd\">");
  37. echo("<td width=\"280\">");
  38.  
  39.  echo"$query_data[stanowisko] <br><a href='$url2/oglview2.php?id=$query_data[id]&print=nie' target='_popup''><small> [Podgląd]</a> &nbsp;&nbsp;&nbsp; <a href='$url2/oglview2.php?id=$query_data[id]&print=tak' target='_popup''><small> [Wydruk]</a></small>";
  40.  echo("</td>");
  41.  echo("<td align=\"center\">");
  42.  echo"$query_data[datarejestracji] ";
  43.  echo("</td>");
  44.  }
  45.  
  46.  echo"</tr></table>";
  47.  
  48. }
  49. ?>


to jest troszkę skrócony kod. Ogólnie mam problem z tym że po wybraniu jakiegoś filtrowania (wyżej jest data dodania) i kliknięciu guziczka filtruj jest okey, ale jak kliknę na "numerek" (stronnicowanie) to już mi się psuje zapytanie z "filtracją" :/ jak to zrobic żeby było okey/??

Z góry dzieki za pomoc,
Northwest

Ten post edytował northwest 3.01.2008, 12:22:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Cezar708
post
Post #2





Grupa: Zarejestrowani
Postów: 1 116
Pomógł: 119
Dołączył: 10.05.2005
Skąd: Poznań

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


Cytat
  1. <?php
  2. $RES = mysql_query("SELECT COUNT(*) FROM baza_szukanie_pracy WHERE id<>'0' $_SESSION[filter]");
  3. ?>

to nie jest dobre rozwiązanie, bardzo nie bezpieczne i super podatne na SQLinjection. Jak już chcesz zapisywać coś w sesji i używać tego jako filtra to lepiej od razu sobie zdefiniować co w tym filtrze może być i TYLKO tego używać:

np:

  1. <?php
  2. $criteria = '1=1 ';
  3. foreach ( $_SESSION['filter'] as $fieldName => $value ){
  4. if ( strlen($value) ){
  5. $criteria .= " AND `$fieldName`='$value'";
  6. } 
  7. }
  8. $RES = mysql_query("SELECT COUNT(*) FROM baza_szukanie_pracy WHERE id<>'0' $criteria");
  9. ?>


Oczywiście nadal nie twierdzę, że jest to dobre rozwiązanie, ale zawsze lepsze od poprzedniego.

Ten post edytował Cezar708 3.01.2008, 12:45:47
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 15.10.2025 - 06:01