[php]problem z zapytaniem UPDATE wyślij dane

wszystkie avatary są dodawane do jednego folderu,tylko pytanie jak teraz sprawdzić nazwę pliku avatara???klecę coś takiego

<?php include("config.php");

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];

    if ((empty($nick)) AND (empty($haslo))) {

echo '
Nie byłeś zalogowany albo zostałeś wylogowany
Strona Główna
';

exit;

}

$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));

    if (empty($user[id]) OR !isset($user[id])) {

echo '
Nieprawidłowe logowanie.
';

exit;

}

// tresc dla zalogowanego uzytkownika

echo 'Witaj '.$user[nick].''; echo '
';	 

echo 'Wyloguj mnie'; echo 'Dodaj tapete'; echo 'Zobacz profile'; echo '
'; require'db.php'; $query = "SELECT link_avatar FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1 ";	

$result = mysql_query($query) or die(mysql_error($mysqli)); $row = mysql_fetch_object($nick);

if ($result) { $folder= "avatar/img"; //podajemy nazwę folderu do oczyszczenia i usunięcia

$dir = opendir($folder);

  while($a = readdir($dir)) { $nick = $_SESSION['nick']; if(!empty($_POST['name']))

{	$a=

	//jak sprawdzamy plik avatara	

		{

    if($a!='.' or $a!='..') { //jeżeli nazwą pliku nie jest . lub ..

      unlink($folder."\\".$a); $row = mysql_fetch_object($user[id]);

		$id=$row->$user[nick]; $zapytanie = "DELETE FROM uzytkownicy SET link_avatar='$path_file' WHERE nick='$nick'";

$idzapytania = mysql_query($zapytanie); if(!$zapytania)

		{

			echo "Wykonanie zapytania zawiodło. Nie można usunac avatara. " . mysqli_error();

		}

		else

		{

			echo "Udało się usunac avatar"; header('Location: ?id=edycjaprofili&edycjaprofili.php');																																																																																																										

    }

?>[/code]

jak sprawdzić nazwę pliku???

Za bardzo kombinujesz, przecież nazwę avataru masz w bazie więc po co cokolwiek sprawdzać? Dajesz unlink($folder."\".$nazwaAvataru); co najwyżej może wywalić error że plik nieznaleziony ale wtedy można “zdusić” ten błąd. Dodatkowo widzę dziwne zapytanie typu

$zapytanie = "DELETE FROM uzytkownicy SET link_avatar='$path_file' WHERE nick='$nick'";

Zamiast DELETE FROM dajesz update i co to jest $path_file.

mario mam błąd w lini 21

<?php include("config.php");

$nick = $_SESSION['nick'];

$haslo = $_SESSION['haslo'];

    if ((empty($nick)) AND (empty($haslo))) {

echo '
Nie byłeś zalogowany albo zostałeś wylogowany
Strona Główna
';

exit;

}

$user = mysql_fetch_array(mysql_query("SELECT * FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1"));

    if (empty($user[id]) OR !isset($user[id])) {

echo '
Nieprawidłowe logowanie.
';

exit;

}

// tresc dla zalogowanego uzytkownika

echo 'Witaj '.$user[nick].''; echo '
';	 

echo 'Wyloguj mnie'; echo 'Dodaj tapete'; echo 'Zobacz profile'; echo '
'; require 'db.php'; $query = "SELECT link_avatar FROM uzytkownicy WHERE `nick`='$nick' AND `haslo`='$haslo' LIMIT 1 ";	

$result = mysql_query($query) or die(mysql_error($mysqli)); $row = mysql_fetch_object($nick);

if ($result) {																																																																																																																										

$folder= "avatar/img"; //podajemy nazwę folderu do oczyszczenia i usunięcia

$dir = opendir($folder);

  while($a = readdir($dir)) { $nick = $_SESSION['nick']; if(!empty($_POST['name']))

	{ $folder= "avatar/img"; $p_nazwa_zm="avatar/img/" $path_file=$folder.$p_nazwa_zm;																																																																																																									

    if($a!='.' or $a!=$path_file) { //jeżeli nazwą pliku nie jest . lub ..

      unlink($folder."\\".$a); $row = mysql_fetch_object($user[id]);

		$id = $row->$user[nick]; $zapytanie = "UPDATE uzytkownicy SET link_avatar='$path_file' WHERE nick='$nick'";

$idzapytania = mysql_query($zapytanie); if(!$zapytania)

		{

			echo "Wykonanie zapytania zawiodło. Nie można usunac avatara. " . mysqli_error();

		}

		else

		{

			echo "Udało się usunac avatar"; header('Location: ?id=edycjaprofili&edycjaprofili.php');																																																																																																										

    }

?>[/code]

wiem,że błąd jest ze sprawdzeniem pliku img.Jak to zrobić???

Po pierwsze pobierz ten program http://www.dobreprogramy.pl/Geany,Progr … 18731.html - bo ten którego używasz robi rozpierdziel(no chyba że Ty robisz takie dalekie wcięcia). Po drugie zacznij stosować wcięcia (o normalnych “rozmiarach” i w jakiejś harmonii). Następnie przypatrz się swojemu kodowi(a masz tam błędy).

Żeby ukryć występujący błąd przed unlik napisz @ - @unlink() (chociaż zamiast tego lepiej wcześniej sprawdzić czy plik istnieje http://php.net/manual/en/function.file-exists.php).

http://php.net/manual/en/function.mysql … object.php

Folder jest avatar/img.,a plik zaczyna się od img .Jak to sprawdzić.Czy najpierw wyciągnąć z bazy avatara z bazy SELECT,póżniej sprawdzenie sprawdzenie go i usunięcie???

Kolejno

  • pobierasz nazwę pliku - bo musisz wiedzieć co usunąć

  • sprawdzasz czy plik istnieje - jeżeli tak to usuwasz go z folderu

  • jeżeli użytkownik chce podmienić avatar to ładujesz nowy do konkretnego folderu

  • usuwasz/ bądź podmieniasz nazwę starego avatara w bazie danych

Czy nazwę pliku pobieramy z bazy,bo musi być przecież plik wysłany przez danego użytkownika???

Starą nazwę pliku pobierasz z bazy danych, nowa nazwa dla avataru(pliku) nadawana jest podczas przekopiowywania do konkretnego folderu(jest niezależna od nazwy pliku jaki użytkownik załadował na serwer) i zapisywana do bazy danych.