Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]problem z baza i php
Forum PHP.pl > Forum > Przedszkole
homer1981
sciana.gif

W katalogu zdjecia mam pliki w formacie jpg które dodawane za pomocą formularza.
Dodawane są 3 pliki jednocześnie.
Każdy plik mam unikatową nazwe.
Problem polega na tym że chciałbym scieżki do tych obrazków zapisać do bazy mysql.

Chciałbym zrobić to tak ,że do bazy wysłane zostaną dane tylko wtedy gdy wypełnione zostanę wszystkie 3 pola.

Mój skrypt sprawdzający wygląda tak
  1. <?php
  2. $plika=$data.'0'.'jpg';
  3. $plikb=$data.'1'.'jpg';
  4. $plikc=$data.'2'.'jpg';
  5.  
  6. $testa = file_exists('zdjecia/'.'$plika'); //sprawdzenie czy plik istnieje
  7. $testb = file_exists('zdjecia/'.'$plikb'); //sprawdzenie czy plik istnieje
  8. $testc = file_exists('zdjecia/'.'$plikc'); //sprawdzenie czy plik istnieje
  9.  
  10. // if ($testa)
  11. // zawsze zapisuje do bazy - nawet jak plik nie istnieje
  12.  
  13. if (($testa)and($testa)and($testa))
  14. {
  15. $sql="INSERT INTO testy2 (`obrazek1`, `obrazek2`, `obrazek3`) VALUES ('$plika','$plikb','$plikc')";
  16. echo "powiodło sie";
  17. }
  18. else
  19. {
  20. echo "nie powiodło sie";
  21. }
  22. ?>
blooregard
Ale czy ten skrypt działa, czy nie ? Zakładając, że w if() masz && zamiast słowa and ?

Bo jeśli działa, to nie rozumiem pytania. A jeśli nie, wklej jakiś błąd czy coś.
batman
  1. <?php
  2. file_exists('zdjecia/'.$plika);
  3. ?>


Przenoszę na przedszkole.
homer1981
  1. <?php
  2. $plika='zdjecia/020081017200.jpg'; /// przy takim warunku działa
  3. $plika='zdjecia/'.$data.'0'.'.jpg'; // przy takim nie działa
  4. $sprawdzam = file_exists('$plika');
  5. if ($spradzam)
  6. {echo "nie ma pliku";}
  7. else
  8. {echo "ok";}
  9. ?>
Cienki1980
A czy na 100% pod zmienną $data jest to co powinno ?
Sprawdź co jest pod zmienną $plika , może wygląda to inaczej niż byś chciał.

EDIT:down akurat kropkę ma ... tutaj ją pogrubiłem $plika='zdjecia/'.$data.'0'.'.jpg'; // przy takim nie działa
tomm
 
zrób sobie echo $plika


nie masz kropki rozdzielającej nazwę pliku od rozszerzenia
guilty82
  1. <?php
  2. ...
  3. if (($testa)and($testa)and($testa))
  4. ...
  5. ?>


Potrójne sprawdzenie $testa? smile.gif
tomm
Cytat(homer1981 @ 2.10.2008, 10:33:33 ) *
$plika='zdjecia/020081017200.jpg'; /// przy takim warunku działa
$plika='zdjecia/'.$data.'0'.'.jpg'; // przy takim nie działa
$sprawdzam = file_exists('$plika');
if ($spradzam)
{echo "nie ma pliku";}
else
{echo "ok";}


wpisujesz $plika w apostrofach i traktowany jest jako string


pózniej sprawdzasz if(TRUE) echo 'nie ma pliku';

powinno być chyba na odwrót
homer1981
0200810021103280.jpg | plik wgrany!
0200810021103281.jpg | nie można było wgrać pliku!
0200810021103282.jpg | nie można było wgrać pliku!

Na serwerze nie ma pliku
0200810021103280.jpg
Błąd: Zapytanie by?o puste

Plik data to : 0200810021103280

