![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
Chcac brnac dalej w tajniki php i MySQL, natrafilem na kolejny klopot - tym razem w logach pusto. Stworzylem linka:
Kod echo "<a href='$PHP_SELF?action=delete_record&row=$row[3]'>skasuj</a><br>";
i potem funkcje: Kod function delete_record() {
$roz_del_db = "DELETE FROM adresy WHERE ID = $_GET[row]"; $rezultat = mysql_query($roz_del_db); } No i gdy klikam na linka, przegladarka dobrze go rozpoznaje (w zaleznosci od ID wpisu): http://serwer/php/baza.php?action=delete_record&row=31 ale nic sie nie kasuje. W logach, jak wspomnialem na wstepie, cisza. Gdzie jest problem? Powiem tylko, ze napisalem sobie to na podstawie ksiazki i kurcze nie wychodzi ![]() |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
zrób tak:
[php:1:c0de10c95f]<?php $pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt); ?>[/php:1:c0de10c95f] Jeżeli się wyświetli błąd, wrzuć otrzymane zapytanie do PHPmyAdmin i zobacz, co się stanie. I jeszcze cos - przed wprowadzeniem danych do zapytania, należy je choć odrobinę skontrolować, choćby [php:1:c0de10c95f]<?php $row= addslashes($_GET[row] ); ?>[/php:1:c0de10c95f] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
No i kurcze nie dziala. Wkleje calosc jaka mam:
[php:1:d7bab28120]<? $wynik = mysql_query("SELECT * FROM adresy ORDER BY $sort_b"); while($row = mysql_fetch_row($wynik)) { echo "uin: " . $row[3] . "<br>"; echo "imie: " . $row[0] . "<br>"; echo "nazwisko: " . $row[1] . "<br>"; echo "<b>numer gg: </b>" . $row[2] . "<br>"; global $PHP_SELF; echo "<a href='$PHP_SELF?action=delete_record&row=$row[3]'>skasuj</a><br>"; echo "<br>"; } function delete_record() { $pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt"); } ?>[/php:1:d7bab28120] Tak to wyglada po modyfikacji zrobionej przez Ciebie. Dalej nie wywala nigdzie bledu, wszystko niby OK, a rekord nadal istnieje... |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
A ... to bedzie nieco idiotyczne pytanie - gdzie wywołujesz, uruchamiasz ta funkcję? Bo w podanym przez Ciebie kodzie brakuje zapisu typu :
[php:1:bdb2f9a9d0]<?php if ($_REQUEST['action'] == 'delete_record'){ delete_record() } ?>[/php:1:bdb2f9a9d0] -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 401 Pomógł: 0 Dołączył: 18.04.2003 Skąd: Trójmiasto Ostrzeżenie: (0%) ![]() ![]() |
a zerznales poprostu przez copy/paste to co napisal DeyV ? bo tutaj --> [php:1:b0a46b1214]<?php
$pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt); ?> [/php:1:b0a46b1214] chyba brakuje jednego -->"<-- koncowka powinna byc taka chyba [php:1:b0a46b1214]$rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt"); [/php:1:b0a46b1214] heh a wlasnie gdzie masz wywolanie do funkcji ktora usuwa ![]() |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
Nie. nie zerznalem (to nie w moim stylu)
![]() Cytat heh a wlasnie gdzie masz wywolanie do funkcji ktora usuwa
![]() Chyba nie rozumiem. Generalnie zrobilem teraz tak: [php:1:df4887cf92]<?php while($row = mysql_fetch_row($wynik)) { echo "uin: " . $row[3] . "<br>"; echo "imie: " . $row[0] . "<br>"; echo "nazwisko: " . $row[1] . "<br>"; echo "<b>numer gg: </b>" . $row[2] . "<br>"; global $PHP_SELF; echo "<a href='$PHP_SELF?action=delete_record&row=$row[3]'>skasuj</a><br>"; echo "<br>"; } if ($_REQUEST['action'] == 'delete_record'){ delete_record() } function delete_record() { $pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt"); } ?>[/php:1:df4887cf92] No i dalej nie dziala. I tak jak mowilem wczesniej: nie wyskakuje w ogole blad ani nic. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Przyjaciele php.pl Postów: 786 Pomógł: 0 Dołączył: 18.03.2002 Skąd: Wroclaw/Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat No i dalej nie dziala. I tak jak mowilem wczesniej: nie wyskakuje w ogole blad ani nic. troszke dziwne ale:
1) dodaj echo $pyt; przed wykonaniem. 2) dodaj na koniec pliku echo mysql_error(); tak czy siak cosik na oko tutaj nie gra.. pozdrawiam -------------------- .. make web your home ..
|
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
Ha, niezly numer! Oczywiscie zrobilem wszystko co mi kazaliscie... i cos sie ruszylo. Kod obecnie wyglada tak:
[php:1:34e9579a9e]<?php if ($_REQUEST["action"] == "delete_record"){ delete_record(); } function delete_record() { $pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt"); } ?>[/php:1:34e9579a9e] Jak "latwo" zauwazyc, pozmienialem z apostrofow na cudzyslowy w regule $_REQUEST. I dziala! Ale! Aby skasowac jakikolwiek rekord, musze klikac na linka skasuj po 2 razy! Dlaczego? |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 4.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
[php:1:cfbe37b4d9]<?php
function delete_record() { global $_GET[row]; $pyt = "DELETE FROM adresy WHERE ID = $_GET[row] "; $rezultat = mysql_query($pyt) or die ("Błąd w pytaniu $pyt"); } ?>[/php:1:cfbe37b4d9] nie wnikalem zbytnio, ale widze brak global'a w funkcji, wiec moze tak pojdzie ... ? -------------------- Wszystko ... co na świecie interesujące, bierze się z czyichś dziwacznych myśli [David Lynch]
Andrzej Lepper to Kretyn< |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 208 Pomógł: 0 Dołączył: 19.04.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat [..]You don't need to do a global $_GET; to access it within functions or methods, as you do with $HTTP_GET_VARS.[..]
[php:1:db98c5549f]<?php if ( $_REQUEST["action"] == "delete_record" ) { delete_record(); } function delete_record() { $pyt = mysql_query( "DELETE FROM adresy WHERE ID = " . $_GET['row'] ) or die( mysql_error() ); } ?>[/php:1:db98c5549f] A tak? |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 680 Pomógł: 0 Dołączył: 1.10.2002 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Cytat "][php:1:97406cae9b]<?php
[...] global $_GET[row]; [...] ?>[/php:1:97406cae9b] nie wnikalem zbytnio, ale widze brak global'a w funkcji, wiec moze tak pojdzie ... ? No Ty chyba żartowałeś... ![]() global dla tablicy $_GET :?: -------------------- "Czerp z innych, ale nie kopiuj ich. Bądź sobą." Michel Quoist
|
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 151 Pomógł: 0 Dołączył: 4.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
Cytat No Ty chyba żartowałeś... :D
global dla tablicy $_GET :?: fakt, wymsknelo mnie sie ![]() zdrovka zycze -------------------- Wszystko ... co na świecie interesujące, bierze się z czyichś dziwacznych myśli [David Lynch]
Andrzej Lepper to Kretyn< |
|
|
![]()
Post
#13
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
[php:1:912fb3bbb4]<?php
if($_GET["action"] == "del"){ delete_record(); } function delete_record() { $pyt = "DELETE FROM adresy WHERE ID = $_GET[row]"; $rezultat = mysql_query($pyt); } $wynik = mysql_query("SELECT * FROM adresy ORDER BY $sort_b"); while($row = mysql_fetch_row($wynik)) { echo "uin: " . $row[3] . "<br>"; echo "imie: " . $row[0] . "<br>"; echo "nazwisko: " . $row[1] . "<br>"; echo "<b>numer gg: </b>" . $row[2] . "<br>"; global $PHP_SELF; echo "<a href='$PHP_SELF?action=del&row=$row[3]'>skasuj</a><br>"; echo "<br>"; } ?>[/php:1:912fb3bbb4] Przeczytalem wszystkie Wasze porady i napisalem sobie takie cos, co widzicie powyzej, i... dziala! ![]() |
|
|
![]()
Post
#14
|
|
![]() Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław ![]() |
Jedna uwaga - przydatna na przyszłość.
Jeżeli zamieżasz korzystać z jakiejś funkcji, to dobrym nawykiem jest jej zdefiniowanie przed użyciem. W php 4 nie ma to znaczenia, ale w innych jezykach, (również w php 5) inaczej może nie zadziałać. -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 191 Pomógł: 0 Dołączył: 16.05.2003 Skąd: POLAND Ostrzeżenie: (0%) ![]() ![]() |
Czy w ostatnim listingu ktory wkleilem zrobilem dobrze? Bo napisalem funkcje wyzej niz kod ktory owa funkcje wywoluje
![]() [php:1:d8c72ba74b]<?php echo "<b>numer gg: </b>" . "$gg"; ?>[/php:1:d8c72ba74b] i zdefiniowalem wyzej: [php:1:d8c72ba74b]<?php $gg = "<a href="gg:" . $row[2] . ""><img src="http://www.gadu-gadu.pl/users/status.asp?id=" . $row[2] . "" alt="Status GG" align="absmiddle" width="16" height="16" hspace="3" border="0"></a>"; ?>[/php:1:d8c72ba74b] wszystko by bylo dobrze, gdyby nie fakt, ze zmienna $gg musze wsadzic rowniez do petli, a nie gdzies w stopce strony - dlaczego tak sie dzieje? Jesli wstawie gdzies wyzej, to zamiast numerka, pojawia sie $row[2] |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 13.08.2025 - 22:50 |