Diskuze: V databáze miesto názvu obrazka "image/jpeg"

PHP PHP V databáze miesto názvu obrazka "image/jpeg" American English version English version

Avatar
Matej Bandik
Člen
Avatar
Matej Bandik:

Nazdár všetkým :)

O čo ide ? Keď editujem záznam z databázy (napríklad tento http://pbrd.co/1zl4zri ) pomocou formulára ( http://pbrd.co/1zl4KCP ) a dam "Uložiť zmeny" všetko mi uloží ale vybraný obrázok nie (v tomto prípade som zmenil iba obrázok) , v databáze to potom vyzerá takto http://pbrd.co/1zl5WX0 .

Prosím má s tým niekto skúsenosti alebo je iba v PHPčku nejká chyba? Ďakujem

<?php

include('../inc/config.php');


$namafolder="/obrazky";

if (!empty($_FILES["obrazok"]["tmp_name"]))
{
        //dáta z formulára
        $id = $_POST['id'];
        $nazov = $_POST['nazov'];
        $cena = $_POST['cena'];
        $popis = $_POST['popis'];
        $kategorie = $_POST['kategorie'];
        $obrazok = $_FILES['obrazok']['type'];

        if($obrazok == "image/jpeg" || $obrazok == "image/jpg" || $obrazok == "image/gif" || $obrazok == "image/x-png")
    {
        $obr = $namafolder . basename($_FILES['obrazok']['name']);

        if (move_uploaded_file($_FILES['obrazok']['tmp_name'], $obr))
                {
                        //uloženie do databázy
                        $query = mysql_query("UPDATE produkt SET nazov='$nazov', cena='$cena', popis='$popis', cat='$kategorie', obrazok='$obrazok' where produkt_id='$id'") or die(mysql_error());

            if ($query)
                        {
                                header('location:tovar.php?message=update');
                        }
        }
                else
                {
           echo "Obrázok sa nepodarilo odoslať.";
        }
   }
   else
   {
        echo "Obrazok musí byť typu .jpg .gif .png.";
   }
}
else {
    echo "Vyberte nejaký obrázok.";
}

?>
Editováno 5.2.2015 21:31
 
Odpovědět 5.2.2015 21:27
Avatar
Odpovídá na Matej Bandik
Ondřej Štorc:

Máš tam jednu chybu, ty si do proměnné obrazok uložíš typ souboru, ale cestu k tomu souboru ukládáš do proměnné obr. Mělo by stačit změnit ten SQL dotaz na toto:

UPDATE produkt SET nazov='$nazov', cena='$cena', popis='$popis', cat='$kategorie', obrazok='$obr' where produkt_id='$id'

Jinak funkce mysql_ jsou už zastaralý, přejdi radši na PDO :)

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
Nahoru Odpovědět  +2 5.2.2015 21:47
Život je příliš krátký na to, abychom bezpečně odebírali USB z počítače..
Avatar
Marek Z.
Redaktor
Avatar
Marek Z.:

EDIT: Nevšim sem si toho $obr. Souhlas s Ondrou..

Editováno 5.2.2015 21:57
Nahoru Odpovědět 5.2.2015 21:56
Chybami se člověk učí, běžte se učit jinam!
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.