Zbrajanje ovisno o keywordu

Evo mene sa jos jednim php pitanjem… Imam dosta zadataka vezanih za programiranje pa se polako učim heh… Valjda nisam dosadan sa pitanjima.

Uglavnom situacija je sljedeća. Imam bazu recimo ovakve strukture.

[HTML]Keyword | Visit

epson printer | 200
HP printer | 100
Cannon printer | 50
Cannon scaner | 50[/HTML]

E sada bi output trebao biti nesto ovako

[HTML]epson - 200
printer - 350
HP - 100
Cannon - 100
scaner - 50[/HTML]

Znaci trebao bi svaki unos rascjepkati na rijeci, uvjet da se rastavi bi bio razmak.
E sada kako je rijec printer zajednicka za sve, tu bi trebalo zbrojiti posjete u svim redovima gdje je rijec printer. Isto recimo vrijedi za cannon. Nadam se da ste iz ovog primjera kako output izgleda shvatili sto trebam.

Mozete mi dati primjer koda, ili me barem uputiti kako to izvesti.

trebaju ti dvije tablice, jedna za vrstu uređaja i jednu za uređaje i jedna vezna.
i onda bez problema dobiješ nešto ovako sa union.

Radi se o tome da je ovo sa printerima samo primjer, nemam ja uređaje uopće po vrsti, ima tu doslovno svega jer podatke izvlačim iz .csv file-a i neznam sto mogu ocekivati u njemu.

eventualno bi mozda bilo pametno da te podatke odmah i csv-a u bazu unesem tako da jedan keyword ide u poseban red, tako da nigdje nemam vise rijeci u redu. O ovom slucaju bi morao mjenjati dobar dio skripte, pa me zanima jel ovo kako izvedivo php-om, znaci bez da mjenjam ista sa bazom. Pokusavao sam ja vec nesto sloziti sa for petljama i slicno, ali nista ne funkcionira.

možeš i sa php-om.
staviš u array i pretražuješ po riječima i zbrajaš vrijednosti i to je to.

Evo ti hint, kod nije dorađen, izbacih ga iz glave kako bih to najjedostavnije napravio:

Uvjet je da se tablica zove “keyword_tablica” i da ima polja: ID (unique), keyword i visit (koje mora biti int).

Kod se može optimizirat, već će ti netko napisat bolju verziju :slight_smile:
Mada je i ova funkcionalna (trebala bi biti, nisam isprobao)

Vidim da nitko ne piše, pa da skratim kod:

@dmitrecic

Mislim da nisi shvatio sto trazim. Ovaj tvoj kod radi update na bazu tako broj visita poveća za jedan. Meni treba da ispise keyword i ukupan broj visita u svim redovima u bazi gdje se taj keyword spominje.

Dakle ako u bazi imam

Cannon printer | 20
HP printer | 30

treba ispisati

cannon | 20
HP | 30
printer | 50

Znaci nakon onoga explode bi trebalo za svaku rijec proci kroz bazu, zbrojiti visite za sve redove u kojima nadje tu rijec, i onda to ispisati. nakon toga isto to ponovo za slijedecu riječ. I tako se vrtiti dok ne prođe sve redove

[quote="’<[cyber"]>]@dmitrecic

Mislim da nisi shvatio sto trazim. Ovaj tvoj kod radi update na bazu tako broj visita poveća za jedan. Meni treba da ispise keyword i ukupan broj visita u svim redovima u bazi gdje se taj keyword spominje.

Dakle ako u bazi imam

Cannon printer | 20
HP printer | 30

treba ispisati

cannon | 20
HP | 30
printer | 50

Znaci nakon onoga explode bi trebalo za svaku rijec proci kroz bazu, zbrojiti visite za sve redove u kojima nadje tu rijec, i onda to ispisati. nakon toga isto to ponovo za slijedecu riječ. I tako se vrtiti dok ne prođe sve redove[/quote]

file.csv

Cannon printer,20
HP printer,30

index.php

Output

array
  'Cannon' => int 20
  'printer' => int 50
  'HP' => int 30

Naravno, ti se moraš pobrinut oko ostalih provjera (da ti je CSV valjan i slično).

e odlično, nemam sada kako probati pa javim sutra jel funkcionira, ali mislim da je to to…

Hvala puno!

jedno glupo pitanje,

kako da to ispisem u nekom normalnom formatu, recimo

keyword - visit

ovaj var_dump ispise cijeli array… Pokusao sam sa for, foreach ali nikako ne mogu ispisati to da izgleda koliko toliko normalno

[HTML]

<?php foreach($array as $key => $value) : ?> <?php endforeach; ?>
Keyword Broj upita
<?php echo $key ?> <?php echo $value ?>
[/HTML]

A u CSS-u odradiš styling.

E odlicno, hvala…

uff, sad tek vidim koliko pojma nemam php hehe


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja