Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [HTML][MySQL][PHP]Usuwanie danych z bazy
Basia555
post 2.07.2015, 13:32:40
Post #1





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Witam
Nie wiem jak usunąć dane z bazy danych, chodzi mi o pojedyńczy wiersz. Zrobiłam coś takiego ale nie chce mi działać.

usun.php
  1. <?
  2. $id = $_POST['ID'];
  3. $q = mysql_query("DELETE FROM cennik_uslug WHERE ID = $id") or die (mysql_error());
  4. ?>


główny kod programu
usunu.php
  1. <?php
  2.  
  3. $q = mysql_connect('localhost','root','bilerek555') or
  4. die('Padl serwer');
  5. $q = mysql_select_db('stronaphp') or die('Padla baza');
  6.  
  7.  
  8. $wynik = mysql_query('SELECT * FROM cennik_uslug')
  9. or die('Błąd zapytania');
  10.  
  11.  
  12.  
  13. echo '<table>
  14. <tr class = "header">
  15. <th>ID</th>
  16. <th>Nazwa usługi</th>
  17. <th>Cena za metr</th>
  18. <th>Cena za pkt/mb</th>
  19. </tr>';
  20. while($row = mysql_fetch_array($wynik)) {
  21. echo "<tr>
  22. <td>{$row['ID']}</td>
  23. <td>{$row['Nazwa_uslugi']}</td>
  24. <td>{$row['Cena_za_metr']}</td>
  25. <td>{$row['Cena_za_pktmb']}</td>";
  26.  
  27.  
  28. echo " <td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>";
  29.  
  30.  
  31.  
  32. echo "</tr>";
  33. }
  34. echo '</table>';
  35.  
  36. ?>


Co mogę z tym dalej zrobić? Kilka godzin i nic dalej nie zrobiłam :/
Go to the top of the page
+Quote Post
Turson
post 2.07.2015, 13:36:35
Post #2





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


  1. $id = $_POST['ID'];

nie $_POST a $_GET
Go to the top of the page
+Quote Post
Basia555
post 2.07.2015, 14:05:52
Post #3





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Parse error: syntax error, unexpected 'usun' (T_STRING), expecting ',' or ';' in C:\xampp\htdocs\praca\usunu.php on line 28

Wywala mi taki błąd
Go to the top of the page
+Quote Post
Turson
post 2.07.2015, 14:14:27
Post #4





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Tutaj
  1. echo " <td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>";

zobacz jak w PHP wygląda konkatenacja
Go to the top of the page
+Quote Post
Basia555
post 2.07.2015, 15:33:46
Post #5





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Cytat(Turson @ 2.07.2015, 15:14:27 ) *
Tutaj
  1. echo " <td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>";

zobacz jak w PHP wygląda konkatenacja


Mógłbym prosić jaśniej bo dalej nie wiem, czytałam teraz w necie ale dalej nie wiem gdzie jest błąd :/
Go to the top of the page
+Quote Post
kreatiff
post 2.07.2015, 16:57:34
Post #6





Grupa: Zarejestrowani
Postów: 324
Pomógł: 105
Dołączył: 7.08.2012

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


Zwróć uwagę na cydzysłowy i apostrofy. Masz kilka opcji:
  1. echo "<td><a href=\"usun.php?ID=".$row['ID']."\">usuń</a></td>";
albo
  1. echo '<td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>';
albo
  1. echo "<td><a href=\"usun.php?ID={$row['ID']}\">usuń</a></td>";


Ten post edytował kreatiff 2.07.2015, 17:00:24
Go to the top of the page
+Quote Post
Basia555
post 2.07.2015, 20:28:50
Post #7





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Przetestowałam wszystkie te metody i ogólnie funkcja dziala w każdym przypadku ale dalej nie usuwa mi rekordu o danym ID :/


Próbowałam coś w ten sposób zrobić ale dalej nic
  1. <?
  2.  
  3. if (isset($_GET['id'])){
  4. $q = mysql_query("DELETE FROM cennik_uslug WHERE ID = $_GET['ID']") or die (mysql_error());
  5. }
  6. else
  7. {
  8. echo "Blad w usuwaniu";
  9. }
  10. ?>


Cytat(kreatiff @ 2.07.2015, 17:57:34 ) *
Zwróć uwagę na cydzysłowy i apostrofy. Masz kilka opcji:
  1. echo "<td><a href=\"usun.php?ID=".$row['ID']."\">usuń</a></td>";
albo
  1. echo '<td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>';
albo
  1. echo "<td><a href=\"usun.php?ID={$row['ID']}\">usuń</a></td>";


nie bardzo wiem czym te metody się różnią, mogę prosić o jakąś podpowiedź smile.gif

Ten post edytował Basia555 2.07.2015, 20:29:52
Go to the top of the page
+Quote Post
Turson
post 2.07.2015, 20:51:09
Post #8





Grupa: Zarejestrowani
Postów: 4 291
Pomógł: 829
Dołączył: 14.02.2009
Skąd: łódź

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


