Usuwanie obrazka

0

Cześć. Mam problem. Mam taki kod, który usuwa mi dany rekord z mysql:

// USUWANIE tekstu
function img_usun($id)
{
    // usuwanie artykulu
    $query = "DELETE FROM img WHERE id = '$id'";
    // usuwanie komentarzy
    $query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
  mysql_query($sql, $link);
    // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
    if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! <a href="index.php">wróć</a>';
}
  

W kolumnie 'tresc' mam nazwe obrazka np: 201297833.png
Chcę, aby usuwał mi się wraz z rekordem.
Dałem takie coś, ale nie działa

<?php
$file= $row['tresc'];
$katalog = "./images/";
if (file_exists($katalog.$file)) 
  unlink($katalog.$file);
?> 

Pomożecie mi ?

0

Najpierw pobierasz sobie tego $row['tresc'], bo jak skasujesz rekord, to go już nie pobierzesz. Potem usuwasz plik z dysku (dokładnie tak, przez unlink()) i wykonujesz DELETE na bazie.

Zdefiniuj "nie działa".

0

Wyskakuje:
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in /home/proin/domains/proingressive.hekko.pl/public_html/demo/admin/index.php on line 132
Pomyslnie usunięto obrazek! wróć
I nie usuwa

0
 mysql_query($sql, $link);

co to jest?

0

A no tak, to ze starego tego mi zostało ;/ Dzięki
Ok, bez tego nie ma tego błędu, ale nadal nie usuwa.
Kod wygląda tak:

 
// USUWANIE tekstu
function img_usun($id)
{
$file= $row['tresc'];
$katalog = "./images/";
if (file_exists($katalog.$file)) 
  unlink($katalog.$file);
    // usuwanie artykulu
    $query = "DELETE FROM img WHERE id = '$id'";
    // usuwanie komentarzy
    $query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
    // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
    if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! <a href="index.php">wróć</a>';
}

Dodam że jestem w katalogu admin, a katalog obrazków jest po za nim.

PS. Podoba mi się tutaj, na innych forach każdy hejtował początkującego, dzięki.

1

powiedz mi człowieku jak możesz zaraz na początku funkcji czytać cokolwiek z $row?

0

Dodałem zapytanie, ale nadal nie usuwa. Hmm, nie wiem co może być nie tak
function img_usun($id)
{
$result = mysql_query("SELECT * FROM img WHERE id='$id'");
$row = mysql_fetch_array($result);
$file= $row['tresc'];
$katalog = "./images/";
if (file_exists($katalog.$file))
unlink($katalog.$file);
// usuwanie artykulu
$query = "DELETE FROM img WHERE id = '$id'";
// usuwanie komentarzy
$query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
// jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! wróć';
}

0

Pora na lekcje "debugowania";

function img_usun($id)
 {
   $result = mysql_query("SELECT * FROM img WHERE id='$id'");
print_r($result);
     $row = mysql_fetch_array($result); 
print_r($row);
 $file= $row['tresc'];
 $katalog = "./images/";
 if (file_exists($katalog.$file)) {
  print_r('plik istnieje');
   unlink($katalog.$file);
}
     // usuwanie artykulu
     $query = "DELETE FROM img WHERE id = '$id'";
     // usuwanie komentarzy
     $query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
     // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
     if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! wróć';
 }
0

Hmm. Nie wiem czemu nie działa. Wejdę w pa, i od razu takie coś:
http://scr.hu/6wg/8m09m
Gdy pragnę usunąć obrazek:

Fatal error: Call to undefined function img_usun() in /home/proin/domains/proingressive.hekko.pl/public_html/demo/includes/functions.php on line 17 

Nie mam pomysłów, szukam po manualach, forach ale nic, wszystko nie działa

Functions:

        // usuwanie artykułu
        case 'img_usun':
            img_usun($_GET['id']);
        break; 
1

Call to undefined function img_usun?
A jednocześnie wykonuje Ci się ta funkcja?

Ogólnie ty w ogóle wiesz co to jest funkcja i masz jakieś pojęcie co ty robisz? Bo ten błąd wyjaśnia wszystko.

W dodatku dostajesz Resource, ale potem jest kolejne print_r --- nic nie wyświetla = Twoje zapytanie nie zwraca żadnego wiersza. Sprawdź czy takie ma być. Bo ja widzę, że ty masz usuwanie artykułu - a tabelę masz na obrazy. Obrazki chyba nie mają takich samych ID jak artykuły?

Potem jak powinieneś przeczytać w kodzie (który ode mnie skopiowałeś, w ogóle nie czytając - ot napisał ktoś to skopiuję) - nie wyświetla się informacja o tym, że plik istnieje. Czyli nie istnieje. Ale to dlatego, że wcześniej jest problem z wybraniem wiersza, więc próbujesz usunąć: plik ./images/.

Ogólnie chaos. Nie kojarzysz podstaw, a bierzesz się za jakieś panele. Które są dziurawe BTW (hint: SQL Injection).

0

Mam tylko tabelę z obrazkami. No własnie nie za bardzo mam pojęcie o print_r itp. zaraz doczytam w manualu. //Przeczytałem już.
Po mojemu powinno wszystko działać, prawidłowo mi wyciąga tresc, więc nie widzę problemu na moim etapie wiedzy.

A może by było prościej, bym miał w zapisane w zmiennej nazwę strony, i w tabeli by był cały nick.
By zapisywało się w tabeli cały link, a nie tylko nazwa obrazka.?

Ok, zmieniłem że w polu tresc pojawia sie caly link. Używałem kodu:

  // USUWANIE tekstu
function img_usun($id)
{
   $result = mysql_query("SELECT * FROM img WHERE id='$id'");
     $row = mysql_fetch_array($result); 
	 $file= $row['tresc'];
if (file_exists($file)) 
  unlink($file);
    // usuwanie artykulu
    $query = "DELETE FROM img WHERE id = '$id'";
    // usuwanie komentarzy
    $query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
    // jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
    if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! <a href="index.php">wróć</a>';
}

Dlaczego on nie działa ?!

0

Dzięki, poradziłem sobie:

// USUWANIE tekstu
function img_usun($id)
{
$result = mysql_query("SELECT * FROM img WHERE id='$id'");
$row = mysql_fetch_array($result);
$file= '../'.$row['tresc'];
if (file_exists($file))
unlink($file);
// usuwanie artykulu
$query = "DELETE FROM img WHERE id = '$id'";
// usuwanie komentarzy
$query2 = "DELETE FROM img_comments WHERE id_art = '$id'";
// jeśli zapytania zostaną poprawnie wykonane to wyświetlamy komunikat
if(mysql_query($query) && mysql_query($query2)) echo 'Pomyslnie usunięto obrazek! wróć';
}

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