Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dziennik internetowy
Forum PHP.pl > Forum > PHP
Kreton
Witam. Piszę dalej moj pierwszy powazniejszy projekt a mianowicie dziennik internetowy, jednak napotykam na problem gdzie musze dodawac recznie przedmiot w kilku skryptach a mianowicie. Moze troszke informacji.

pobieram sobie informacje z bazy danych, to oczywiscie nie statnowi problemu, jednak chciałbym miec panel administracyjny gdzie będe dodawał, usuwał konretne przedmioty.

Dane mi sie wyswietlaja w taki sposób

  1. <?php
  2. print "<table id=\"ucz\" width=\"95%\" align=\"center\" border=\"0px\">
  3.  <tr><td><b>Nazwisko: </b>".$wiersz['nazwisko']."</td><td>
  4.  <a href=\"index.php?go=oceny&id=".$wiersz['id']."&z=z\">Zmień oceny</a></td>
  5.  <tr><td><b>Matematyka: </b>".$wiersz['Matematyka']."
  6.  </table>";
  7. ?>


No i tak dla każdego przedmiotu. Potem mam edycje danych tzn.
  1. <?php
  2.  
  3. print " <form action=\"index.php?go=oceny&id=".$wiersz['id']."&z=z\" method=\"post\">
  4. Matematyka: <input type=\"text\" name=\"Matematyka\" value=\"".$wiersz['Matematyka']."\" size=\"\">
  5.  </form>";
  6. ?>

I znowu tak dla kazdego przedmiotu. Ale dopisywanie jest bardzo nie wygodne, szczegolnie dla osob ktore nie maja pojecia o php, a chce to zrobic tak aby laik mogl dodawac przedmioty itd. A nie moze recznei wstukiwac rzeczy do kodu. I tutaj mam problem z strategią budowy aplikacji. Bo nie wiem jak doprowadzic do tego zeby ten kod pobieral liste przedmiotow np. z jakiegos pliku txt. Mam nadzieje ze rozumiecie o co mi chodzi. Jestem bardzo początkujący jesli chodzi o php smile.gif Prosze o pomoc
jezoo
Sprobuj w ten sposob:
  1. <?php
  2.  
  3. /********************************************
  4. * Funkcja odpowiadajaca za wyswietlanie wszystkich
  5. * przedmioto jakie znajduja sie w bazie
  6. **********************************************/
  7.  
  8. function pokazPrzedmioty()
  9. {
  10.  $sql = mysql_query("select * from przedmioty");
  11.  $ilosc = mysql_num_rows($sql);
  12.  
  13.  echo "<input type='hidden' name='tab' value='przedmioty'><table align=center>";
  14. for($i=0;$<$ilosc;$i++)
  15. {
  16. $wiersz = mysql_fetch_array($sql);
  17. $id = stripslashes($wiersz['id']);
  18. $przedmiot = stripslashes($wiersz['przedmiot']);
  19.  
  20. echo "<tr><td>$przedmiot</td>
  21.  <td><input type=button onclick='location.href=edycja.php?id=$id'></td>
  22.  <td><input type=\"checkbox\" name=\"usun[]\" value=\"$id\"></td></tr>";
  23. }
  24. echo "</table>";
  25. }
  26.  
  27. /********************************************
  28. * Funkcja odpowiadajaca za wyswietlanie
  29. * przedmiotu do edycji
  30. **********************************************/
  31. function edycja($id)
  32. {
  33. $sql = mysql_query("select * from przedmioty where id='$id'");
  34. $wiersz = mysql_fetch_array($sql);
  35. $przedmiot = stripslashes($wiersz['przedmiot']); 
  36.  
  37.  echo "<form action=zapisz.php method=post>
  38.  <input type=text size=3 name=id value=$id><br>
  39.  <input type=text name=przedmiot value=$przedmiot>
  40.  <input type=submit value=Zapisz>";
  41. }
  42.  
  43. /********************************************
  44. * Funkcja odpowiadajaca za zapisanie zmian
  45. **********************************************
  46. * Aby zapis w bazie byl poprawny to trzeba oczywiscie zastosowac
  47. * $_POST['id']; $_POST['przedmiot'] przy tej funkcji jak i przy poprzedniej
  48. **********************************************/
  49. function zapisz($id,$przedmiot)
  50. {
  51.  $sql = mysql_query("update przedmioty set przedmiot='$przedmiot' where id='$id'");
  52.  
  53.  if(!$sql)
  54. echo "Blad przy aktualizacji wpisu";
  55.  else
  56. echo "Zmiany zostaly zapisane";
  57. }
  58.  
  59. ?>

To jest do edycji przedmiotow, do usuniecia mozesz cos takiego zastosowac:
Funkcja 'usuwanie':
  1. <?php
  2.  
  3. #Usuwanie wierszy
  4. function usuwanie($tabela,$przedmiot)
  5. {
  6.  
  7. if(!mysql_query("delete from $tabela where id='$przedmiot'"))
  8. return false;
  9. return true;
  10. }
  11.  
  12. ?>

Plik 'usun.php':
  1. <?php
  2.  
  3. include_once('funkcje.php');
  4. $zam=$_POST['usun'];
  5. $tabela=$_POST['tab'];
  6.  
  7. if(count($zam) > 0)
  8. {
  9. foreach($zam as $przedmiot)
  10. {
  11. if(usuwanie($tabela,$przedmiot))
  12. echo 'Usunięto '.htmlspecialchars($przedmiot).' wpis<br />';
  13. else
  14. echo 'Nie usunięto '.htmlspecialchars($przedmiot).'wpisu<br />';
  15. }
  16. echo "<a href=\"index.php\">Powrot</a>";
  17. }
  18. else
  19. {
  20. echo 'Nie wybrano nic';
  21. }
  22.  
  23. ?>

Mam nadzieje, ze pomoze smile.gif
Kreton
oki wielkie dzięki, przeanalizowałem to i uważam ze jest to fajne rozwiązanie. Potem je zastosuje bo musze uczyć sie na ruski smile.gif.

Chciałbym sie tylko dowiedzieć, co to za funkcja stripslashes(); oraz czym dokladnie rózni sie funkcja mysql_query() od mysql_fetch_array()

Zagadką jest tez dla mnie warunek

  1. <?php
  2. if(!$sql)
  3. echo "Blad przy aktualizacji wpisu";
  4.  else
  5. echo "Zmiany zostaly zapisane";
  6. ?>
ponieważ nie widze tak zadnek klamry {}. W jakiej sytuacji moge takie coś uzywac ?
matrach
A nie chcesz wiedzieć co to MANUAL php?
Manual nie gryzie i jest w większości po polsku...

stripslashes() dodaje \ przed niektórymi znakami, choć do mysql'a lepsze jest mysql_escape_string()

Mysql_query() Wykonuje zapytanie SQL,a mysql_fetch_array :
Kod
Zwraca tablicę zawierającą pobrany wiersz, lub FALSE jeżeli nie ma więcej wierszy w wynik.

Struktury kontrolne jeśli nie ma nawiasów if odnosi się do następnego wyrażenia
czyli daje to samo co:
  1. <?php
  2. if(!$sql)
  3.  {
  4. echo "Blad przy aktualizacji wpisu";
  5. }
  6.  else
  7. {
  8. echo "Zmiany zostaly zapisane";
  9.  }
  10. ?>
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.