Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][mysql] problem z pętlą
Forum PHP.pl > Forum > Przedszkole
shiba
Cześć, chciałem prosić Was o pomoc w rozwiązaniu problemu z pętlą (instrukcją warunkową) if ... chodzi o to że jeżeli dodam zdjęcie i uzupełnię przynajmniej jedno pole skrypt dodaje mi zdjęcie do bazy i resztę danych, natomiast problem zaczyna się kiedy chcę do bazy wstawić tyko sam tekst czyli dane z formularzy pomijając dodanie pliku, wówczas cały czas pokazuje mi komunikat: BŁĄD PODCZAS PRZESYŁANIA PLIKU, tak jakby kolejnej instrukcji juz nie widział ... dlatego proszę Was o pomoc ...

skrypt:
  1. <?php
  2. function odbierz($pole) {
  3. $pole = trim($pole);
  4. if (get_magic_quotes_gpc()) $pole = stripslashes($pole);
  5. return htmlspecialchars($pole, ENT_QUOTES);
  6. }
  7. $imie = odbierz($_POST['imie']);
  8. $nazwisko = odbierz($_POST['nazwisko']);
  9. $nazwa_firmy = odbierz($_POST['nazwa_firmy']);
  10. $opis = odbierz($_POST['opis']);
  11.                
  12. if (empty($imie)&&empty($nazwisko)&&empty($nazwa_firmy)&&empty($opis)){
  13. echo"musisz wypełnić co najmniej jedno pole ...";
  14. }
  15. //jesli istnieje plik i jedno z pol tekstowych nie jest puste wykonaj ponizsze
  16. if (isset($_FILES['plik'])&&!empty($imie)&&!empty($nazwisko)&&!empty($nazwa_firmy)&&!empty($opis)){
  17. //sprawdzamy czy plik został wysłany poprawnie
  18. if ($_FILES['plik']['error']==UPLOAD_ERR_OK){
  19. $nazwapliku=$_FILES['plik']['name'];      
  20. $typpliku=$_FILES['plik']['type'];      
  21. $rozmiarpliku=$_FILES['plik']['size'];      
  22. $srcplik=$_FILES['plik']['tmp_name'];
  23. //otwieramy plik w trybie do odczytu
  24. $plik=fopen($srcplik,"r");
  25. $mysqlplik = addslashes(fread($plik,$rozmiarpliku));
  26. fclose($plik);    
  27. unlink($srcplik);
  28. $mysqltyppliku = addslashes($typpliku);
  29. $mysqlnazwapliku = addslashes($nazwapliku);
  30. //nawiązujemy połączenie z bazą danych oraz wybieramy tabelę
  31. include("../tabele/dane.php");
  32. $conn = mysql_connect( $mysql_host, $mysql_login, $mysql_haslo );
  33. if (!$conn){
  34. echo"brak połączenia z bazą danych ...";
  35. }
  36. $db = mysql_select_db($mysql_baza);
  37. if (!$db){
  38. echo"błąd wyboru bazy danych ...";
  39. }
  40. //po nawiazaniu polaczenia z baza danych i tabela wykonaj ponizsze
  41. $zapytanie="INSERT INTO $mysql_tabela (id_dane,imie,nazwisko,nazwa_firmy,opis,plik,nazwa,typ,rozmiar) VALUES ('','$imie','$nazwisko','$nazwa_firmy','$opis','$mysqlplik','$mysqlnazwapliku','$mysqltyppliku','$rozmiarpliku')";
  42. //po wykonaniu sprawdź poprawność zapisu w bazie
  43. if($wynik=mysql_query($zapytanie,$conn)) {
  44. echo"dane zostały zapisane w bazie ...";
  45. } else {
  46. echo"błąd wykonania zapytania 1";
  47. }
  48. } else {
  49. echo"błąd podczas wysyłania pliku ...";
  50. }
  51. }
  52. //jesli nie istnieje plik i jedno z pol tekstowych nie jest puste wykonaj ponizsze
  53. if (!isset($_FILES['plik'])&&!empty($imie)&&!empty($nazwisko)&&!empty($nazwa_firmy)&&!empty($opis)){
  54. //po nawiazaniu polaczenia z baza danych i tabela wykonaj ponizsze
  55. $zapytanie2="INSERT INTO $mysql_tabela (id_dane,imie,nazwisko,nazwa_firmy,opis,plik,nazwa,typ,rozmiar) VALUES ('','$imie','$nazwisko','$nazwa_firmy','$opis','','','','')";
  56. //po wykonaniu sprawdź poprawność zapisu w bazie
  57. if($wynik2=mysql_query($zapytanie2,$conn)) {
  58. echo"dane zostały zapisane w bazie ...";
  59. } else {
  60. echo"błąd wykonania zapytania 2";
  61. }
  62. }
  63. ?>
piotrooo89
kod = sieczka. ale tak na pierwszy rzut oka to ten warunek Cię nie puszcza:

  1. <?php
  2. if (isset($_FILES['plik'])&&!empty($imie)&&!empty($nazwisko)&&!empty($nazwa_firmy)&&!empty($opis))
  3. ?>
shiba
no tak, bo jesli nie dodam pliku tylko uzupełnię same pola to wyskakuje właśnie komunikat z wysyłaniem pliku ... ale dlaczego nie może przeskoczyć do kolejnej instrukcji ... czyli
  1. <?php
  2. //jesli nie istnieje plik i jedno z pol tekstowych nie jest puste wykonaj ponizsze
  3. if (!isset($_FILES['plik'])&&!empty($imie)&&!empty($nazwisko)&&!empty($nazwa_firmy)&&!empty($opis)){
  4. //po nawiazaniu polaczenia z baza danych i tabela wykonaj ponizsze
  5. $zapytanie2="INSERT INTO $mysql_tabela (id_dane,imie,nazwisko,nazwa_firmy,opis,plik,nazwa,typ,rozmiar) VALUES ('','$imie','$nazwisko','$nazwa_firmy','$opis','','','','')";
  6. //po wykonaniu sprawdź poprawność zapisu w bazie
  7. if($wynik2=mysql_query($zapytanie2,$conn)) {
  8. echo"dane zostały zapisane w bazie ...";
  9. } else {
  10. echo"błąd wykonania zapytania 2";
  11. }
  12. }
  13. ?>


jestem początkujący, dlatego proszę o pomoc ...
conmar
Jeśli jedno z pól to:
  1. <?php
  2. if (!isset($_FILES['plik']) && (!empty($imie) || !empty($nazwisko) || !empty($nazwa_firmy) || !empty($opis)))
  3. ?>
nospor
http://forum.php.pl/index.php?showtopic=12...mp;#entry623259
jeden temat starczy.

kolejna sprawa: nie spamuj ludziom na PW, a juz na pewno nie klam, ze nikt sie nie kwapi do pomocy bo w obydwu tematach ludzie odpowiadali.
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.