Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP][MySQL]Usuwanie wiersza z tabeli, prośba o sprawdzenie kodu i poprawki
rokasny
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


Witam wszystkich, z góry przepraszam, że odpalam n-ty temat o usuwaniu wierszy, ale chciałbym poprosić o pomoc w sprawdzeniu mojego przypadku.
Robię projekt na studiach i bardzo przyda mi się wasza pomoc.

  1. echo "<p>";
  2. //echo "<form action='' method='post'>";
  3. echo "<table id ='tab-a' boder='1'><tr>";
  4. echo "<td><strong>Lp.</strong></td>";
  5. echo "<td><strong>Nazwa produktu</strong></td>";
  6. echo "<td><strong>Ilość</strong></td>";
  7. echo "<td><strong>Klient</strong></td>";
  8. echo "<td><strong>Termin</strong></td>";
  9. echo "<td><strong>Usuń</strong></td>";
  10. echo "</tr>";
  11.  
  12. while ( $row = mysql_fetch_row($wynik) ) {
  13. echo "</tr>";
  14. echo "<td>" . $i++ .'.'. "</td>";
  15. echo "<td>" . $row[1] . "</td>";
  16. echo "<td>" . $row[2] . "</td>";
  17. echo "<td>" . $row[3] . "</td>";
  18. echo "<td>" . $row[4] . "</td>";
  19. echo "<td><a href=\"menu.php?menu=3?usun=".$row[0]."\"><span style='color:#000'>USUN</span></a></td>";
  20. echo "</tr>";
  21. }
  22. echo "</table>";
  23.  

wysyła mi do linku usun - odpowiednie ID, ale nie reaguje na zapytanie i wiersz nie chcę się usunąć. Co jest nie tak z tym kodem?
  1. if (isset($_GET['usun'])) {
  2. $usuwanie = $_GET['usun'];
  3. $sql = "DELETE * FROM zamowienia WHERE IDzamowienia='$usuwanie'";
  4.  
  5. if (mysql_query($sql)) {
  6. echo '<p> Wiersz został usunięty</p>';
  7. } else {
  8. echo '<p> Błąd: '. mysql_error() .'</p>';
  9. }
  10. }


W tabeli mam IDzamowienia, NazwaProduktu, Ilosc, klient, termin.
Bardzo proszę o podpowiedzi.

Ten post edytował rokasny 23.11.2013, 22:03:06
Go to the top of the page
+Quote Post
rad11
post
Post #2





Grupa: Zarejestrowani
Postów: 1 270
Pomógł: 184
Dołączył: 7.10.2012
Skąd: Warszawa

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


Napewno uzywasz method = get ?

Ten post edytował rad11 23.11.2013, 22:14:57
Go to the top of the page
+Quote Post
com
post
Post #3





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

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


@up gdzie ty masz tu jakiś form?

Cytat
  1. echo "<td><a href=\"menu.php?menu=3?usun=".$row[0]."\"><span style='color:#000'>USUN</span></a></td>";

Jak już to menu.php?menu=3&usun= a wgl to najlepiej &amp; wink.gif
Go to the top of the page
+Quote Post
rokasny
post
Post #4





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


i przy GET i przy POST, zapytanie nie chce działać

edit:
Po zmianie na & wyświetla mi taki błąd
  1. Błąd: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '* FROM zamowienia WHERE IDzamowienia='1'' at line 1


usunąłem * - zadziałało
czy jest możliwość żeby jednocześnie z wiadomością o poprawnym usunięciu wiersza zaaktualizowało mi automatycznie tabele (już bez usuniętego wiersza)?

Ten post edytował rokasny 23.11.2013, 22:21:16
Go to the top of the page
+Quote Post
com
post
Post #5





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

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


Powiedz nam w takim razie jaki jest efekt jak dasz te usuń? masz włączone raportowanie błędów? spróbuj zrobić var_dump($_GET['usun']); smile.gif

Tak jest możliwe służy do tego AJAX smile.gif

http://it.dth.pl/delete-kurs-jezyka-sql-mysql-cz-6/ wink.gif

Btw filtruj tego geta bo ktoś Ci tak coś tam wstrzyknie smile.gif

Ten post edytował com 23.11.2013, 22:26:43
Go to the top of the page
+Quote Post
rokasny
post
Post #6





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


