[php]problem z uzupełnianiem zdjęć w bazie

Pomocy!!!usiłuje zrobić zakładanie profili z avatarem,problem jest bo skrypt dodaje avatara jako nowy rekord do bazy.O to ten plik:

<?php

if(isset($_GET['plik']) && $_GET['plik']=='dodaj')

	{

		$p_pojemnosc=$_FILES['plik']['size'];

		$p_typ=$_FILES['plik']['type'];

		if( strpos( $p_typ, 'image/jpeg' ) === false )

   			die( 'Wybrany plik nie plikiem jpg.' );

		$p_nazwa=$_FILES['plik']['name'];

		$p_smiec=$_FILES['plik']['tmp_name'];

		$p_nazwa = strtolower($p_nazwa);

		$p_nazwa = str_replace("ż","z",$p_nazwa);

		$p_nazwa = str_replace("ą","a",$p_nazwa);

		$p_nazwa = str_replace(" ","",$p_nazwa);

		$p_nazwa = str_replace("_","",$p_nazwa);

		$p_nazwa = str_replace("ś","s",$p_nazwa);

		$p_nazwa = str_replace("ł","l",$p_nazwa);

		$p_nazwa = str_replace("ó","o",$p_nazwa);

		$p_nazwa = str_replace("ń","n",$p_nazwa);

		$p_nazwa = str_replace("ź","z",$p_nazwa);

		$p_nazwa = str_replace("ć","c",$p_nazwa);

		$p_nazwa = str_replace("ę","e",$p_nazwa);

		$sprawdzenia = substr($p_nazwa, strrpos($p_nazwa, "."));

		$p_roz= array_pop(explode(".", $p_nazwa));

		$max_size=round(($_POST['max_file_size']/4048576),3)."MB";

		$poj_MB=round(($p_pojemnosc/4048576),2).'MB';

		$p_nazwa_zm=(md5($p_nazwa)).".".$p_roz;

		$folder= "avatar/img";

		if ($p_pojemnosc <= 0)

		{

			echo ("Plik jest pusty. Nie mogę go przesłać ".$p_nazwa." ".$poj_MB.$f_koniec."");

			echo "Wracaj ...";

			exit;

		}

		if ($poj_MB > $max_size)

		{

			echo("Plik jest za duży. Maksymalnie można wysłać ".$max_size.$f_koniec.""." .Plik wysyłany ma rozmiar ".$poj_MB.$f_koniec."");

			echo "Wracaj ...";

			exit;

		}

		if (file_exists($folder.$p_nazwa_zm))

		{

			echo ("Plik o takiej nazwie jest już na serwerku ".$p_nazwa_zm."");

			echo "Wracaj ...";

			exit;

		}

		else

		{

			if(!move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))

				exit('Nie można zachować pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');

			echo "Przesłanie udało się - ".$p_nazwa.""." ".$poj_MB."";

			$path_file=$folder.$p_nazwa_zm; require 'db.php'; $query = "INSERT INTO uzytkownicy (link_avatar) VALUES ('$path_file')";

			$zapytanie = mysql_query($query);

			if(!$zapytanie)

			{

				echo "Wykonanie zapytania zawiodło. " . mysql_error();

			}

			else

			{

				echo 'Uzupeinj dalsze dane';

			}

		}

	}

jak wyciągnąć istniejącego usera z tabeli i dodać do pola avatar

hmmm… czyli chodzi Ci o zaktualizowanie danych usera?

UPDATE uzytkownicy SET link_avatar = $path_file WHERE iduzytkownika = $id_uzytkownika

Nie wiem jaką masz strukturę bazy danych więc improwizowałem - w miejsce $id_uzytkownika dajesz jego id albo przesyłasz zmienną, w miejsce $path_file podobnie - masz tam wstawić/przesłać ścieżkę do avatara

baza wygląda tak:tabela-uzytkownicy,pola:id,link_avatar,czas_profilu,nick,haslo,email,ksywa,nazwisko,opis,ip.Chodzi o to,że rejestrując się zakładasz konto,a póżniej uzupełniasz pola avatar,ksywa,nazwisko i opis.Tyle,że skrypt dodaje avatar jako nowy rekord.

Dodane 26.12.2010 (N) 21:10

baza wygląda tak:tabela-uzytkownicy,pola:id,link_avatar,czas_profilu,nick,haslo,email,ksywa,nazwisko,opis,ip.Chodzi o to,że rejestrując się zakładasz konto,a póżniej uzupełniasz pola avatar,ksywa,nazwisko i opis.Tyle,że skrypt dodaje avatar jako nowy rekord.

No, moje zapytanie SQL nie dodaje nowego rekordu do bazy, tylko uzupełnia dane w już istniejącym rekordzie :slight_smile:

chodzi o oto właśnie żeby uzupełniło dane

To “UDATE …” to jest właśnie to co masz sobie dodać

czy zamiast tego zapytania:

$query = "INSERT INTO uzytkownicy (link_avatar) VALUES ('$path_file')";

			$zapytanie = mysql_query($query);

			if(!$zapytanie)

			{

prawdopodobnie tak

dodało do katalogu avatara,ale nie uzupełniło istniejącego rekordu,wywaliło błąd:Przesłanie udało się - image201012240001.jpg 0.01MBWykonanie zapytania zawiodło. You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘’ at line 1

A podmieniłeś w moim zapytaniu zmienne na te odpowiadające Twoim?

Podsyłam też do:

http://www.w3schools.com/sql/sql_update.asp

Mam problem scrypt nie może dodać do kolumny,wywala błąd:Unknown column ‘avatar’ in ‘field list’,natomiast dodaje do folderu.zastosowałem zmienną sprawdzającą zalogowanego użytkownika???.Próbowałem zrobić tak,ale nic z tego:

if(!move_uploaded_file($p_smiec, $folder.$p_nazwa_zm))

				exit('Nie można zachować pliku. Prawdopodobnie nie ma folderu lub nie można w nim zapisać');

			echo "Przesłanie udało się - ".$p_nazwa.""." ".$poj_MB."";

			$path_file=$folder.$p_nazwa_zm;																																																																																																									

	require 'db.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 '
Wyloguj mnie'; session_start();

$uzytkownik=$_POST['$nick'];

$query = mysql_fetch_array(mysql_query("UPDATE uzytkownicy SET 'link_avatar'='$path_file' WHERE 'id'='$uzytkownik' LIMIT 1"));																																																																																						 

			$zapytanie = mysql_query($query);

			if(!$zapytanie)

			{

				echo "Wykonanie zapytania zawiodło. " . mysql_error();

			}

			else

			{

				echo 'Uzupeinj dalsze dane';

			}

		}

	}

	[/code]

co robię żle ,pomóżcie!!!nie mogę znalężć błędu.Zwraca mi błędy.