Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Usuwanie danych z bazy
-Molfer-
post 13.07.2005, 10:38:22
Post #1





Goście







Zaczynam dopiero uczyć się php i pisze mały skrypt tak dla wprawy. Niestety mam mały problem:
  1. <?
  2.  
  3.  
  4. require_once('funkcje.php');
  5.  
  6.  
  7. $db = db();
  8.  
  9. $wynik = $db->query($zapytanie1);
  10. $ile = $wynik->num_rows;
  11. echo '<p><b>W bazie jest ' .&#092;"$ile\". ' wykonawców</b></p>';
  12. echo &#092;"n\";
  13.  
  14. echo '<form method=\"post\" action=\"autor.php\"><br />'.&#092;"n\";
  15.  
  16. for($i=0; $i<$ile; $i++){
  17. $wynik_ile = $wynik->fetch_assoc();
  18.  
  19.  
  20. echo '<div class=\"checkbox\"><input type=\"checkbox\" name=\"';
  21. echo $wynik_ile['nazwa'];
  22. echo '\" value=\"1\" />';
  23. echo $wynik_ile['nazwa'];
  24. echo '</div>';
  25. echo &#092;"n\";
  26.  
  27.  
  28.  
  29. }
  30. echo '<input type=\"submit\" value=\"Usuń\" /><br />';
  31. echo '</form>'.&#092;"n\"; 
  32.  
  33. echo '<p><b>Pozycje usunięte:</b></p>';
  34.  
  35.  
  36. foreach( $_POST as $k => $w )
  37. {
  38.  if ( $w == '1' )
  39.  {
  40.  
  41.  echo $k.&#092;"<br /> n\";
  42.  
  43.  $wynik2 = $db->query($zapytanie2);
  44.  
  45.  }
  46.  
  47. }
  48.  
  49.  
  50.  
  51.  
  52.  
  53. ?>


funkcje.php
  1. <?php
  2.  
  3. define('HOST','localhost');
  4. define('NAZWA','teksty');
  5. define('UZYTKOWNIK','root');
  6. define('HASLO','');
  7.  
  8. function db()
  9. {
  10.  $lacz = new mysqli(HOST,URZYTKOWNIK,HASLO,NAZWA); 
  11.  if (!$lacz)
  12. throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
  13.  else
  14. return $lacz;
  15. }
  16.  
  17. $zapytanie1 = &#092;" SELECT * FROM autorzy \";
  18.  
  19. $zapytanie2 = &#092;" DELETE FROM autorzy WHERE nazwa='\".$k.\"' \";
  20.  
  21. ?>


Jego zadaniem jest wyświetlić pozycje z bazy danych razem z checkboxami, potem po zaznaczeniu odpowiednich pozycji ma je usuwać. No i niestety ich nie usuwa, nie wiem co robie żle bo nie wyświetla mi sie zaden komunikat sad.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
-Guest-
post 13.07.2005, 10:41:09
Post #2





Goście







URZYTKOWNIK popraw na UZYTKOWIK biggrin.gif
Go to the top of the page
+Quote Post
-Molfer-
post 13.07.2005, 10:48:46
Post #3





Goście







Poprawiłem ale dalej nie działa. Pozatym rowniez wtedy skrypt pobierał wykonawcow z bazy ( nie wiem dlaczego smile.gif )
Go to the top of the page
+Quote Post
nospor
post 13.07.2005, 10:54:23
Post #4





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




ale co teraz nie dziala? jakies errory?

poza tym robisz $zapytanie2 zależne od zmiennej k, ale najpierw robisz zapytanie a dopiero potem zmieniasz to zmienną. Ten numer nie przejdzie. $zapytanie 2 musisz generować w tej samej pętli co $k


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Molfer-
post 13.07.2005, 10:58:41
Post #5





Goście







Wilekie dzięki juz jest dobrze.
  1. <?php
  2.  echo $k.&#092;"<br /> n\";
  3.  
  4.  $wynik2 = $db->query($zapytanie2);
  5. ?>

Te dwie linijki zamienilem miejscami i juz dziala biggrin.gif
Go to the top of the page
+Quote Post
-Molfer-
post 13.07.2005, 11:37:38
Post #6





Goście







Jeszcze jedno pytanie. Gdy w bazie danych w nazwie wystepuje znak . (kropka) lub (odstęp) to w tym miejscu:
  1. <?php
  2.  
  3. foreach( $_POST as $k => $w )
  4. {
  5.  if ( $w == '1' )
  6.  {
  7.  
  8. $zapytanie2 = &#092;" DELETE FROM autorzy WHERE nazwa='\".$k.\"' \";
  9. echo $k.&#092;"<br /> n\";
  10. $wynik2 = $db->query($zapytanie2);
  11.  
  12.  
  13.  
  14.  }
  15.  
  16. }
  17.  
  18. ?>

Zamiast tych znaków jest znak _ (podkreślenia) przez co nie moge ich usunąć.
Go to the top of the page
+Quote Post
nospor
post 13.07.2005, 11:41:54
Post #7





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Znaczy się co? Wkładasz do tabeli w pole nazwa wartość 'ala ma.kota' a w tabelce jest 'ala_ma_kota'? A jakiego typu jest to pole? A może ty przxed włożeniem jakoś to konwertujesz? Bo jeśli pole jest typu tekstowego to bazka sama z siebie nie powinna nic konwertować


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
-Guest-
post 13.07.2005, 11:49:39
Post #8





Goście







Jest tak:
W bazie jest wszystko dobrze, każdy znak jest taki jak chce.
Tak gdzie sa chceckboxy tez jest wszystko dobrze.
Ale w podanym fragmencie następuje zmiana tych znaków.

# np. tak wyglada jak chce usunac 'sdf sdfg'

[checkbox]sdf sdfg
[USUN]
Pozycje usunięte:
sdf_sdfg

No i niestety nie usuwa się bo takiej 'sdf_sdfg' pozycji w bazie nie ma
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: 24.07.2025 - 17:17