Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Smarty i bazy danych
Forum PHP.pl > Forum > Przedszkole
olo
Witam mam taki oto skrypt:

  1. <?php 
  2. // generowanie formularza pierwszych liter nazwisk osob 
  3. $letters = array('A','B','C','Ć','D','E','F','G','H','I','J','K','L','Ł','M','N','Ń','O','P','R','S','&brvbar;','T','U','W','Z','&not;','Ż'); 
  4.  
  5. $smarty->assign('letters',$letters); 
  6. // szukanie osoby wedlug 1 lit nazwiska 
  7. if ($_GET['action'] == 'letter') { 
  8. $ids = getReadersList($db); 
  9. // pobranie danych osobowych osob zapisanych w bibliotece 
  10. $res = $db_dziek->query(&#092;"select id_rekrut_base as id, imie1, nazwisko, album from t_rekrut_base wher
    e
  11. id_rekrut_base in ($ids) and nazwisko like '\".$_POST['letters'].\"%'\"); 
  12. if (DB::isError($res)) { 
  13. echo \"select error<BR>\"; 
  14. die($res->getMessage()); 
  15. if ($res->numRows() == 0) 
  16. $names = array(); 
  17. else { 
  18. $smarty 
  19. $names = array(array('imie1'=>'Imię','nazwisko'=>'Nazwisko','album'=>'Nr albumu')); 
  20. $studentId=('id_student'=>'ID'); 
  21. for ($i=1; $i<=$res->numRows(); $i++) {  
  22. $row = $res->fetchRow(); 
  23. $names[$i] = $row; 
  24. }  
  25. $smarty->assign('names_status', 'Brak studentów'); 
  26. $smarty->assign('names', $names); 
  27. // echo '<pre>'; 
  28. // print_r($students); 
  29. // szukanie osob wedlug nr albumu lub nazwiska 
  30. elseif ($_GET['action'] == 'album' || $_GET['action'] == 'name') { 
  31. $col = $_GET['action']; 
  32. $value = trim($_POST[$col]); 
  33. if ($col == 'name') 
  34. $col = 'nazwisko'; 
  35. $ids = getReadersList($db); 
  36. $res = $db_dziek->query(\"select id_rekrut_base as id, imie1, nazwisko, album from t_rekrut_base where
  37. id_rekrut_base in ($ids) and (\".formatCondition($value, $col).\")\"); 
  38. if (DB::isError($res)) { 
  39. echo \"select error<BR>\"; 
  40. die($res->getMessage()); 
  41. if ($res->numRows() == 0) 
  42. $names = array(); 
  43. else { 
  44. $names = array(array('imie1'=>'Imię','nazwisko'=>'Nazwisko','album'=>'Nr albumu')); 
  45. for ($i=1; $i<=$res->numRows(); $i++) {  
  46. $row = $res->fetchRow(); 
  47. $names[$i] = $row; 
  48. }  
  49. $smarty->assign('names_status', 'Brak studentów'); 
  50. $smarty->assign('names', $names); 
  51. ?>


Skrypt ma za zadanie wyszukac osoby w zadanym kryterium i wypisac je na stronie.

Oto template:
Kod
<html>
<head>
  <title>Biblioteka - {$module}</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
  <link rel="stylesheet" type="text/css" href="../style.css">
</head>
<body>
<div align="center">
<table>

   <tr>
      <TD colspan="2" class="menu_main">
         <TABLE border="0" width="100%">
            <TR>
               {section name=top_menu loop=$top_menu}
                  <TD align="center">
                    <A href="{$top_menu[top_menu].link}"><img border="0" src="{$top_menu[top_menu].img}" width="48" height="48">{$top_menu[top_menu].name}</A>
                  </TD>
                  {sectionelse}
                  <TR><TD align="center">Menu główne jest niedostępne</TD></TR>
               {/section}
            </TR>
         </TABLE>
      </TD>
   </tr>
   <tr>
      <TD class="menu_left" valign="top">
    
         <P>
         <TABLE border="0" width="100%">
            {section name=left_menu loop=$left_menu}
            <TR>
               <TD align="center">
                  <ul id="navlist">
                    <li id="active">
                  <A href="{$left_menu[left_menu].link}">{$left_menu[left_menu].name}</A>
                  </li>
               </ul>
               </TD>
            </TR>
            {sectionelse}
            <TR><TD align="center">Menu boczne jest niedostępne</TD></TR>
            {/section}
         </TABLE>
      </P>
      </TD>
      <TD class="content" valign="{$main_valign}">
      {if $smarty.get.action == 'form'}
         <p>
         <form action="student_list.php?action=letter" name="letters_form" method="post">
            Wyszukiwanie studenta według pierwszej litery nazwiska <br><br><select name="letters">
               {html_options values=$letters output=$letters selected=$smarty.post.letters}
            </select>
            <input type="submit" class="button"value="wybierz">
         </form>
         </P>
         <p>
         <form action="student_list.php?action=album" name="album_form" method="post">
            Wyszukiwanie studenta według numeru albumu <br><br><input type="text" name="album" value="{$smarty.post.album}">
            <input type="submit" class="button"value="Szukaj według numeru albumu">
         </form>
         </p>
         <p>
         <form action="student_list.php?action=name" name="name_form" method="post">
            Wyszukiwanie studenta według nazwiska <br><br><input type="text" name="name" value="{$smarty.post.name}">
            <input type="submit" class="button"value="Szukaj według nazwiska">
         </form>
         </P>
         {elseif $smarty.get.action == 'letter' || $smarty.get.action == 'name' || $smarty.get.action == 'album'}
            <table>
               {foreach from=$names item=name name=names}
                  <tr><td>{$name.imie1}</td><td>{$name.nazwisko}</td><td>{$name.album}</td>
                  {if $smarty.foreach.names.iteration > 1}
                     <td><a href="student_account.php?id={$name.id}">Szczegóły</a></td>
                  {/if}
                  </tr>
               {foreachelse}
                  {$names_status}
               {/foreach}
            </table>                
         {/if}
      </TD>
   </tr>
</table>
</div>
</body>
</html>


Chce do tego dodac wypisywanie czy osoba jest aktywna czy nie. Zapytanie ma postac:

  1. SELECT id_rekrut
  2. FROM t_rekrut_base INNER JOIN student_status ON t_rekrut_base.id_rekrut=student_status.id_student WHERE student_status.STATUS!='0'


- to znajdzie mi wszystkich aktywnych.

Czy mozna bez duzego przerabiania skryptu to napisac? Pomozcie
SongoQ
No to dodaj 1 warunek i zapytanie wstaw.
olo
To mi go napisz jak mozesz, ja juz probowalem z kilku stron i nie wiem jak to zrobic...

To drugie zapytanie znajduje mi id osob ktore spelniaja warunek (sa aktywni) i chcialem porownac id i w przypadku gdy sie pokryja to osoba jest nieaktywna a gdy nie znajdzie takiego id to osoba jest aktywna. Pyt jak to zapisac zeby DZIALALO?
SongoQ
  1. <?php
  2.  
  3. elseif ($_GET['action'] == 'active') { 
  4. // pobranie danych osobowych osob aktywnych
  5. $res = $db_dziek->query(&#092;"select id_rekrut 
  6. from t_rekrut_base
  7. inner join student_status on t_rekrut_base.id_rekrut=student_status.id_student where student_status.status!='0'&#092;");
  8. ..
  9. ..
  10. ..
  11. }
  12.  
  13. ?>


O to chodzilo?
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.