Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php+mysql] kasowanie wszystkich rekordów mysql
klapaucius
post 26.07.2009, 17:30:13
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


Witam ponownie. Na mojej stronei stworzylem system prywatnych wiadomosci. Wszystko by bylo ok, gdyby nie to, ze dalem opcje przy kazdej wiadomosci "usun wiadomosc". I jesli na to klikne to usuwa mi wszystkie wiadomosci, ktore sie otrzymalo. To samo się dzieje jesli dam opcje "przeczytana", to wszystkim wiadomosciom daje wartosc "przeczytana". Niem ma bladego pojecia co tam moze byc zle. Tutaj daje kod:
  1. <?php
  2. include("baza.php");
  3. include("gora.php");
  4. $przeczytana = 1;
  5. $q = mysql_query("SELECT login, od, temat, tresc, przeczytana, date, id FROM wiadomosci WHERE login='$user'");
  6. ?>
  7. <b><center>Wiadomości:</center></b>
  8. <br>
  9. <a href="wiadomosci.php">:: Nowa wiadomość</a><br>
  10. :: Kasuj wszystkie wiadomości<br><hr>
  11.  
  12. <?php
  13. while($r = mysql_fetch_array($q)) {
  14. ?>
  15. <table width=100%>
  16. <tr bgcolor=#e6e6e6>
  17. <td><?php echo $r[2] ?></td>
  18. <td><?php echo $r[5] ?></td>
  19. <td><?php echo "<a href=\"profil.php?user=" . $r[1] . "\">"  . $r[1] . "</a>" ?></td>
  20. </tr>
  21. </table>
  22. <table width=100%>
  23. <tr bgcolor=#6e6e6e>
  24. <td>
  25. <?php echo $r[3] ?><br><br>
  26. </td>
  27. </tr>
  28. <tr bgcolor=#e6e6e6>
  29.  
  30. <form action="wiadomosci2.php" method="post">
  31.       <td><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="przeczytana">przeczytana</button><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="kasuj">kasuj</button></td>
  32. </form>
  33. </tr>
  34. </table>
  35. <hr>
  36. <?php
  37. if(isSet($_POST['kasuj'])){ #//tutaj jest ta nieszczesliwa funkja "kasuj" ///
  38.          mysql_fetch_array(mysql_query("DELETE FROM `wiadomosci` WHERE `id`='".$r[6]."'") or die (mysql_error()));
  39.          header("Location: wiadomosci2.php");
  40. }
  41. if(isSet($_POST['przeczytana'])){
  42.          mysql_fetch_array(mysql_query("UPDATE wiadomosci SET przeczytana='".$przeczytana."' WHERE id='".$r[6]."'") or die (mysql_error()));
  43. }
  44. }
  45. include("dol.php");
  46. ?>

Bardzo prosze o pomoc! Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 9)
TrevorGryffits
post 26.07.2009, 19:35:40
Post #2





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 29.07.2007
Skąd: Tarnowskie Góry

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


Z tego co widzę to masz na dużą pętlę. Mianowicie sięga ona aż za ify, co powoduje, że próbują być wykonane dla każdej wiadomości. A resztę możesz juz sobie sam dopowiedzieć;) Musisz pętlę zakończyć przed ifami. Zostanie ci wtedy problem skąd brać właściwy id postu... Ale to już temat na inne opowiadanie;)
Go to the top of the page
+Quote Post
kfc4
post 26.07.2009, 19:41:27
Post #3





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

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


  1. <?php
  2. // Pobierz wiadomości
  3. while (...) {
  4.  //Wyświetl
  5. }
  6. // I dopiero tu:
  7. if ($_POST['usun']) {
  8.  // Usuń $_POST['co']/$_GET['co']
  9. }
  10. // Przeczytana tak samo.
  11. ?>


PS. Musisz się nauczyć robić dobre wcięcia. Tzn. w pętli wcinaj tak samo jak ify wcinasz.

Ten post edytował kfc4 26.07.2009, 19:43:56
Go to the top of the page
+Quote Post
klapaucius
post 27.07.2009, 10:15:50
Post #4





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


