Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Wyświetlanie i edycja rekordów z bazy MySQL
afgan227
post
Post #1





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.02.2014

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


Witajcie.

Aktualnie pracuję nad stroną, w której chcę mieć możliwość dodawania, usuwania ,wyświetlenia oraz edycji rekordów z bazy MySql. Jak na razie poradziłem sobie z utworzeniem formularzu , który dodaje rekordy do bazy.

  1. <?php
  2.  
  3. $Marka = $_POST['Marka'];
  4. $Model = $_POST['Model'];
  5. $NrRej = $_POST['NrRej'];
  6. $LiczbaOsob = $_POST['LiczbaOsob'];
  7.  
  8. if($Marka && $Model && $NrRej && $LiczbaOsob)
  9. {
  10.  
  11.  
  12. $polaczenie = @mysql_connect('localhost', 'root', 'XXX')
  13. or die('Brak połączenia z serwerem MySQL');
  14. $db = @mysql_select_db('XXX', $polaczenie)
  15. or die('Nie mogę połączyć się z bazą danych');
  16.  
  17.  
  18. $zapytanie = @mysql_query("INSERT INTO autokar SET Marka='$Marka', Model='$Model', NrRej='$NrRej', LiczbaOsob='$LiczbaOsob'");
  19.  
  20. if($zapytanie) echo "Rekord został dodany poprawnie";
  21. else echo "Błąd nie udało się dodać nowego rekordu";
  22.  
  23. mysql_close($polaczenie);
  24. }
  25.  
  26. ?>


Kolejnym postępem w pracy było stworzenie tabelki, która wyświetla nam wszystkie rekordy w danej tabeli bazy.

  1. <?php
  2.  
  3. $wynik = mysql_query("SELECT * FROM autokar")
  4. or die('Błąd zapytania');
  5.  
  6. if(mysql_num_rows($wynik) > 0)
  7. {
  8. echo "<table cellpadding=\"10\" cellspacing=\"1\" border=\"1\" width=\"100%\" >";
  9. echo '<tr style="font-size:18px; height:60px; text-align:center" >';
  10. echo "<td><strong>ID</strong></td>";
  11. echo "<td><strong>Marka</strong></td>";
  12. echo "<td><strong>Model</strong></td>";
  13. echo "<td><strong>Numer rejestracyjny</strong></td>";
  14. echo "<td><strong>Maksymalna liczba pasażerów</strong></td>";
  15. echo "</tr>";
  16.  
  17. while($r = mysql_fetch_array($wynik))
  18. {
  19. echo '<tr style="font-size:14px; height:30px; text-align:center" >';
  20. echo "<td>".$r[0]."</td>";
  21. echo "<td>".$r[1]."</td>";
  22. echo "<td>".$r[2]."</td>";
  23. echo "<td>".$r[3]."</td>";
  24. echo "<td>".$r[4]."</td>";
  25. echo "</tr>";
  26. }
  27.  
  28. echo "</table>";
  29. }
  30.  
  31. ?>



Niestety nie wiem jak rozwiązać temat usuwania i edycji rekordów :< Znam składnie sql. Programowałem troche w c#. Niestety co do PHP to 6dzień w tym siedze.
Chciałbym, żeby to jakoś wyglądało i miało ręce i nogi. Musi to być w miarę intuicyjne.

1 ) Czy można np dodać nową kolumnę do tej mojej tabelki z danymi , w której miałbym opcję "usun"?

Coś 'a la' :

Kolumna 1 | Kolumna 2 | Kolumna 3 | Kolumna 4
ID 1 | cos 1 | cos 1 | kasuj
ID 2 | cos 2 | cos 2 | kasuj
ID 3 | cos 3 | cos 3 | kasuj

Jeżeli tak to w jaki sposób to okiełznać?

Powinienem wtedy dodać jakby hiperłącze do podstrony ze skryptem usuwającym ?

  1.  
  2. echo "<td><a href="link z kodem, do którego przypisujemy ID z tego wiersza, w którym jest kasuj">KASUJ</a></td>";
  3.  



2) A jeśli chodzi o edycję

Taki pomysł mam. Wrzucić do ComboBoxa dane. ( to wiem , że się da)
Po wybraniu jakiejś z opcji, automatycznie dane uzupełniły by formularz, w którym można by było dokonać edycji.. (Czy to da się zrobić?)


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
afgan227
post
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 17.02.2014

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


Dziękuję za szybką odpowiedź i pomoc.
Biorę się już do roboty (IMG:style_emoticons/default/smile.gif)

Mam jeszcze jednak 2 pytania.

Tak wygląda mój skrypt.

  1. <?php
  2.  
  3. $wynik = mysql_query("SELECT * FROM autokar")
  4. or die('Błąd zapytania');
  5. $ile=mysql_num_rows($wynik);
  6.  
  7. if(mysql_num_rows($wynik) > 0)
  8. {
  9. echo "<table cellpadding=\"10\" cellspacing=\"1\" border=\"1\" width=\"100%\" >";
  10. echo '<tr style="font-size:18px; height:60px; text-align:center" >';
  11. echo "<td><strong>ID</strong></td>";
  12. echo "<td><strong>Marka</strong></td>";
  13. echo "<td><strong>Model</strong></td>";
  14. echo "<td><strong>Numer rejestracyjny</strong></td>";
  15. echo "<td><strong>Maksymalna liczba pasażerów</strong></td>";
  16. echo "<td><strong>Edytuj dane</strong></td>";
  17. echo "<td><strong>Dodaj dane</strong></td>";
  18. echo "</tr>";
  19.  
  20. while($r = mysql_fetch_array($wynik))
  21. {
  22. echo '<tr style="font-size:14px; height:30px; text-align:center" >';
  23. echo "<td>".$r[0]."</td>";
  24. echo "<td>".$r[1]."</td>";
  25. echo "<td>".$r[2]."</td>";
  26. echo "<td>".$r[3]."</td>";
  27. echo "<td>".$r[4]."</td>";
  28. echo '<td><a href="autokary.php?a=del&amp;id='.$r[0].'">Usun</a> <a href="?a=edit&amp;id='.$r[0].'">Zmień</a></td>';
  29. echo '<td rowspan='$ile'><a href="aZarzadzanie.php">Dodaj</a></td>';
  30. echo "</tr>";
  31. }
  32.  
  33. isset($_GET['a']) and $a = $_GET['a'];
  34. isset($_GET['id']) and $id= $_GET['id'];
  35.  
  36. if($a == 'del' and !empty($id))
  37. {
  38. mysql_query("DELETE FROM autokar WHERE ID='$id'")
  39. or die('Błąd zapytania: '.mysql_error());
  40.  
  41. }
  42.  
  43.  
  44.  
  45.  
  46. echo "</table>";
  47. }
  48.  
  49. ?>


1) Chcę aby ostatnia kolumna była scalona w pionie. Zdaje się , że do liczenia linijek służy "mysql_num_rows". A do scalania komórek w tabeli właściwość "rowspan".


Niestety błędu nie wyrzuca, ale też nie scala. Powtarza "Dodaj" w każdej linijce...

2) Generalnie skrypt działa. Aczkolwiek wyrzuca ostrzeżenie :

Notice: Undefined variable: a in C:\xampp\htdocs\Biuro\autokary.php on line 49

Konkretnie chodzi o linię :

  1.  
  2. if($a == 'del' and !empty($id))


Co może być tego przyczyną?
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 - 18:35