wiec nie wiem czemu dalej to nie działa :/
Cienki1980
A pokaż trochę więcej kodu. Najlepiej cały mechanizm dodawania zdjęć ( uploadu - czyli miejsce gdzie masz move_uploaded_files() ) jak i konkretne zapytania do bazy itp itd. Im więcej kodu pokażesz tym lepiej będzie myśleć.
homer1981
istnieje gdzieś jescze jeden błąd:

mianowicie :
Cytat
$plika=$data.'0'.'.jpg'; // juz poprawione
$testa = file_exists('zdjecia/'.$plika); // ... to też
if ($testa)

{
$sql="INSERT INTO testy2 (`obrazek1`, `obrazek2`, `obrazek3`) VALUES ('$nowa_nazwa1','$nowa_nazwa2','$nowa_nazwa3')";
}
else
{
echo '<br>'."Na serwerze nie ma pliku" //informacja o braku pliku na serwerze
}



Cytat
a takie cos nie działa :
$plika=$data.'0'.'.jpg'; - z tym już opanowane
$plikb=$data.'1'.'.jpg'; - z tym już opanowane
$plikc=$data.'2'.'.jpg'; - z tym już opanowane
$testa = file_exists('zdjecia/'.$plika);
$testb = file_exists('zdjecia/'.$plikb);
$testc = file_exists('zdjecia/'.$plikc);
if (($testa)and ($testb) and ($testc))
{
echo "Plik istnieje".'<br>'; //informacja, że istnieje plik o nazwie $plik na serwerze
echo "$plika";
$sql="INSERT INTO testy2 (`obrazek1`, `obrazek2`, `obrazek3`) VALUES ('$nowa_nazwa1','$nowa_nazwa2','$nowa_nazwa3')";
}
else
{
echo '<br>'."Na serwerze nie ma pliku".'<br>'.$plika; //informacja o braku pliku na serwerze
}
tomm
w tym drugim nie masz zdefiniowanych $testa, $testb, $testc

w tym pierwszym przy spełnionym warunku po przygotowaniu zapytania nie chciałes go wykonac?
wynika z tego że któraś zmienna ($testa,..) ma wartość FALSE, wypisz je sobie i sprawdź
homer1981
JUŻ DZIAŁA exclamation.gif czarodziej.gif

Kod


$plika=$data.'0'.'.jpg';
$plikb=$data.'1'.'.jpg';
$plikc=$data.'2'.'.jpg';

$testa = file_exists('zdjecia/'.$plika);
$testb = file_exists('zdjecia/'.$plikb);
$testc = file_exists('zdjecia/'.$plikc);

if (($testa)and($testb)and($testc))

    {
    echo "Plik istnieje".'<br>'; //informacja, że istnieje plik o nazwie $plik na serwerze
    echo "$plika";
    $sql="INSERT INTO testy2 (`obrazek1`, `obrazek2`, `obrazek3`) VALUES ('$nowa_nazwa1','$nowa_nazwa2','$nowa_nazwa3')";
    }
    else
    {
    echo '<br>'."Na serwerze nie ma pliku".'<br>'.$plika; //informacja o braku pliku na serwerze
    }
Cienki1980
Pokazałeś to co wcześniej ( z złym BBCode ) i nic to nie wniosło do problemu. Ja szczerze mówiąc teraz już nie wiem w którym miejscu działania występuje problem i co dokładnie nie działa.

Pokazujesz w kodzie zapytanie SQL ale nie widać nigdzie czy gdzieś je wywołujesz. Nie pokazujesz jak tworzysz zmienne podczas pobierania ich z formularza, nie pokazujesz jak zapisujesz zdjęcia do folderu /zdjecia z nazwami takimi jak chcesz żeby było zapisane.

Jeżeli nie chcesz pokazać prawdziwego kodu ( boisz się że ktoś go wykorzysta questionmark.gif ) to nie licz że ktoś Ci pomoże w logiczny sposób a tylko wszyscy będziemy zgadywać co może być nie tak.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.