no wlasnie, nawet jesli zrobie costakiego :
  1. <?php
  2. include("baza.php");
  3. include("gora.php");
  4. $przeczytana = 1;
  5. $q = mysql_query("SELECT login, od, temat, tresc, przeczytana, date, id FROM wiadomosci WHERE login='$user'");
  6. ?>
  7. <b><center>Wiadomości:</center></b>
  8. <br>
  9. <a href="wiadomosci.php">:: Nowa wiadomość</a><br>
  10. :: Kasuj wszystkie wiadomości<br><hr>
  11.  
  12. <?php
  13. while($r = mysql_fetch_array($q)) {
  14. ?>
  15. <table width=100%>
  16. <tr bgcolor=#e6e6e6>
  17. <td><?php echo $r[2] ?></td>
  18. <td><?php echo $r[5] ?></td>
  19. <td><?php echo "<a href=\"profil.php?user=" . $r[1] . "\">"  . $r[1] . "</a>" ?></td>
  20. </tr>
  21. </table>
  22. <table width=100%>
  23. <tr bgcolor=#6e6e6e>
  24. <td>
  25. <?php echo $r[3] ?><br><br>
  26. </td>
  27. </tr>
  28. <tr bgcolor=#e6e6e6>
  29.  
  30. <form action="wiadomosci2.php" method="post">
  31.       <td><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="przeczytana">przeczytana</button><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="kasuj">kasuj</button></td>
  32. </form>
  33. </tr>
  34. </table>
  35. <hr>
  36. <?php
  37. }
  38. if(isSet($_POST['kasuj'])){
  39.          mysql_fetch_array(mysql_query("DELETE FROM `wiadomosci` WHERE `id`='".$r[6]."'") or die (mysql_error()));
  40.          header("Location: wiadomosci2.php");
  41. }
  42. if(isSet($_POST['przeczytana'])){
  43.          mysql_fetch_array(mysql_query("UPDATE wiadomosci SET przeczytana='".$przeczytana."' WHERE id='".$r[6]."'") or die (mysql_error()));
  44. }
  45. include("dol.php");
  46. ?>

to i tak nic nie usunie bo faktycznie nie wie skad brac id wiadomosci... Nie mam zielonego pojecia jak to zrobic, siedze nad tym prae godzin. Prosze pomozcie sadsmiley02.gif
Go to the top of the page
+Quote Post
dotangelo
post 27.07.2009, 10:44:55
Post #5





Grupa: Zarejestrowani
Postów: 62
Pomógł: 3
Dołączył: 12.04.2007
Skąd: Wągrowiec

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


Sproboj uruchomic to zapytanie poprzez PhpMyAdmin i zobacz czy stanie się to samo.
Pamiętaj aby do bazy dodawać dwie kopie wiadomości, tak, jeśli jeden user usunie otrzymaną wiadomość, to drugiemu nie usunie się wysłana smile.gif
Go to the top of the page
+Quote Post
klapaucius
post 27.07.2009, 12:18:20
Post #6





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


w phpmyadmin dalem takie zapytanie:
  1. DELETE FROM `wiadomosci` WHERE `id`='21'

Nie wiem czy chodzilo o to? W kazdym razie poprawnie usunelo wiadomosc o tym id. A co do tego, zeby robic 2 kopie wiadomosci to faktycznie nie pomyslalem biggrin.gif Dzieki za pomysl.
Jednak dalej prosze o pomoc z moim problemem. pozdro
Go to the top of the page
+Quote Post
kfc4
post 27.07.2009, 16:34:25
Post #7





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

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


Nie wiesz jak przesłać, którą wiadomość ma usunąć? Masz poważne braki widzę, ale już wyjaśniam:
- Podczas wyświetlania, dodaj sobie gdzieś pod wiadomością taki link:
  1. <?php
  2. // coś tam
  3. while (...) {
  4.  // Wyświetl tą wiadomość
  5.  echo '<a href="skrypt.php?usun='.$r[6].'">Usuń</a>'; // Gdzie skrypt.php jest tym Twoim skryptem.
  6.  // I coś tam dalej
  7. }
  8. ?>

