[php]poroblem z zapytaniem UPDATE do bazy


(batmomobil) #1

Proszę pomóżcie poprawić zapytanie update do tabeli w bazie danych.Scrypt dodaje zdjęcie do folderu ale nie dodaje do kolumny w tabeli,wywala błąd że zapytanie zawiodło,nie można dodać do bazy.

<?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; } session_start();																																																																																																								

	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;

		}

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

echo '
Wyloguj mnie'; 				

$row = mysql_fetch_object($user);

		$id = $row->nick;																																																																																																																								

		$sql = "UPDATE uzytkownicy SET 'link_avatar'='$path_file' WHERE id='$id'";

		$zapytanie = mysql_query($sql);

		if(!$zapytanie)

		{

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

		}

		else

		{

			echo "Udało się dodac avatar";

			echo '';	echo 'Uzupeinj dalsze dane';

			}

		}

(Kolas1986) #2

link_avatar bez apostrofów


(batmomobil) #3

Poprawiłem pokazuje,że dodało zdjęcie,ale w bazie niema zdjęcia,nie dodaje do bazy tylko do folderu ze zdjęciami.Już nie wiem gdzie żle zapisuje,pytanie mam takie czy zmienna $id być wynikiem z logowania???

session_start();																																																																																																								

	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;

		}

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

echo '
Wyloguj mnie'; 				

$row = mysql_fetch_object($user);

		$id = $row->nick;																																																																																																																								

		$sql = "UPDATE uzytkownicy SET link_avatar='$path_file' WHERE id='$id'";

		$zapytanie = mysql_query($sql);

		if(!$zapytanie)

		{

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

		}

		else

		{

			echo "Udało się dodac avatar";

			echo '';																																																																																								

				echo 'Uzupeinj dalsze dane';

			}[/code]

(Kolas1986) #4

w bazie zapisujesz ścieżkę do pliku w kolumnie link_avatar, więc nie wiem jak chcesz żeby obraz trafił do bazy. A co do id to niewiem co to za kolumna, sensownie byłoby ze jest to klucz obcy z id wiersza w jakiejs tabeli z userami, z kodu widze ze wstawiasz 'nick' czyli login


(batmomobil) #5

Już się uporałem z tym zamieniłem w zapytaniu nick='$nick' i działa.Dzięki za pomoc. :smiley: :smiley: =D>