Tutaj masz opis konkatenacji
http://php.net/manual/en/language.operators.string.php
Warto patrzeć w komentarze

Używaj <?PHP zamiast <? (chyba, że masz włączone short tags)

Co do zapytania, zrób tak:
  1. $query = "DELETE FROM cennik_uslug WHERE ID = $_GET['ID']";
  2. echo $query;

Sprawdź rezultat (to nic nie usunie, ale pokaże czyste zapytanie)
Go to the top of the page
+Quote Post
Basia555
post 2.07.2015, 20:58:51
Post #9





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Cytat(Turson @ 2.07.2015, 21:51:09 ) *
Tutaj masz opis konkatenacji
http://php.net/manual/en/language.operators.string.php
Warto patrzeć w komentarze

Używaj <?PHP zamiast <? (chyba, że masz włączone short tags)

Co do zapytania, zrób tak:
  1. $query = "DELETE FROM cennik_uslug WHERE ID = $_GET['ID']";
  2. echo $query;

Sprawdź rezultat (to nic nie usunie, ale pokaże czyste zapytanie)


Parse error: syntax error, unexpected '' (T_ENCAPSED_AND_WHITESPACE), expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in C:\xampp\htdocs\praca\usun.php on line 4

Pokazał mi się taki oto błąd
Go to the top of the page
+Quote Post
patwoj98
post 2.07.2015, 21:13:09
Post #10





Grupa: Zarejestrowani
Postów: 218
Pomógł: 16
Dołączył: 6.06.2014
Skąd: Warszawa

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


  1. $query = "DELETE FROM cennik_uslug WHERE ID = '".$_GET['ID']."'";


