[PHP][MySQL] Usuwanie rekordów i ich edycja

0

Witam !
Napisałem skrypt który ma za zadanie edytować oraz usuwać rekordy z mysql lecz nic nie zmienia. Poniżej przedstawiam kawałek tego kodu:

/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
$r = @mysql_query("DELETE FROM test WHERE kod");
if(mysql_num_rows($wynik) > 0) {
    /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
    echo "<table cellpadding=\"2\" border=1>";
    while($r = mysql_fetch_assoc($wynik)) {
        echo "<tr>";
        echo "<td>".$r['kod']."</td>";
        echo "<td>
       <a href=\"index.php?a=del&amp;id={$r['id']}\">DEL</a>
       <a href=\"index.php?a=edit&amp;id={$r['id']}\">EDIT</a>
       </td>";

        echo "</tr>";
    }
    echo "</table>";
}

?>

Zrobiłem kod dodawania i wszystko śmiga więc problemów z łączeniem z mysql nie ma :)

Proszę o pomoc.
Pozdrawiam.

0

tak na szybko: skąd Ci się wzięło na samym początku $r - później cały czas jedziesz z $wynik ??? A co jest przypisane do pierwszego wystąpienia $wynik?

0

sory nie umieściłem całego kodu...

/* zapytanie do konkretnej tabeli */
$wynik = mysql_query("SELECT * FROM test")
or die('Błąd zapytania');


/*
wyświetlamy wyniki, sprawdzamy,
czy zapytanie zwróciło wartość większą od 0
*/
$r = @mysql_query("DELETE FROM test WHERE kod");
if(mysql_num_rows($wynik) > 0) {
    /* jeżeli wynik jest pozytywny, to wyświetlamy dane */
    echo "<table cellpadding=\"2\" border=1>";
    while($r = mysql_fetch_assoc($wynik)) {
        echo "<tr>";
        echo "<td>".$r['kod']."</td>";
        echo "<td>
       <a href=\"index.php?a=del&amp;id={$r['id']}\">DEL</a>
       <a href=\"index.php?a=edit&amp;id={$r['id']}\">EDIT</a>
       </td>";

        echo "</tr>";
    }
    echo "</table>";
}

?>
0

Skoro kasujesz wszystko zaraz po pobraniu z bazy, to co zamierzasz edytowac? ...

0

no dobrze... na razie pomińmy edytowanie... co zrobiłem źle że nie usuwa poprzez link DEL :)

0

no musiałbyś zapewne kazać mu to zrobić:

<?php
if(isset($_GET['id']) && (a = "del"))
   {
   $wynik = @mysql_query("DELETE FROM test WHERE id=......
   }
?> 

coś w tym stylu... :)</php>

0
madmike napisał(a)

no musiałbyś zapewne kazać mu to zrobić:

<?php
if(isset($_GET['id']) && (a = "del"))
   {
   $wynik = @mysql_query("DELETE FROM test WHERE id=......
   }
?> 

coś w tym stylu... :)</php>

Warto byłoby też wspomnieć tu o małym zabezpieczeniu, a mianowicie:

mysql_real_escape_string()

żeby nie wpaść z sql_injection, gdy nie sprawdzimy co użytkownik wpisze w pole "id".

Pozdrawiam mac

0

Wiecie co ... tak sobie czytam te wasze wypowiedzi ... i już pod koniec mam sieczkę w mózgu
chciałbym abyście to zobaczyli :
http://www.kess.snug.pl/index.php?sid=10&pid=43
stąd wziąłem ten skrypt ... tylko że od razu coś w nim było zrąbane że funkcje DEL i EDIT w nim nie działają...

Jeżeli dało by radę to bardzo proszę o wstawienie tu na forum co dokładnie należy poprawić aby to śmigało ...

Byłbym bardzo wdzięczny.
Pozdrawiam.

0
mysql_query("DELETE FROM tabelka WHERE `id`='".mysql_real_escape_string($_GET['id'])."'");

Tak skasujesz rekord z bazy o danym id (podanym jako parametr w adresie, np. skrypt.php?id=5 skasuje rekord o id 5. Co do edycji to postępujemy podobnie (również musimy escape`ować dane, ale musimy jeszcze sobie wyświetlić formularzyk (pobrać do niego dane z bazy, a po wysłaniu go zaktualizować rekord w bazie).

Pozdrawiam mac

0

o lol.

wiesz do czego służy 'mysql_num_rows' ? widać nie bardzo ;/

http://pl2.php.net/Mysql_num_rows
poczytaj, później baw się w mysql

0

ludzie pomóżcie ... proszę tylko o jedną rzecz ... :)

0

Przecież masz wszystkie informacje... poskładaj sobie tylko... próbuj... nikt nie będzie robił tego za ciebie. Ew. napisz jak skrypt po twoich przeróbkach wygląda, to ktoś zwróci Ci uwagę na błędy...

BTW: "napisałem skrypt" = "stąd wziąłem ten skrypt"?

1 użytkowników online, w tym zalogowanych: 0, gości: 1