Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> Usuwanie rekordów
renault12
post
Post #1





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Witam,

Napotkałem problemik dotyczacy usuwania rekordow z bazy danych.
Otóż mam taki kod:
  1. <?
  2. $start = $_GET['start'];
  3. $na_stronie = 8;
  4. $wykonaj=mysql_query("SELECT * FROM images");
  5. $znaleziono=mysql_num_rows($wykonaj);
  6. if($znaleziono>$na_stronie) {
  7. print '<center>Strona ';
  8. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++)
  9. print '<a href="galeria.php?start='.($i*$na_stronie).'">'.($i+1).'</a> | ';
  10. }
  11. print '</center>';
  12.  
  13. $query = "SELECT * FROM images LIMIT ".($start).",".$na_stronie."";
  14. $result = mysql_query ($query);
  15. while ($row = mysql_fetch_assoc($result))
  16. {
  17. $obraz = $row['tn_filename'];
  18. $obrazduzy = $row['filename'];
  19. ?>
  20. <div id="mejn"> <?
  21. $uss = $_SESSION['user_name'];
  22. $edytt = mysql_query("SELECT user_name FROM users WHERE ranga='1'");
  23. while ($e = mysql_fetch_assoc($edytt)) {
  24. $tp = $e['user_name'];
  25. }
  26. if ($tp == $uss) {
  27. if ($e['ranga'] = 1) {
  28. if(isset($_GET['usun'])) {
  29. mysql_query("DELETE FROM `images` WHERE `idx` = '".$_GET['usun']."'");
  30. header ("usuwanie.php");
  31. }
  32. $rezultat = mysql_query("SELECT * FROM `images` WHERE idx = ".$row['idx']." limit 1") or die("Błąd 2");
  33. $i = 0;
  34. while ($record = mysql_fetch_array($rezultat, MYSQL_ASSOC)) {
  35. ?> <center><font size="2"> <? echo "<a href=\"galeria.php?usun=".$record['idx']."\"> - Usuń - </a>"; ?> </font></center> <?
  36. $i++;
  37. }
  38. }
  39. }
  40. echo "<a href='galleria/images/".$obrazduzy."'><img src='galleria/images/".$obraz."' border='0' />"; ?> </div>
  41. <?
  42. }
  43. ?>


W tym kodzie mam zawarte stronnicowanie, ktore dobrze chodzi, lecz jest problem w kodzie gdzie zaczyna sie usuwanie rekordów. Nad obrazkiem jest link usun i przypisany do niego id ktore wyglada mniej wiecej tak po najechaniu na niego myszka "http://blablabla.blabla.pl/blabla/galeria.php?usun=7". W momencie kiedy go naciskam, wraca do strony galeria.php i nic sie nie dzieje, nie usuwa sie zaden wpis do bazy danych.

Prosze o pomoc winksmiley.jpg

Ten post edytował renault12 27.01.2010, 20:02:13
Go to the top of the page
+Quote Post
Fifi209
post
Post #2





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Pierwszy rzut oka:
  1. mysql_query("DELETE FROM `images` WHERE `idx` = '".$_GET['usun']."'");
  2. header ("usuwanie.php");
  3. }


header('Location: usuwanie.php');

i czemu jak wstawiasz liczby to dajesz w apostrofy ? lubisz generować dodatkowe zadania bazie w postaci konwertowania stringa na int?


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
renault12
post
Post #3





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


1. Zmieniłem kod na taki jak kazałeś lecz dalej nie usuwa z bazy rekordow
2. Po nacisnieciu nie przenosi na podana strone : /
3.A dodawanie z apostrofami koliduje z czyms ? tzn . moze zaszkodzic rekordom etc.?
Go to the top of the page
+Quote Post
Fifi209
post
Post #4





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(renault12 @ 27.01.2010, 20:32:19 ) *
1. Zmieniłem kod na taki jak kazałeś lecz dalej nie usuwa z bazy rekordow

Nic nie kazałem, tylko wskazałem jeden z błędów który akurat rzucił mi się w oczy.
Cytat(renault12 @ 27.01.2010, 20:32:19 ) *
2. Po nacisnieciu nie przenosi na podana strone : /

Czyżby: headers already sent?
Cytat(renault12 @ 27.01.2010, 20:32:19 ) *
3.A dodawanie z apostrofami koliduje z czyms ? tzn . moze zaszkodzic rekordom etc.?

Koliduje z wydajnością winksmiley.jpg

Zrób sobie w php warunek:
  1. if ('1' === 1)
  2. echo 'ok';
  3. else
  4. echo 'oj cos nie tak';


