Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: usuwunia rekordu z bazy danych przy uzyciu linka
Forum PHP.pl > Forum > Przedszkole
rbodych
Witam,

Zanim napisałem tego posta przeszukałem forum i jakoś nie znalazłem podobnego problemu. Było natomiast z chexboxami i inne.

Chciałem zrobić tak aby po naciśnięciu linka usunąć jakiś news z bazy danych. Do każdego z newsów jest przyporządkowany id. Mój kod wygląda następująco:
  1. <html>
  2.  
  3. <head>
  4. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">
  5. <title>Nowa strona 2</title>
  6. </head>
  7.  
  8. <body>
  9. <table border=\"1\" valign=\"top\">
  10. <tr>
  11. <th style=\"width: 200px;\" align=\"center\">Tytuł</th>
  12. <th>Data</th>
  13. <th>Szczegóły</th>
  14. <th>Usuń</th>
  15. </tr> 
  16.  
  17. <?php 
  18. require &#092;"mysql_connect.php\";
  19.  
  20.  
  21. $wynik=mysql_query(&#092;"select * from news\");
  22. $wier=mysql_num_rows($wynik);
  23. for($j=0; $j<$wier; $j++){
  24.  $tab=mysql_fetch_row($wynik);
  25.  $id=$tab[0];
  26.  $tytul=mysql_result($wynik,$j, tytul);
  27.  $data=mysql_result($wynik,$j, data);
  28.  print(&#092;"<tr><td>$tytul</td><td>$data</td>\");
  29.  
  30. ?> 
  31. <td><a href=\"szczegoly.php?id=<?php echo $id; ?>\">Szczegoly</a></td>
  32. <td><a href=\"now2.php?id=usun=<?php echo $id; $q=mysql_query(&#092;"DELETE FROM news WHERE id=$id\"); ?>\" >Usun</a> 
  33.  
  34. </td>
  35.  
  36. </tr>
  37. <?php 
  38.  
  39. }
  40.  
  41.  
  42. ?>
  43. </table>
  44. </body>
  45.  
  46. </html>




Mam u siebie dane takie zapytanie przy linku Delete from news where id=$id jednak jak naciśkam link to zamiast jednego newsa to mi wywala wszystkie newsy ii nie mogę sę z tym poradzić. Z php i mysql dopiero zaczynam zabawę. Będe wdzięczny za pomoc.
Kinool
po primo uzywaj tablic GLOBALNYCH!!!

po sekundo to kod jest bardzo nieczytelny sad.gif przedstawe ci prosty scheamt, moze sobie cos z niego wezmiesz smile.gif

  1. <?php
  2. include_once('poczaczeni_z_baza.php');
  3.  
  4. if (isset($_GET['id']))
  5. {
  6. $_GET['id'] = intval($_GET['id']);
  7.  $pytanie = mysql_quer('DELETE FROM news WHERE id=.'$_GET['id']);
  8. }
  9.  
  10.  
  11. $pytanie = mysql_query('SELECT id, tytul FROM newsy ORDER BY id DESC');
  12. while ($wynik = mysql_fetch_assoc($pytanie))
  13. {
  14.  echo 'News '.$wynik['tytul'].' <a href=\"skrypt.php?id='.$wynik['id'].'>usun</a><br />';
  15. }
  16.  
  17. ?>


pisane z palaca lae powinno dzialac
Vertical
@Kinool: isset() nie zawsze działa na tekst. Lepiej byłoby użyć
  1. <?php
  2. if ($_GET['id'] != '');
  3. ?>
rbodych
no wlasnie z tamtym mi wywala taki błąd w przeglądarce

Parse error: parse error, unexpected T_VARIABLE in /home/ekasa/domains/ekasa.thc.net.pl/public_html/wsti/now2.php on line 23

a dokladniej chodzi o $pytanie = mysql_query('DELETE FROM news WHERE id=.'$_GET['id']);

a z tym drugim kodem to nie bardzo rozumiem
Vertical
  1. <?php
  2. $pytanie = mysql_query(&#092;"DELETE FROM news WHERE id=$_GET['id']\")
  3. ?>
Kinool
niezupelnie Vertical smile.gif

blad byl ze kropka nie w tym miejscu co byc powinna smile.gif
  1. <?php
  2. $pytanie = mysql_query('DELETE FROM news WHERE id='.$_GET['id']);
  3. ?>


teraz powinno buc ok smile.gif

PS. pisalem ze to z palca, bez sprawdzania smile.gif
rbodych
  1. <html>
  2.  
  3. <head>
  4. <meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-2\">
  5. <title>Nowa strona 2</title>
  6. </head>
  7.  
  8. <body>
  9.  
  10. <?php 
  11. require &#092;"mysql_connect.php\";
  12.  
  13. if (isset($_GET['id']))
  14. {
  15.  $_GET['id'] = intval($_GET['id']);
  16.  $pytanie = mysql_query(&#092;"DELETE FROM news WHERE id=$_GET['id']\")
  17.  
  18. }
  19.  
  20.  
  21. $pytanie = mysql_query('SELECT id, tytul FROM news ORDER BY id DESC');
  22. while ($wynik = mysql_fetch_assoc($pytanie))
  23. {
  24. echo 'News '.$wynik['tytul'].' <a href=\"now2.php?id='.$wynik['id'].'>usun</a><br />';
  25.  
  26. }
  27. ?>
  28.  
  29. </body>
  30.  
  31. </html>

DAłem tak i nadal ten błąd na serwie Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /home/ekasa/domains/ekasa.thc.net.pl/public_html/wsti/now2.php on line 16

Albo ja jestem taki tępy że tego nie potrafie zrobić albo tu cośw kodzie jest nie tak . A jest moze jakiś prostzy sposób może ?
Kinool
  1. <?php
  2. if (isset($_GET['id']))
  3. {
  4. $_GET['id'] = intval($_GET['id']);
  5. $pytanie = mysql_query('DELETE FROM newsy WHERE id='.$_GET['id']);
  6. }
  7.  
  8.  
  9. $pytanie = mysql_query('SELECT id, tytul FROM newsy ORDER BY id DESC');
  10. while ($wynik = mysql_fetch_assoc($pytanie))
  11. {
  12. echo 'News '.$wynik['tytul'].' <a href=\"skrypt.php?id='.$wynik['id'].'\">usun</a><br />';
  13.  
  14. }
  15. ?>


zakladam ze tabela z newsami nazywa sie newsy i sa tam takie pola jak id oraz tytul oraz ze skrypt jest w pliku o nazwie skrypt.php smile.gif
jesli wywala jakis bald to podaj linijke w ktorej sie czepia i sasiadujace z nia
rbodych
działa dzieki smile.gif tabela nazywa sie news a plik now2.php ale juz sam po zmienialem to co trzeba i juz dziala
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.