Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] błąd w zapytaniu
-dzięcioł-
post
Post #1





Goście







Cześć, chciałem zapytać gdzie zrobiłem błąd. Zrobiłem sobie formularz a w nim parę prostych danych +jeśli użytkownik chce może dodać swoje zdjęcie. Z tym że dodanie jakiejś grafiki(zdjecia) nie jest wymagane. W sprawdzeniu mam:
  1. <?php
  2. if(isset($_FILES['zdjecie']) AND $_POST['status'] == '') {
  3.  
  4. $status=0;
  5. include("user.php");
  6. include("mysql_connect.php");
  7.  
  8. $fhandle = fopen($_FILES['zdjecie']['tmp_name'], "r");
  9. $content = base64_encode(fread($fhandle, $_FILES['zdjecie']['size']));
  10. fclose($fhandle);
  11.  
  12. $zapytanie= mysql_query ("INSERT INTO $mysql_tabela (user,kategoria,data_dodania,zdjecie,status) VALUES ('$user','$kategoria', NOW(),'$content','00')") or 
  13. die ("Błąd w zapytaniu !");
  14.  
  15. echo"Dziękujemy za skorzystanie z naszego serwisu. ";
  16.  
  17. } else if(!isset($_FILES['zdjecie']) AND $_POST['status'] == '') {
  18.  
  19. include("user.php");
  20. include("mysql_connect.php");
  21.  
  22. $zapytanie= mysql_query ("INSERT INTO $mysql_tabela (user,kategoria,data_dodania,zdjecie,status) VALUES ('$user','$kategoria', NOW(),'0','00')") or 
  23. die ("Błąd w zapytaniu !");
  24.  
  25. echo"Dziękujemy za skorzystanie z naszego serwisu. ";
  26. ?>


Problem w tym, że jak nie dodam zdjęcia to wywala błąd:
  1. Warning: fread(): supplied argument IS NOT a valid stream resource IN ..../dodaj_cos_wykonaj.php ON line 325
  2. Warning: fread(): supplied argument IS NOT a valid stream resource IN ..../dodaj_cos_wykonaj.php ON line 326


a przecież jak nie ma zdjęcia powinno wykonać 2 pętle, coś sknociłem?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
JaRoPHP
post
Post #2





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Poczytaj, jaka jest różnica pomiędzy funkcjami:
- isset" title="Zobacz w manualu PHP" target="_manual,
- empty" title="Zobacz w manualu PHP" target="_manual.
I zobacz, jak to działa w przypadku przesyłanie formularza.


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
-dzięcioł-
post
Post #3





Goście







dzięki JaRoPHP działa winksmiley.jpg

chciałem jeszcze zapytać o wyświetlanie grafiki z bazy, zapisuje ładnie ale nie moge już jej wyświetlić, zrobiłem tak:

zapis:
  1. <?php
  2. if(!empty($_FILES['zdjecie']['size']) AND $_POST['status'] == '') {
  3. $status = 00;
  4. include("user.php");
  5. include("mysql_connect.php");
  6. $fhandle = fopen($_FILES['zdjecie']['tmp_name'], "r");
  7. $content = base64_encode(fread($fhandle, $_FILES['zdjecie']['size']));
  8. fclose($fhandle);
  9. $zapytanie= mysql_query ("INSERT INTO $mysql_tabela (user,kategoria,data_dodania,zdjecie,status) VALUES ('$user','$kategoria', NOW(),'$content','00')") or 
  10. die ("Błąd w zapytaniu !");
  11. echo"Dziękujemy za skorzystanie z naszego serwisu. ";
  12. ?>


wyświetlanie:
  1. <?php
  2. header("Content-type: image/jpg;");
  3. $zapytanie = mysql_query(sprintf("SELECT zdjecie FROM $mysql_tabela WHERE user='$user' AND status=00 "));
  4. if (mysql_num_rows($zapytanie) != 0) {
  5. $row = mysql_fetch_assoc($zapytanie);
  6. echo base64_decode($row['zdjecie']);
  7. }
  8. ?>


i nic mi się nie wyświetla ... ktoś widzi błąd?
Go to the top of the page
+Quote Post
marcio
post
Post #4





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


po co ci sprintf() w zapytaniu bo z tego co widze to go nawet nie wykorzystujesz ale moge sie mylic

a po drugie powinienes uzyc while do wyswietlania danych z bazy

i czemu do mysql_close() nie dajesz argumentu???Nie wiem moze to jest nie istotne ale jednak


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #5





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


- zmienna $status ma być stringiem? Jak tak, to powinno być $status = '00', jak nie, to zapis $status = 00 jest bez sensu smile.gif,
- zastanów się, czy rzeczywiście jest sens przechowywać obrazki w bazie, czy nie lepszym rozwiązaniem jest utworzenie katalogu z obrazkami, a w bazie przechowywać tylko nazwę danego pliku?,
- funkcja sprintf" title="Zobacz w manualu PHP" target="_manual jest użyta całkowicie niepotrzebnie i błędnie - zobacz dokumentację,
- funkcja mysql_close" title="Zobacz w manualu PHP" target="_manual wymaga argumentu,
- jak wykonujesz zapytania, to sprawdzaj je:
  1. <?php
  2. $zapytanie = "SELECT zdjecie FROM $mysql_tabela WHERE user='$user' AND status=00";
  3. echo $zapytanie; // wprowadź np. do phpmyadmin i zobacz, czy sie wykona (zakładam (pewny jestem), że jest błąd)
  4. $query = mysql_query($zapytanie) or die(mysql_error());
  5. ?>


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
-dzięcioł-
post
Post #6





Goście







Hej, no więc tak:
po wykonaniu zapytania:
  1. <?php
  2. header("Content-type: image/jpg;");
  3. $zapytanie1 = "SELECT zdjecie FROM $mysql_tabela WHERE user='".$_SESSION["user"]."' AND id_ogloszenia='$id_ogloszenia'";
  4. echo $zapytanie1;
  5. $query = mysql_query($zapytanie1) or die(mysql_error());
  6. ?>

wyświetla mi wynik:
  1. SELECT zdjecie FROM tabela WHERE user='test' AND id_ogloszenia='2'

nie ma wyniku błędów, natomiast jak dodam:
  1. <?php
  2. if (mysql_num_rows($zapytanie1) != 0) {
  3. $row = mysql_fetch_assoc($zapytanie1);
  4. echo base64_decode($row['zdjecie']);
  5. }
  6. ?>

wyskakuje błąd:
  1. Warning: mysql_num_rows(): supplied argument IS NOT a valid MySQL result resource IN /home/.../pokaz_ogloszenia.php ON line 402

jestem troszku niekumaty wiec korzystałem z gotowego skryptu (link) ale chciałem go przerobić pod moja tabele, co jeszcze poknociłem
Go to the top of the page
+Quote Post
JaRoPHP
post
Post #7





Grupa: Zarejestrowani
Postów: 675
Pomógł: 15
Dołączył: 7.11.2004
Skąd: Katowice

Ostrzeżenie: (0%)
-----


Jeżeli wprowadzasz zmienną $query, to NIE:
  1. <?php
  2. if (mysql_num_rows($zapytanie1) != 0) {
  3. $row = mysql_fetch_assoc($zapytanie1);
  4. //...
  5. }
  6. ?>

A:
  1. <?php
  2. if (mysql_num_rows($query) != 0) {
  3. $row = mysql_fetch_assoc($query);
  4. //...
  5. }
  6. ?>


--------------------
Kto pyta, nie błądzi...
Kto zbłądził, ten pyta...
Go to the top of the page
+Quote Post
-dzięcioł-
post
Post #8





Goście







ok teraz juz nie wyswietla bledu, tylko nadal nie wyswietla zdjecia, a jak mam na poczatku:
  1. <?php
  2. header("Content-type: image/jpg;");
  3. ?>

to otwiera mi się okno i pokazuje pobieranie pliku no i opcje otworz, pobierz ...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 06:12