To nie jest to samo winksmiley.jpg


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
renault12
post
Post #5





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


No masz z tymi apostrofami racje.
Ale odswieze prosbe na temat usuwanie tych rekordow : P

mam tutaj kod który dziala do usuwania newsow :

  1. $wyn = mysql_query("SELECT * FROM news ORDER BY id DESC LIMIT 10")
  2. or die('Błąd zapytania');
  3. if(mysql_num_rows($wyn) > 0) {
  4. while($s = mysql_fetch_assoc($wyn)) {
  5. ?> <font color="blue"><b><font size="3"> <?
  6. echo "".$s['tytul']."";
  7. ?> </font></b></font>
  8. <font size="1.5"> <?
  9. echo "<br/>";
  10. echo "Napisany w ".$s['czas'].", przez ".$s['userr']."";
  11. ?> </font> <font size="2.5"><text align="left"> <?
  12. echo "<br/>";
  13. echo "<br/>".$s['newsy']."";
  14. echo "<br/>";
  15. echo "<br/>";
  16. echo "<br/>";
  17. $edytt = mysql_query("SELECT user_name FROM users WHERE ranga='1'");
  18. while ($e = mysql_fetch_assoc($edytt)) {
  19. $tp = $e['user_name'];
  20. }
  21. if ($tp = $uss) {
  22. if(isset($_GET['usun'])) {
  23. mysql_query("DELETE FROM `news` WHERE `id` = '".$_GET['usun']."'");
  24. header ("usuwanie.php");
  25. }
  26. $rezultat = mysql_query("SELECT * FROM `news` WHERE id = ".$s['id']." limit 1") or die("Błąd 2");
  27. $i = 0;
  28. while ($record = mysql_fetch_array($rezultat, MYSQL_ASSOC)) {
  29. ?> <p align="right"> <? echo "<a href=\"index.php?usun=".$record['id']."\"> - Usuń - </a>";
  30. $i++;
  31. }
  32. ?> </p><?
  33. }
  34. echo "<br/>";
  35. echo "<br/></font>";
  36. }
  37. echo "</table>";
  38. }


Prawie taki sam jest ten ktory podalem na gorze, lecz tamten nie dziala.