ajax hm smile.gif jak sobie z tym poradzić? czy taki kod jest bardzo skomplikowany? mógłbym prosić o pomoc przy takim rozwiązaniu?
Go to the top of the page
+Quote Post
com
post
Post #7





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

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


W JQuery się to robi w miarę łatwo smile.gif Link do dokumentacji http://api.jquery.com/jQuery.ajax/, kiedy to przestudiujesz i bd problemy to przyjdź z swoim kodem na pewno pomożemy, jednakże gotowca nie piszemy w postach, co najwyżej podpowiadamy.. gotowe od a do z możesz komuś zlecić wink.gif
Go to the top of the page
+Quote Post
rokasny
post
Post #8





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


  1. <script type="text/javascript">
  2. $(".loadlink").click( function(event) {
  3. event.preventDefault();
  4. $("#result").load($(this).attr("href"));
  5. });
  6. </script>


i nadanie odpowiednie id do odnośnika pomoże?

Ten post edytował rokasny 23.11.2013, 22:42:39
Go to the top of the page
+Quote Post
com
post
Post #9





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

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


hmm nie bardzo rozumiem co w ten sposób zamierzasz uzyskać wink.gif
Go to the top of the page
+Quote Post
rokasny
post
Post #10





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


Chciałbym automatycznie odświeżyć stronę pozostawiając echo 'wiersz został usunięty pomyślnie'
Mam kilka rozwiązań, które najlepsze (ewentualnie do zmodyfikowania)?:

1.
  1. $('#PageRefresh').click(function() {
  2. location.reload();
  3. });

2.
  1. $(".loadlink").click( function(event) {
  2. event.preventDefault();
  3. $("#result").load($(this).attr("href"));
  4. });

3.
  1. echo '<meta http-equiv="refresh" content="1; url=menu.php?menu=3">';
Go to the top of the page
+Quote Post
com
post
Post #11





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

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


przecież napisałem Ci że do tego musisz użyć AJAX, w ten sposób za wiele Ci to nie da bo po usunięciu jeśli zastosujesz jedno z tych rozwiązań strona się przeładuje wiec wtedy zamiast robić to w jquery wystarczyło by dodać header

Być może wcześnie Cie nie zrozumiałem, ponadto 3 rozwiązanie nie przejdzie bo strona będzie odświeżana w nieskończoność co jest bez sensu...

Ten post edytował com 24.11.2013, 00:53:24
Go to the top of the page
+Quote Post
rokasny
post
Post #12





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


Przystałem na 3 rozwiązaniu jednak, bo odświeża mi po chwili do strony menu=3 (gdzie nie mamy już echo z odświeżaniem) - póki co wystarczy mi takie rozwiązanie smile.gif

Mam natomiast inne pytanie, prośbę, z języka sql, jaką funkcję zastosować, żeby zamiast zamiany wartości w tabeli dodawało do nich.
Może na przykładzie:
Mamy w tabeli kolumne Ilość (o wartości 5), w formularzu dodaj, wpisuję w Ilość 10 i zamiast zamierzonego efektu: 15 otrzymuje zastąpienie wartości: 10.

  1. UPDATE bom SET ZapasMagazynu='$ilosc', NazwaMagazynu='$magazyn' WHERE NazwaProduktu='$produkt'

Zatem jak poprawić na INSERT INTO albo inne zapytanie żeby otrzymać zamierzony efekt? bardzo proszę o pomoc.
edit: coś z COUNT?

Ten post edytował rokasny 24.11.2013, 15:07:26
Go to the top of the page
+Quote Post
Turson
post
Post #13





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

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


  1. UPDATE tabela SET kolumna=kolumna+10
Go to the top of the page
+Quote Post
rokasny
post
Post #14





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


A ja kombinuje jak koń pod górkę smile.gif) dziękuje

Siemka, mógłbym prosić o pomoc raz jeszcze?

