Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PostgreSQL][PHP] Rekord nie usuwa się z bazy, błędy w edycji rekordu
Forum PHP.pl > Forum > Przedszkole
danio231
Witam, mam problem z moją bazą danych. Mam tabelę jacht w której primary key to numer_jachtu i napisałem taki kod w php:
  1. <html>
  2. <head>
  3. <title>Usun jacht</title>
  4. </head>
  5. <body>
  6. <h1> Usuwam jacht </h1>
  7. <?php
  8.  
  9. $id = $_POST['idjach'];
  10.  
  11. $dbh = pg_connect("dbname=projekt_jachty user=mojlogin password=mojehaslo host=localhost") or die("Nie mozna polaczyc sie z baza !");
  12.  
  13.  
  14. $query = "DELETE FROM jacht where numer_jachtu= '$id';";
  15. $wynik = pg_query($query);
  16.  
  17.  
  18. $ls = pg_affected_rows($wynik);
  19. echo "Usunieto $ls jacht <br /> \n";
  20. pg_close($dbh);
  21.  
  22. echo "<form action=projekt_jachty.php method=post>
  23. <input type=submit name=Ok value=OK>
  24. </form>";
  25. ?>
  26. </body>
  27. </html>


Gdy próbuję usunąć rekord z tej tabeli za pomocą interfejsu na stronie to dostaje komunikat "Usunięto 0 jacht" i oczywiscie nic się z tabeli nie usuwa.

Drugi problem z tą samą tabelą, to problem z edycją rekordu. Gdy próbuję edytować rekord dostaję błąd :

Warning: pg_fetch_result(): Unable to jump to row 0 on PostgreSQL result index 3 in /mójkatalog/edjach.php on line 26

to samo w liniach 27 i 28

Plik edjach.php:

  1. <html>
  2. <head>
  3. <title>Edytuj jacht</title>
  4. </head>
  5. <body>
  6. <h1> Edytuj jacht </h1>
  7. <?php
  8.  
  9.  
  10. $id = $_POST['idjach'];
  11. $zm = $_POST['zmien'];
  12.  
  13.  
  14.  
  15. $dbh = pg_connect("dbname=projekt_jachty user=mojlogin password=mojehaslo host=localhost") or die("Nie mozna polaczyc sie z baza danych!");
  16.  
  17.  
  18.  
  19. $query = "SELECT nazwa,numer_jachtu,cena_jachtu,wyposazenie FROM jacht WHERE numer_jachtu= '$id';";
  20. $wynik = pg_query($query);
  21. $cen = pg_fetch_result($wynik,0,'nazwa');
  22. $naz = pg_fetch_result($wynik,0,'cena_jachtu');
  23. $wypos = pg_fetch_result($wynik,0,'wyposazenie');
  24. $lk = pg_num_fields($wynik);
  25.  
  26. echo "<form action=edjach2.php method=post>";
  27. echo "<input type=text name='nazwa' value=$naz><br>";
  28. echo "<input type=text name='cena_jachtu' value=$cen><br>";
  29. echo "<input type=text name='wyposazenie' value=$wypos><br>";
  30. echo "<input type=hidden name='idjach' value=$id>";
  31. echo "<input type=hidden name='naz' value=$naz>";
  32. echo "<input type=submit name='zmien' value=OK>";
  33. echo "</form>";
  34. ?>
  35. </body>
  36. </html>



Będę wdzięczny za pomoc smile.gif
nospor
$id = $_POST['idjach'];
Przesylasz w ogole formem to ID?

W ogole zapoznaj sie z tym tematem:
Temat: Jak poprawnie zada pytanie
to na ekranie zapewne zobaczysz interesujace bledy.
danio231
Chyba chodzi o ten mały formularz do usuwania tak?

  1. echo "<td><form action=deljach.php method=POST>
  2. <input type=hidden name=idjach value=$idjach>
  3. <input type=submit name=usun value=Usun></form></td>";
  4.  


To kawałek kodu z głównego pliku, odwołanie do pliku z usuwaniem który wrzuciłem wcześniej.
rivaeln
Po linijce:

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


dodaj:

  1. var_dump($id);
  2. die();


żeby w ogóle zobaczyć czy coś w tym $id jest wysyłane.
danio231
Dodałem, potem chciałem usunąć rekord z parametrem numer_jachtu równym 16 i pokazał się komunikat string(1) "2" .

Rekord który chciałem usunąć wygląda tak:

nazwa numer_jachtu cena_jachtu wyposazenie
Concordia 16 200.00 2

więc chyba zamiast numer_jachtu(klucz główny) przypisuje mi do tej zmiennej numer z kolumny wyposazenie (to jest klucz obcy).

Tylko jak to zmienić?
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.