Ten post edytował renault12 27.01.2010, 21:12:36
Go to the top of the page
+Quote Post
Fifi209
post
Post #6





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Cytat(renault12 @ 27.01.2010, 21:08:25 ) *
No masz z tymi apostrofami racje.
Ale odswieze prosbe na temat usuwanie tych rekordow : P

  1. if ($e['ranga'] = 1) {


Teraz mi się rzuciło w oczy, ma być chyba podwójny znak równości.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
renault12
post
Post #7





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


No masz racje, juz poprawilem kod.

A co do tego usuwania to nie wiem co jest bo przy wcisnieciu "usun" przenosi i nie usuwa. Jak wpisuje naprzyklad
  1. echo $record['idx'];
wypisuje mi id w bazie naprzyklad "9". Adres odnosnika jest dobry rowniez. Nie wiem, widac to jakby nie wykonywalo akcji usuwania z bazy co do tego idzie nie wykrywa nacisniecia przycisku usun a powinno.
Go to the top of the page
+Quote Post
Fifi209
post
Post #8





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Pokaż mi przerobiony kod, według moich zaleceń i podpowiedzi.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
renault12
post
Post #9





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


  1. <div id="mainContent">
  2. <?
  3. if(isset($_GET['usun'])) {
  4. mysql_query("DELETE FROM `images` WHERE `idx` = '".$record['idx']."'");
  5. }
  6. $start = $_GET['start'];
  7. $na_stronie = 8;
  8. $wykonaj=mysql_query("SELECT * FROM images");
  9. $znaleziono=mysql_num_rows($wykonaj);
  10. if($znaleziono>$na_stronie) {
  11. print '<center>Strona ';
  12. for($i=0; $i<ceil($znaleziono/$na_stronie); $i++)
  13. print '<a href="galeria.php?start='.($i*$na_stronie).'">'.($i+1).'</a> | ';
  14. }
  15. print '</center>';
  16.  
  17. $query = "SELECT * FROM images LIMIT ".($start).",".$na_stronie."";
  18. $result = mysql_query ($query);
  19. while ($row = mysql_fetch_assoc($result))
  20. {
  21. $obraz = $row['tn_filename'];
  22. $obrazduzy = $row['filename'];
  23. ?>
  24. <div id="mejn"> <?
  25. $uss = $_SESSION['user_name'];
  26. $edytt = mysql_query("SELECT user_name FROM users WHERE ranga=1");
  27. while ($e = mysql_fetch_assoc($edytt)) {
  28. $tp = $e['user_name'];
  29. if ($tp == $uss) {
  30. if(isset($_GET['usun'])) {
  31. mysql_query("DELETE FROM `images` WHERE `idx` = '".$_GET['usun']."'");
  32. }
  33. $rezultat = mysql_query("SELECT * FROM `images` WHERE idx = ".$row['idx']." limit 1") or die("Błąd 2");
  34. while ($record = mysql_fetch_array($rezultat, MYSQL_ASSOC)) {
  35. ?> <center><font size="2">
  36. <?
  37. echo $record['idx']; //(wyświetla prawidłowo)
  38. echo "<a href=\"galeria.php?usun=".$record['idx']."\"> - Usuń - </a>"; ?> </font></center> <?
  39. }
  40. }
  41. }
  42. echo "<a href='galleria/images/".$obrazduzy."'><img src='galleria/images/".$obraz."' border='0' />";
  43. ?> </div>
  44. <?
  45. }
  46. ?>
  47. </div>
  48. <br class="clearfloat" />
  49. <div id="footer">
  50. <p><center><font size="-2">? Copyright 2010 by Johny</p></center></font>
  51. </div>
  52. </div>
  53. </body>
  54. </html>


Ten post edytował renault12 28.01.2010, 20:01:28
Go to the top of the page
+Quote Post
Fifi209
post
Post #10





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


A coś się tak uparł, że to usuwanie etc. musi być w jednym pliku? O wiele prościej jest to rozbić na kilka plików - łatwiej edytować i kod nie jest tak zagmatwany.


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
szamburdsz
post
Post #11





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 16.01.2010
Skąd: Chodzież

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


Wystarczy, ze zrobisz tak:
  1. mysql_query("DELETE FROM images WHERE idx = '$record[idx]'");
Go to the top of the page
+Quote Post
renault12
post
Post #12





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Zmieniłem i też zdjecie sie nie usuwa.
Co do rozbicia to nie wiem zabardzo jak to zrobic, poniewaz nie chce mi przypisywac zmiennej do usuwania przy odpowiednim obrazku po kolei.
Prosze o pomoc

Zauważyłem takze gdy usuwam warunek if i w ogole pozostawiam ta czesc kodu w takim stanie:
  1. mysql_query("DELETE FROM `images` WHERE `idx` = '".$_GET['usun']."'");

Obrazek usuwa się po wejściu, lecz teraz co jest źle w tym ifie?
  1. if(isset($_GET['usun'])) {
  2. mysql_query("DELETE FROM `images` WHERE `idx` = '".$_GET['usun']."'");
  3. }


Ten post edytował renault12 29.01.2010, 23:26:29
Go to the top of the page
+Quote Post
Fifi209
post
Post #13





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Zamiast sprawdzać isset czy zmienna istnieje, sprawdź czy nie jest pusta empty


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
Go to the top of the page
+Quote Post
renault12
post
Post #14





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Yhm, też nie działa ani !empty ani empty.
Go to the top of the page
+Quote Post
szamburdsz
post
Post #15





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 16.01.2010
Skąd: Chodzież

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


Sprawdź na początku wartość $_GET['usun']
  1. echo $_GET['usun'];

warunek masz prawidłowy
  1. if(isset($_GET['usun']))
  2. {
  3.  
  4. }
Go to the top of the page
+Quote Post
renault12
post
Post #16





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Gdziekolwiek wstawie to nie wyswietla sie wartosc usun.
Go to the top of the page
+Quote Post
szamburdsz
post
Post #17





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 16.01.2010
Skąd: Chodzież

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


A czy wartość $_GET['usun'] pojawia się w adresie przeglądarki internetowej?

http://galeria.php?usun=wartosc

po kliknięciu w link Usuń

Ten post edytował szamburdsz 31.01.2010, 21:07:33
Go to the top of the page
+Quote Post
renault12
post
Post #18





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


tak, zgodnie z id obrazka
Go to the top of the page
+Quote Post
szamburdsz
post
Post #19





Grupa: Zarejestrowani
Postów: 26
Pomógł: 1
Dołączył: 16.01.2010
Skąd: Chodzież

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


a masz register_globals na off w konfiguracji serwera?
Go to the top of the page
+Quote Post
renault12
post
Post #20





Grupa: Zarejestrowani
Postów: 147
Pomógł: 0
Dołączył: 9.01.2010

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


Używam cba.pl jako hosting a oni chyba mają to właczone.
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: 20.08.2025 - 10:38