Mając buttona w wierszu chciałbym się odwołać do odpowiedniego ID w bazie czyli dla .$row[0]. (podobną rzecz mam usuwając konkretne wiersze czy to na tej samej zasadzie zadziała?) i jednocześnie wykonać dla tej zmiennej(buttona) funkcje oblicz($row[0](tak??)); a w funkcji: zapytania UPDATE żeby mi dla konkretnego ID uaktualniało konkretne wartości w tabelach w bazie(gdzie umieścić zapytania?), do tego po wykonaniu takiej funkcji musiałby się button zmienić w tekst [obliczono] (jak taki efekt?).
Mam nadzieję, że wyjaśniłem problem, proszę ogromnie o porady i pomoc, od czego zacząć, co zrobić.


Ten post edytował rokasny 27.11.2013, 18:49:06
Go to the top of the page
+Quote Post
Turson
post
Post #15





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

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


W ukrytym inpucie (type="hidden") umieszczasz id wiersza i dzięki temu odwołujesz się do konkretnego
Go to the top of the page
+Quote Post
rokasny
post
Post #16





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


button mam w 5 kolumnie tabeli (którą wyswietlam dzięki while .. echo $row[]), button nie musi byc ukryty, mamy obliczyć coś dla konkretnego wiersza (np. zamówienie id=1). Chyba, że źle zrozumiałem poradę smile.gif
Go to the top of the page
+Quote Post
Turson
post
Post #17





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

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


  1. <form action.....>
  2. Produkt 1
  3. <input type="hidden" name="id" value="id z bazy">
  4. <input type="submit">
  5. </form>
  6.  
  7. <form action.....>
  8. Produkt 2
  9. <input type="hidden" name="id" value="id z bazy">
  10. <input type="submit">
  11. </form>

i tak dalej
Go to the top of the page
+Quote Post
rokasny
post
Post #18





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


Czy takie rozwiązanie buttona będzie poprawne?

  1. <form method="post" action="index.php" enctype="multipart/form-data"> <input type="submit" name="oblicz" value="oblicz" /> </form> <?php IF (isset($_POST['oblicz'])){ $query = mysql_query('UPDATE... [czy zaktualizuje mi wartościami obliczonymi z funkcji dla tego konkretnego id wiersza?]]'); while($rekord = mysql_fetch_array($query)){ oblicz($row["0"]; } kolejne zapytania sql? } ?>
Go to the top of the page
+Quote Post
Turson
post
Post #19





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

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


Podałem odpowiedź. Każde id jest unikalne, ponadto tylko jeden submit jest wysyłany, więc w zapytaniu $_POST["id"] załatwi sprawę

Ale forma też wrzuć do pętli i powinno być git smile.gif

Ten post edytował Turson 27.11.2013, 19:27:18
Go to the top of the page
+Quote Post
rokasny
post
Post #20





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 23.11.2013

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


Męczę się jak głupi z tym :/ doszedłem do takiej postaci i nie wiem czy jest poprawna i co z zapytaniem?

  1. echo "<table id ='tab-a' boder='1'><tr>";
  2. echo "<td><strong>Lp.</strong></td>";
  3. echo "<td><strong>Nazwa produktu</strong></td>";
  4. echo "<td><strong>Ilość</strong></td>";
  5. echo "<td><strong>Klient</strong></td>";
  6. echo "<td><strong>Termin</strong></td>";
  7. echo "<td><strong>Algorytm</strong></td>";
  8. echo "<td><strong>Usuń</strong></td>";
  9. echo "</tr>";
  10.  
  11. while ( $row = mysql_fetch_row($wynik) ) {
  12. echo "</tr>";
  13. echo "<td>" . $i++ .'.'. "</td>";
  14. echo "<td>" . $row[1] . "</td>";
  15. echo "<td>" . $row[2] . "</td>";
  16. echo "<td>" . $row[3] . "</td>";
  17. echo "<td>" . $row[4] . "</td>";
  18. echo "<td><input type='submit' name='oblicz' value='oblicz' />";
  19. IF (isset($_POST['oblicz']))
  20. {
  21. $query = mysql_query('UPDATE zamowienia SET konkretne ID mam w skrypcie.php jest to $rowzam['ID'] i ma sie równać z row[0]?');
  22. while($rekord = mysql_fetch_array($query))
  23. {
  24. echo "<form method='post' action='skrypt.php'>";
  25. oblicz($row["0"]);
  26. echo "</form>";
  27. }
  28. };
  29. echo "</td>";


Ten post edytował rokasny 27.11.2013, 20:04:46
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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 Aktualny czas: 21.08.2025 - 10:00