Wklej to za query.
Go to the top of the page
+Quote Post
Basia555
post 2.07.2015, 21:27:03
Post #11





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


  1. if($_GET['action'] == 'edit' && $_GET['ID'])
  2. {
  3. if(mysql_query("DELETE FROM cennik_uslug WHERE ID = ".$_GET['ID']))
  4. {
  5. echo 'usunieto';
  6. }
  7. else
  8. {
  9. echo 'blad';
  10. }
  11. }
  12. else{
  13.  
  14. $wynik = mysql_query('SELECT * FROM cennik_uslug')
  15. or die('Błąd zapytania');
  16.  
  17. echo '<table>
  18. <tr class = "header">
  19. <th>ID</th>
  20. <th>Nazwa usługi</th>
  21. <th>Cena za metr</th>
  22. <th>Cena za pkt/mb</th>
  23. </tr>';
  24. while($row = mysql_fetch_array($wynik)) {
  25. echo "<tr>
  26. <td>{$row['ID']}</td>
  27. <td>{$row['Nazwa_uslugi']}</td>
  28. <td>{$row['Cena_za_metr']}</td>
  29. <td>{$row['Cena_za_pktmb']}</td>";
  30.  
  31. echo '<td><a href="?action=edit&ID='.$row['ID'].'">usun</a></td>';
  32.  
  33.  
  34.  
  35.  
  36. echo "</tr>";


Już mi wszystko działa tylko

  1. php]if($_GET['action'] == 'edit' && $_GET['ID'])


nie wiem jak to zdefiniować,
Notice: Undefined index: action in C:\xampp\htdocs\praca\usunu.php on line 1

usuwa mi to dane z bazy, wszystko super tylko jeszcze nie wiem jak usunąć ten błąd
Go to the top of the page
+Quote Post
goartur
post 2.07.2015, 21:29:20
Post #12





Grupa: Zarejestrowani
Postów: 233
Pomógł: 27
Dołączył: 19.10.2014

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


Cytat(Basia555 @ 2.07.2015, 22:27:03 ) *
  1. if($_GET['action'] == 'edit' && $_GET['ID'])
  2. {
  3. if(mysql_query("DELETE FROM cennik_uslug WHERE ID = ".$_GET['ID']))
  4. {
  5. echo 'usunieto';
  6. }
  7. else
  8. {
  9. echo 'blad';
  10. }
  11. }
  12. else{
  13.  
  14. $wynik = mysql_query('SELECT * FROM cennik_uslug')
  15. or die('Błąd zapytania');
  16.  
  17. echo '<table>
  18. <tr class = "header">
  19. <th>ID</th>
  20. <th>Nazwa usługi</th>
  21. <th>Cena za metr</th>
  22. <th>Cena za pkt/mb</th>
  23. </tr>';
  24. while($row = mysql_fetch_array($wynik)) {
  25. echo "<tr>
  26. <td>{$row['ID']}</td>
  27. <td>{$row['Nazwa_uslugi']}</td>
  28. <td>{$row['Cena_za_metr']}</td>
  29. <td>{$row['Cena_za_pktmb']}</td>";
  30.  
  31. echo '<td><a href="?action=edit&ID='.$row['ID'].'">usun</a></td>';
  32.  
  33.  
  34.  
  35.  
  36. echo "</tr>";


Już mi wszystko działa tylko

  1. php]if($_GET['action'] == 'edit' && $_GET['ID'])


nie wiem jak to zdefiniować,
Notice: Undefined index: action in C:\xampp\htdocs\praca\usunu.php on line 1

usuwa mi to dane z bazy, wszystko super tylko jeszcze nie wiem jak usunąć ten błąd


Oczywiscie ze dostajesz undefined index, sprawdzasz get action lecz nie sprawdzasz czy zostal on zdefiniowany ustaw:
  1. if(isset($_GET['action']) == 'edit' && isset($_GET['ID']))


baaasmiley.gif
Go to the top of the page
+Quote Post
KsaR
post 2.07.2015, 21:39:56
Post #13





Grupa: Zarejestrowani
Postów: 520
Pomógł: 102
Dołączył: 15.07.2014
Skąd: NULL

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


Cytat(goartur @ 2.07.2015, 22:29:20 ) *
Oczywiscie ze dostajesz undefined index, sprawdzasz get action lecz nie sprawdzasz czy zostal on zdefiniowany ustaw:
  1. if(isset($_GET['action']) == 'edit' && isset($_GET['ID']))

baaasmiley.gif

isset zwraca czy istnieje zmienna/indeks oraz czy nie jest null.
W twoim przykładzie jakby isset zwracal zmienna... ohmy.gif.
isset($_GET['action']) == 'edit'

poprawnie:
  1. if (isset($_GET['action'],$_GET['id']) && $_GET['action']==='edit')


edycja:

w twoim wypadku to wyglądało tak:
isset($_GET['action']) == 'edit'
Czyli np.
Czy_istnieje($_GET['action']) ktore zwroci prawda/falsz.
I czy prawda/falsz jest rowne edit.

W moim:
if (isset($_GET['action'],$_GET['id']) && $_GET['action']==='edit')
Czyli:
Czy_istnieje($_GET['action'] i $_GET['id']) oraz jesli tak czy $_GET['action'] jest identyczne wartoscia i typem edit.

Ten post edytował Ksar 2.07.2015, 21:56:53


--------------------
Go to the top of the page
+Quote Post
Basia555
post 3.07.2015, 14:25:05
Post #14





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Cytat(kreatiff @ 2.07.2015, 17:57:34 ) *
Zwróć uwagę na cydzysłowy i apostrofy. Masz kilka opcji:
  1. echo "<td><a href=\"usun.php?ID=".$row['ID']."\">usuń</a></td>";
albo
  1. echo '<td><a href="usun.php?ID='.$row['ID'].'">usuń</a></td>';
albo
  1. echo "<td><a href=\"usun.php?ID={$row['ID']}\">usuń</a></td>";


Dziękuję wszystkim za pomoc już wszystko mi działa smile.gif Jeszcze tylko maleńka prośba. Mógłby mi ktoś wyjaśnić o co o tym dokładnie chodzi? Jaka jest różnica między tym co napisał tytaj kolega kreatiff w tych 3 przypadkach. Niby wszystkie mi zadziałały tylko nie rozumiem ich logiki
Go to the top of the page
+Quote Post
com
post 3.07.2015, 15:10:26
Post #15





Grupa: Zarejestrowani
Postów: 3 032
Pomógł: 366
Dołączył: 24.05.2012

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


chodzi o to że ten cudzysłowie działają na zasadzie takiej że pierwszy " otwiera a drugi zamyka zawartość w echo wiec

maja np przykład 1 jakby nie dodać \ to ten cudzysłów nie został by zinterpretowany jako tekst tylko jako zamkniecie echo czyli wygl by to tak:
  1. echo "<td><a href="
ale to by spowodowało błąd ponieważ brakowało by ; na końcu a reszta tego co tam była była by traktowana jako zwykły tekst co też było by błedem, stąd tez jeśli chcemy użyć w echo cudzysłowie jako tekst trzeba zapisać to jako \".
Mozna było to też zrobić inaczej czyli:
  1. echo "<td><a href=\"usun.php?ID=$row[ID]\">usuń</a></td>";

Tyko wtedy trzeba pamiętać że index tablicy bez cudzysłowi
W drugim przypadku echo miało pojedyncze cudzysłowie(cal) wiec nie trzeba było zamieniać na encje, ale za to trzeba było skonkatenować tego stringa z nasza zmienna, sta tez to złączenie w postaci zamknięcia tego fragmentu echo poprzez ' dodania . bo tak sie w php konkatenuje wpisania zmiennej i zrobienia ponownie tej operacji żeby dołączyć resztę naszego tekstu.

No a trzeci sposób to to samo co pierwszy tylko zamiast kontentować kropka i zamykać otwierać to wpisujesz zmienna w {} ale to tylko działa jak echo używa ", bo to mówi php, że w echo może sie znajdować coś co trzeba przetworzyćsmile.gif
Go to the top of the page
+Quote Post
Basia555
post 3.07.2015, 16:56:56
Post #16





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 19.04.2015

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


Ok czyli już wiem co i jak wielkie dzięki jeszcze raz smile.gif
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 28.03.2024 - 11:12