mySQL query,mala pomoc ako ima raspolozenih!

Htela bih prvo sve da vas pozdravim posto sam nova ovde na forumu i da vas zamolim za malu pomoc!Mozda programiranje nije toliko zastupljeno kod zenske populacije kao kod muske ali ja sam pokusala da se oprobam i zapela na samom pocetku.Imam jednu tabelu od dve kolone.
id_kupca i id_knjige
(id_knjige je od 1 do 100 za sad)
Svaka prodata knjiga se unosi u bazu. A ja trebam napraviti query kojim cu dobiti koliko je primeraka prodato od svake knjige.Mogla bih to uraditi ali sa posebnim query-jem za svaku knjigu ali onda bih imala query-ja isto koliko i knjiga! :smiley: Da li se ovo moze uraditi jednim zahvatom prema bazi ili ih ipak mora biti koliko i knjiga!Help please!

trebala bi dodati (bar) jos jedno polje u bazu, da ti svaka kupovina ima neki svoj id, pa dodas recimo i datum, eventualno i cijenu…sto se tice querya, probaj ovako nesto, ime_tablice zamjenis s imenom tablice :slight_smile:

SELECT COUNT( id_knjige ) AS broj_prodanih_primjeraka, id_knjige
FROM ime_tablice
GROUP BY id_knjige

Probala sam ovo ali mi uporno izbacuje neku gresku.Videla sam vec ovakvo resenje u jednoj slicnoj temi ali nisam uspela da ga realizujem u svom slucaju. Negde ocito gresim. Ali hvala u svakom slucaju. Lp!

Ajd probaj ovako

SELECT COUNT(id_knjige) AS COUNT, id_knjige FROM ime_tabele GROUP BY id_knjige

prepravi ovo ime_tabele u ime kako se tvoja tabela zove
prva kolona ti je count i u njoj se nalazi ukupan broj prodatih knjiga za id koji je u drugoj koloni, id_knjige :slight_smile:

Edit: sad sam video da je i webdeveloping031 isto odgovorio ali nema veze …

Pa napisi gresku. Nitko nije vidoviti MIlan da znamo koju ti gresku izbacuje, daj nam tvoj kod da vidimo gdje ti je greska.

Izbacuje mi expect parameter. Znam da mi je greska u kodu ispod ovog sto su napisali @webdeveloping031 i @mnk0 a kojim ja pokusavam da dobijem kolko je puta uneta svaka od knjiga, tj koliko je primeraka prodato od svake. Sa mysql_num_rows uspela sam samo da dobijem ukupan broj prodatih knjiga ali ne i za svaku posebno.

Kod. Daj nam kod. Nama treba kod. Nama trbe tvoj kod. I to onaj PHP kod s kojim pokusavas to rijesiti. (ovo citaj kao da pjevam :slight_smile: )

Off Topic : E treba nam na forumu funkcija da mozemo nesto i otpjevati. :slight_smile:

1 Like

Nemam ga. :smiley: Sto puta sam pisala i brisala i pisala i brisala i opet pisala i brisala i na kraju nisam nista napisala.(ovo nemojte da citate kao da pevam nego kao da hocu da puknem od muke) :smiley: Mozda bih ja ipak trebala samo da nastavim da radim u knjizari umesto sto pokusavam da im napravim sajt i da se bavim izradom web sajtova. :frowning:

Ne odustaj tako brzo. Pa to nije nikakav problem koji se ne moze rijesiti. Ajde lijpo napisi kod koji mislis da ide i onda ga zaljepi vamo pa cemo ti pomoci.

Sada sam u knjizari, radim, kad dodjem kuci pokusacu nesto da napisem pa cu zalepiti. Ja sam to uradila pomocu wille petlje i $i++ proveravala sam pomocu mysql_num_rows svaki put kad se petlja izvrsi koliko se puta ponavlja id_knjige i to je bilo ok. Ali sam posle shvatila da se i svaki put kad se petlja izvrsi vrsi i query. Tako da imam querya isto koliko i knjiga. Nemam predstavu kako bi se to moglo resiti jednim, iskreno lupala sam neke gluposti ali nisam uspela nista da uradim.