Dalej już poza pętlą dajesz(lub przed pętlą, tak będzie nawet lepiej):
  1. <?php
  2. if (isset($_GET['usun'] && is_numeric($_GET['usun']) {
  3.  zapytanie("delete from wiadomosci where id =".$_GET['usun']); // Wykonujesz zapytanie usuwające wiadomość o ID = $_GET['usun']
  4. }
  5. ?>

Oczywiście jeżeli przesyłasz już coś zmienną GET to musisz napisać nie ?usun= tylko &usun=.
Zrozumiałeś? I pamiętaj o wcięciach w kodzie! Bo taki pisany jak leci, w notatniku źle się czyta (najlepsze wcięcia są IMHO ta 2 spacje albo tabulator).
Go to the top of the page
+Quote Post
klapaucius
post 27.07.2009, 18:06:40
Post #8





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


wiem ze wyczerpalem Wasz limit odpowiedzi... Ale zrobilem cos takiego:
  1. <?php
  2. include("baza.php");
  3. include("gora.php");
  4. $przeczytana = 1;
  5. $q = mysql_query("SELECT login, od, temat, tresc, przeczytana, date, id FROM wiadomosci WHERE login='$user'");
  6. ?>
  7. <b><center>Wiadomości:</center></b>
  8. <br>
  9. <a href="wiadomosci.php">:: Nowa wiadomość</a><br>
  10. :: Kasuj wszystkie wiadomości<br><hr>
  11.  
  12. <?php
  13. if (isset($_GET['usun'] && is_numeric($_GET['usun']) {
  14.       mysql_fetch_array(mysql_query("DELETE FROM `wiadomosci` WHERE `id`=".$_GET['usun']."") or die (mysql_error()));
  15. }
  16. while($r = mysql_fetch_array($q)) {
  17. ?>
  18. <table width=100%>
  19. <tr bgcolor=#e6e6e6>
  20. <td><?php echo $r[2] ?></td>
  21. <td><?php echo $r[5] ?></td>
  22. <td><?php echo "<a href=\"profil.php?user=" . $r[1] . "\">"  . $r[1] . "</a>" ?></td>
  23. </tr>
  24. </table>
  25. <table width=100%>
  26. <tr bgcolor=#6e6e6e>
  27. <td>
  28. <?php echo $r[3] ?><br><br>
  29. </td>
  30. </tr>
  31. <tr bgcolor=#e6e6e6>
  32. <td><?php echo '<a href="skrypt.php?usun='.$r[6].'">Usuń</a>'; ?></td>
  33. </tr>
  34. </table>
  35. <hr>
  36. <?php
  37. }
  38. include("dol.php");
  39. ?>

i wywala mi taki błąd:
Parse error: syntax error, unexpected T_BOOLEAN_AND, expecting ',' or ')' in /var/www/virtual/rekrutacjadogildii.cba.pl/wiadomosci2.php on line 13
Czy zamiast
  1. <?php
  2. <form action="wiadomosci2.php" method="post">
  3.       <td><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="przeczytana">przeczytana</button><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="kasuj">kasuj</button></td>
  4. </form>
  5. ?>
nie powinno byc porostu:
  1. <?php echo '<a href="skrypt.php?usun='.$r[6].'">Usuń</a>' ?>

Bardzo Was jeszcze prosze o wyrozumialosc sadsmiley02.gif
Go to the top of the page
+Quote Post
kfc4
post 27.07.2009, 18:42:46
Post #9





Grupa: Zarejestrowani
Postów: 195
Pomógł: 18
Dołączył: 7.10.2007

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


  1. <?php
  2. if (isset($_GET['usun'] && is_numeric($_GET['usun']) {
  3. ?>

na
  1. <?php
  2. if (isset($_GET['usun']) && is_numeric($_GET['usun'])) {
  3. ?>

Skopiowałeś co napisałem bez sprawdzania czy dobrze, a ja zapomniałem domknąć nawiasów. Ach te przyzwyczajenia, zawsze domyka za mnie edytor...
Go to the top of the page
+Quote Post
klapaucius
post 28.07.2009, 12:39:41
Post #10





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

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


  1. <?php
  2. include("baza.php");
  3. include("gora.php");
  4. $przeczytana = 1;
  5. $q = mysql_query("SELECT login, od, temat, tresc, przeczytana, date, id FROM wiadomosci WHERE login='$user'");
  6. ?>
  7. <b><center>Wiadomości:</center></b>
  8. <br>
  9. <a href="wiadomosci.php">:: Nowa wiadomość</a><br>
  10. :: Kasuj wszystkie wiadomości<br><hr>
  11.  
  12. <?php
  13. if (isset($_GET['usun']) && is_numeric($_GET['usun'])) {
  14.       mysql_fetch_array(mysql_query("DELETE FROM `wiadomosci` WHERE `id`=".$_GET['usun']."") or die (mysql_error()));
  15. }
  16. while($r = mysql_fetch_array($q)) {
  17. ?>
  18. <table width=100%>
  19. <tr bgcolor=#e6e6e6>
  20. <td><?php echo $r[2] ?></td>
  21. <td><?php echo $r[5] ?></td>
  22. <td><?php echo "<a href=\"profil.php?user=" . $r[1] . "\">"  . $r[1] . "</a>" ?></td>
  23. </tr>
  24. </table>
  25. <table width=100%>
  26. <tr bgcolor=#6e6e6e>
  27. <td>
  28. <?php echo $r[3] ?><br><br>
  29. </td>
  30. </tr>
  31. <tr bgcolor=#e6e6e6>
  32. <form action="wiadomosci2.php" method="post">
  33. <?php echo '<a href="skrypt.php?usun='.$r[6].'">'; ?>
  34.      <td><button style="border: 0px; background-color: #e6e6e6;" type="submit" name="usun">
  35.      Usuń
  36.      </button></td>
  37. <?php echo '</a>'; ?>
  38. </form>
  39. </tr>
  40. </table>
  41. <hr>
  42. <?php
  43. }
  44. include("dol.php");
  45. ?>

Zrobilem co takiego i teraz wogole nie kasujewiadomosci... Nie wyskakuje zaden blad ani nic... Cos mi sie zdaje ze chyba sobie to cale php odpuszcze bo to nie dla mnie ;/

@edit

Haha dziala! Nie wiem jak to mozliwe ale dziala... Poprostu pobralem najpierw edytor php, a potem zaczolem robic ten skrypt od nowa i... Dziala!! biggrin.gif Faktycznie wczesniej mailem zagmatwane jak cholera... Kurde ale tyle nad tym siedzialem i sie glowilem i jeszcze przede wszystkim Was dreczylem. Dzieki piekne szczegolnie dla kfc4 biggrin.gif Nie wiem jak sie moge odwdzieczyc ... dam ci chociaz buziaka :* biggrin.gif pozdro

Ten post edytował klapaucius 28.07.2009, 13:01:53
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: 23.06.2025 - 19:08