Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC

[es] :: PHP :: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC

[ Pregleda: 2312 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 07:18 - pre 106 meseci
Ovo je tekst greske:
Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in C:\xampp\htdocs\ site\Naslovna strana.php on line 612 Call Stack: 0.0063 398784 1. {main}() C:\xampp\htdocs\ site\Naslovna strana.php:0 0.0703 405800 2. mysql_fetch_array() C:\xampp\htdocs\y site\Naslovna strana.php:612 Notice: Undefined variable: slika in C:\xampp\htdocs\ site\Naslovna strana.php on line 617 Call Stack: 0.0063 398784 1. {main}() C:\xampp\htdocs\ site\Naslovna strana.php:0 Notice: Undefined variable: naslov_slike in C:\xampp\htdocs\site\Naslovna strana.php on line 617 Call Stack: 0.0063 398784 1. {main}() C:\xampp\htdocs\ site\Naslovna strana.php:0


Ovako izgleda kod za ispis slike:

<?
$host ="localhost";
$korisnik = "korisnik";
$lozinka = "lozinka";
$baza = "baza";

if ([email protected]_pconnect ("$host", "$korisnik", "$lozinka")){
echo "Spajanje na mysql server bilo je neuspešno";
exit;
}
if(!mysql_select_db ("$baza", $db)){
echo "Greska pri odabiru baze";
exit;
}

mysql_select_db('ime_baze');

$select_result = mysql_query("SELECT naslov_slike,slika from ime_tabele where id=1");

while ($select_row = mysql_fetch_array ($select_result))
{
$naslov_slike = $select_row ['naslov_slike'] ;
$slika = $select_row ['slika'] ;
}
echo "<img src=\"http://localhost/Site/Naslovna/Aktuelnosti/Slike/" . $slika ."\" width=\"140px\" height=\"85px\" class=\"izdvojenaslika\"/> $naslov_slike <br /> "; ?>&nbsp;</td>


A ovako za ispis teksta iz baze:


<?
$host ="localhost";
$korisnik = "korisnik";
$lozinka = "lozinka";
$baza = "baza";

if ([email protected]_pconnect ("$host", "$korisnik", "$lozinka")){
echo "Spajanje na mysql server bilo je neuspešno";
exit;
}
if(!mysql_select_db ("$baza", $db)){
echo "Greska pri odabiru baze";
exit;
}


mysql_select_db('ime_baze');

$select_result = mysql_query("SELECT naslov_teksta,tekst from ime_tabele where id=1");

while ($select_row = mysql_fetch_array ($select_result))
{
$naslov_teksta = $select_row ['naslov_teksta'] ;
$tekst = $select_row ['tekst'] ;
}
echo $select_row['tekst'];
?>

Prethodno navedena poruka o gresci je ista u oba slucaja.
Unapred,hvala puno na eventualnoj pomoci u vidu odgovora.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 09:41 - pre 106 meseci
1. Procitas sta ti je greska. (Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given.)
2. Pokledas kako naredba radi. (http://php.net/manual/en/function.mysql-fetch-array.php , Returns an array of strings that corresponds to the fetched row, or FALSE if there are no more rows. )
3. Iz ovoga lako zakljucis sta ti je greska i ispravis je, a ako ne znas kako da ispravis onda postavis pitanje.

Sve ukupno ti treba manje vremena nego da postavis ovaj post.
A da ne kazem dok ti neko ne odgovori....

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

b0ris
Boris Vujicic
Senior PHP programer
Beograd

Član broj: 126587
Poruke: 158
*.adsl.net.t-com.hr.



+2 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 10:39 - pre 106 meseci
daj izgled tabele da vidimo. Meni se cini da si omasio negde u nazivima polja i query string-u

p.s. Malo formatiraj izgled koda da bude citljiviji.
---------------------------------------------------------------------
Just do it.
 
Odgovor na temu

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 12:05 - pre 106 meseci
Umesto

while ($select_row = mysql_fetch_array ($select_result))
{
$naslov_slike = $select_row ['naslov_slike'] ;
$slika = $select_row ['slika'] ;
}
echo "<img src=\"http://localhost/Site/Naslovna/Aktuelnosti/Slike/" . $slika ."\" width=\"140px\" height=\"85px\" class=\"izdvojenaslika\"/> $naslov_slike <br /> "; ?>&nbsp;</td>


Stavio sam


$select_row = mysql_fetch_array ($select_result);

echo "<img src=\"http://localhost/Site/Naslovna/Aktuelnosti/Slike/" . $select_row['slika'] ."\" width=\"140px\" height=\"85px\" class=\"izdvojenaslika\"/>".$select_row ['naslov_slike']."<br /> "; ?>


I opet mi se javlja ista greska.

Sta sada?
 
Odgovor na temu

Milos911
Serbia

Član broj: 219127
Poruke: 1230
77.243.20.*



+303 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 14:48 - pre 106 meseci
Naprimer
Citat:
b0ris: daj izgled tabele da vidimo. Meni se cini da si omasio negde u nazivima polja i query string-u
p.s. Malo formatiraj izgled koda da bude citljiviji.

Sad kad si to promenio, dobices samo jedan red umesto svih. Treba ti while.
Uradi
if(mysql_affected_rows > 0){
while(sdaaskdjkd)
}else{
No matching rows in database
};
Ovo ce spreciti da ako stvarno nema redova u pazi, ne dobijes error. I dalje nam treba izgled tabele...
Takodje, mozes da koristis mysql_fetch_assoc umesto mysql_fetch_array.
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 15:18 - pre 106 meseci
Bez da te kritikujem vec samo zelim da te navedem na pravilo razmiljanje u resavanju problema jer je ovo prilicno rutinska i laka stvar koja se resava za
minut a odgovor na forumu nekada ces dobiti za 2 dana.

Sta si mislio da ces resiti ovom promenom koda?

Ovaj drugi kod je nesto logicniji jer imas
Code (sql):

SELECT naslov_slike,slika FROM ime_tabele WHERE id=1
 

Ono WHERE id=1 je kljucno, to znaci da ti izvlacis max jedan rezultat a zato ti ne treba while petlja.

Drugo. Umesto mysql_fetch_array koristi mysql_fetch_assoc jer ti u kodu koristis iskljucivo asocijativni array.
Ili stavi parametar mysql_fetch_array($select_result, MYSQL_ASSOC).
Kod vece kolicine podataka radi mnogo brze, ali u tvom slucaju neces osetiti razliku ali ipak treba da bez razmisljanja, rutinski, biras pogodnije stvari.
Nije greska vec savet.

Trece i ono sta ti je problem...
Sve ove mysql_fetch_* naredbe vracaju neki array ali ako nema rezultata onda vracaju FALSE.
E sada ko ti je $select_row = false onda nikada neces moci odraditi ovo $select_row['slika'];
Moras da proveris da li ti je vratio neki rezultat, npr sa if (mysql_num_rows($result) == 0) { ...
Ili sa empty ili sa == false...
Ovako nekako bih napisao tvoj kod.
Code (php):

<?php
  $host ="localhost";
  $korisnik = "korisnik";
  $lozinka = "lozinka";
  $baza = "baza";

  if (!$db[email protected]mysql_pconnect ("$host", "$korisnik", "$lozinka")) {
    echo "Spajanje na mysql server bilo je neuspešno";
    exit;
  }

  if (!mysql_select_db ("$baza", $db)) {
    echo "Greska pri odabiru baze";
    exit;
  }

 //mysql_select_db('ime_baze'); sta je ovo? vec imas neki select db

  $sql = "SELECT naslov_slike, slika FROM ime_tabele WHERE id=1";
  $select_result = mysql_query($sql);
 
//ovo sledece ti fali jer je mozda los query
  if (!$select_result ) {
    echo "Izvrsenje kverija nije uspesno izvrseno ($sql): " . mysql_error();
    exit;
  }

  //ako je query dobar on opet mozda nije uspeo da nadje neki rezultat za zadati kriterijum, pa i to moras da proveris
  if (mysql_num_rows($select_result ) == 0) {
    echo "Nista nije pronadjeno!";
    exit;
  }
   
  //E tek sada moze da ide tvoj kod ali ona druga, bolja verzija
  $select_row = mysql_fetch_asocc ($select_result);
  echo "<img src=\"http://localhost/Site/Naslovna/Aktuelnosti/Slike/" . $select_row['slika'] ."\" width=\"140px\" height=\"85px\" class=\"izdvojenaslika\"/>".$select_row ['naslov_slike']." "; ?>

?>
 


Uglavnom problem ti je sto ili je sintaksno los query ili nemas nista pod id=1.


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC30.08.2011. u 15:28 - pre 106 meseci
Citat:
Milos911: Naprimer
Sad kad si to promenio, dobices samo jedan red umesto svih. Treba ti while.
Uradi
if(mysql_affected_rows > 0){
while(sdaaskdjkd)
}else{
No matching rows in database
};
Ovo ce spreciti da ako stvarno nema redova u pazi, ne dobijes error. I dalje nam treba izgled tabele...
Takodje, mozes da koristis mysql_fetch_assoc umesto mysql_fetch_array.


Njemu i treba jedan red jer ima WHERE id=1 pa nije moguce da ima vise od jedno reda. Tako da mu nece trebati while petlja.

mysql_affected_rows daje broj redova koji su bili pod uticajem INSERT, UPDATE, REPLACE ili DELETE naredbe ali ne i SELECT tako da je to bezvredno u ovom slucaju.
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 07:28 - pre 106 meseci
Vlado,nakon izvrsavanja koda koji si mi ti predlozio na ekranu jednostavno ne dobijem nista-bela povrsina a da pritom nema informacije ni o jednoj gresci.

Molim te ako mozes da mi postavis neku svoju skriptu koja vrsi istu funkciju jer je ovu stvarno vise besmisleno pokusavati popraviti. Hvala puno,unapred.

[Ovu poruku je menjao Bogdanoffice dana 31.08.2011. u 09:12 GMT+1]
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 10:28 - pre 106 meseci
Stavi na pocetku koda error_reporting(E_ALL); pa javi da li ti ispisuje neke greske.
I treba da ti ispise debug 1, 2, 3 ... do 8. Ako ti ispise recimo samo do 4 onda znas gde je puklo...
Code (php):

<?php

  error_reporting(E_ALL);

  $host ="localhost";
  $korisnik = "korisnik";
  $lozinka = "lozinka";
  $baza = "baza";

  echo "debug 1<br/>";

  if (!$db[email protected]mysql_pconnect ("$host", "$korisnik", "$lozinka")) {
    echo "Spajanje na mysql server bilo je neuspešno";
    exit;
  }

  echo "debug 2<br/>";

  if (!mysql_select_db ("$baza", $db)) {
    echo "Greska pri odabiru baze";
    exit;
  }

  echo "debug 3<br/>";

 //mysql_select_db('ime_baze'); sta je ovo? vec imas neki select db

  $sql = "SELECT naslov_slike, slika FROM ime_tabele WHERE id=1";
  $select_result = mysql_query($sql);


  echo "debug 4<br/>";  

//ovo sledece ti fali jer je mozda los query
  if (!$select_result ) {
    echo "Izvrsenje kverija nije uspesno izvrseno ($sql): " . mysql_error();
    exit;
  }

  echo "debug 5<br/>";  

  //ako je query dobar on opet mozda nije uspeo da nadje neki rezultat za zadati kriterijum, pa i to moras da proveris
  if (mysql_num_rows($select_result ) == 0) {
    echo "Nista nije pronadjeno!";
    exit;
  }

  echo "debug 6<br/>";    

  //E tek sada moze da ide tvoj kod ali ona druga, bolja verzija
  $select_row = mysql_fetch_asocc ($select_result);
  echo "debug 7<br/>";  
  echo "<img src=\"http://localhost/Site/Naslovna/Aktuelnosti/Slike/" . $select_row['slika'] ."\" width=\"140px\" height=\"85px\" class=\"izdvojenaslika\"/>".$select_row ['naslov_slike']." ";
  echo "debug 8<br/>";  
?>
 

[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 11:25 - pre 106 meseci
debug 6 Fatal error: Call to undefined function mysql_fetch_asocc() in C:\xampp\htdocs\ site\Ispis izdvojene slike.php on line 48 Call Stack: 0.0094 334592 1. {main}() C:\xampp\htdocs\site\Ispis izdvojene slike.php:0

Sta sada?
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 13:28 - pre 106 meseci
Da li znas sta znaci "Call to undefined function mysql_fetch_asocc()" ?
[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 14:07 - pre 106 meseci
Pa valjda znaci poziv na nedefinisanu funkciju.
Zar vec nije definisana ili sta?
 
Odgovor na temu

japan

Član broj: 34328
Poruke: 480
*.dynamic.sbb.rs.



+13 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 14:29 - pre 106 meseci
Pa nije definisana. Treba mysql_fetch_assoc a ne asocc
 
Odgovor na temu

VladaSu

Član broj: 31634
Poruke: 1060
*.dynamic.isp.telekom.rs.



+210 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 14:38 - pre 106 meseci
Najlakse je da odes da vidis kako naredba radi. A to vidis tako sto odes na google i ukucas tu naredbu.
I onda ces da vidis da sam pogresno ukucao asocc umesto assoc (dva c umesto dva s).

Nasao bi resenje za par sekundi ili minuta samo da si ulozio minimalno truda da resis problem a ne odmah copy/paste.
Jednostavno moras da procitas koju ti gresku javlja, da razmislis zasto ti je javio tu gresku i da pogledas kako radi ta naredba.
Tek na kraju se obracas za pomoc i ljudi koji hoce da ti pomognu moraju da vide da se potrudio da nadjes resenje a ne "ima greska pa mi vi resite".
Ako pogledas ovaj forum primetices da niko nije postavljao slicna pitanja sto moze da znaci da na pogresan nacin ucis PHP ili si primoran da uradis neki seminarski ili tako nesto.

Malo vise truda i snalazljivosti u resavanju problema....


[Ovu poruku je menjao VladaSu dana 14.06.2003. u 11:22 GMT+1]
 
Odgovor na temu

Bogdanoffice

Član broj: 289834
Poruke: 8
*.3gnet.mts.telekom.rs.



+3 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 15:20 - pre 106 meseci
Hvala u svakom slucaju na savetu i na prethodnim odgovorima.


[Ovu poruku je menjao Bogdanoffice dana 31.08.2011. u 16:39 GMT+1]
 
Odgovor na temu

Nemanja Avramović
Software architect
Cloud Horizon
Beograd, Srbija

Moderator
Član broj: 32202
Poruke: 4382
*.dynamic.isp.telekom.rs.

Jabber: Nemanja Avramović
Sajt: avramovic.info


+45 Profil

icon Re: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC31.08.2011. u 18:57 - pre 106 meseci
Funkcija očekuje resource a dobija boolean, dakle $select_result je boolean, i to najverovatnije false jer mysql_query vraća false u nekim slučajevima.

Uvek koristi ovako:

Code:
$select_result = mysql_query($upit) or trigger_error(mysql_error(), E_USER_ERROR);


U tom slučaju, ako upit ne uspe dobićeš grešku u PHP-u (trigger_error) sa tekstom mysql greške (mysql_error). Umesto trigger_error() možeš da koristiš die() al' meni je ovako lepše (pogotovo ako koristiš error handler pa možeš da ih prikažeš kako valja).

Naravno, poslušaj i šta su ti i drugi rekli pa sa mysql_num_rows proveri koliko je rezultata vraćeno.
Laravel Srbija.

[NE PRUŽAM PODRŠKU ZA PHP PREKO PRIVATNIH PORUKA!]
 
Odgovor na temu

[es] :: PHP :: Greska prilikom izvrsavanja skripte za ispis podataka iz baze POMOC

[ Pregleda: 2312 | Odgovora: 15 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.