probaj ovako

$query=mysql_query("SELECT COUNT(id_knjige) AS broj_prodanih_primjeraka, id_knjige FROM ime_tabele GROUP BY id_knjige");
if ($query){
   if ($row=mysql_fetch_assoc($query){
      do{
          echo "Id knjige: ".$row['id_knjige'].", broj prodanih primjeraka: ".$row['broj_prodanih_primjeraka']."<br />";
      } while ($row=mysql_fetch_assoc($query));
   }
}
1 Like

Sta ovde treba staviti? To mi ja malo nejasno. Ja nemam polje broj_prodatih primeraka u tabeli. broj prodatih primeraka bi trebao biti onoliki koliko se puta id jedne knjige ponovi u koloni id_knjige. Na primer ako u koloni id_knjige imam
12
16
15
12
15
12
broj prodatih primeraka ciji je id 12 je 3
broj prodatih primeraka ciji je id 15 je 2
broj prodatih primeraka ciji je id 16 je 1

pa to i je, zato imas u queryu, dohvacas COUNT - broj unosa, AS (kao) broj_prodanih_primjeraka, dakle u samom queryu taj broj deklariras kao broj_prodanih_primjera

dakle, samo u queryu stavi svoje ime tablice i prije toga se spoji na bazu i raditi ce
sva ostala polja, varijable i slicno ostavi

Mislim da imas nepotrebni space u AS broj_prodanih primjeraka, (gore u tvom primjeru)

1 Like

Cakaj ako sam dobro razumela ja u queryu deklarisem variablu broj_prodanih_primeraka?Nisam nasla ni u jednoj knjizi da je to moguce.Cim dodjem na red za racunar pogledacu jel ovo resenje za moj problem? I da jeste i da nije moram da vam se zahvalim na trudu i da pohvalim ovaj forum.Na jednom forumu (ne bih sad da kazem kom) sam jednom osstavila post i dobila odgovor tek posle 3 dana a kada sam pitala jos nesto u vezi tog opet je proslo 3-4 dana do narednog odgovora. Stvarno sam odusevljena ljudima na ovom forumu i kolicinom komentara u jednom danu. Stvarno me raduje sto postoji neko ko moze i ko zeli da pomogne drugima.

da, u queryu deklariras da ti je COUNT(id_knjige), dakle broj unosa koje brojis, jednak broj_prodanih_primjera

http://www.w3schools.com/sql/sql_func_count.asp

1 Like

To je to! :smiley: Ja sam ovo malo prilagodila svojim potrebama pa sam htela da pitam jesam li to uradila na ispravan nacin?

$query=mysql_query("SELECT COUNT(id_book) AS num_sold_books, id_book FROM sold_books GROUP BY id_book");
if ($query){
   if ($row=mysql_fetch_assoc($query)){
      do{
           $book=array(1=>'MOŽDA NEBO ZNA',
                       2=>'VELIKI RAT',
                       3=>'KALUĐER KOJI JE PRODAO SVOJ FERARI',
                       4=>'OGLEDALO DUŠE',
                       5=>'ŠAPTAČ',
                       etc
                        );
                           $id_book=$row['id_book'];
          echo "Knjiga: ".$book['id_book'].", broj prodanih primjeraka: ".$row[num_sold_books']."<br />";
      } while ($row=mysql_fetch_assoc($query));
   }
}

Spremila sam listu knjiga u array pa posle printam.Palo mi je i na pamet da vadim to iz tabele gde mi se nalazi lista knjiga i njihov id ali mi je ovako bilo jednostavnije.A i imam jedan zahvat prema bazi manje.Jesam li u pravu ili gresim?

nemoj stavljati rucno u array podatke, zato imas bazu, unesi knjige isto u neku tablicu, i onda kad ti treba ispis necega, samo ispises to polje, ili ako ti trebaju sve knjige, onda sve