more category in the database

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

k0RUPE
Average Member
Mesaje: 95
Membru din: Vin Sep 24, 2010 9:17 pm

more category in the database

Mesajde k0RUPE » Lun Sep 01, 2014 6:59 pm

Cod: Selectaţi tot

<?php
mysql_connect
("localhost","media","moviepass") or die (mysql_error());
mysql_select_db("media") or die (mysql_error());
////////////// 

$categ = $_GET['category'];

$sql2 = mysql_query("SELECT * FROM books WHERE video_category = '$categ'");
$sql3 = mysql_fetch_array($sql2);


if(
$sql3['video_category'] == $categ){ //coloana category


$sql22 = mysql_query("SELECT * FROM books WHERE video_category = '$categ'");


//////////////
while($rio = mysql_fetch_array($sql22)){

echo $rio["video_nume"].'<br/>'; //afisare filme
            
}
//////////////

} else {

echo 'Not found!'; 

}
?>




cum asi putea daca in baza de date e adaugat langa categoria actiune si horror de ex: actiune,horror iar eu accesez http://localhost/category.php?category=horror sa imi afiseze linia respectiva chiar daca contine si actiune



Avatar utilizator
artur99
Average Member
Mesaje: 55
Membru din: Joi Ian 10, 2013 9:00 pm
Contact:

Re: more category in the database

Mesajde artur99 » Lun Sep 01, 2014 9:52 pm

Cred ca ar trebui sa regandesti tabelul din baza de date sa arate cam asa

video_id | category
----------------------------
1 | actiune
1 | horror
2 | comedie
3 | actiune
4 | horror

si ori vei da WHERE `category`='horror' ori WHERE `category`='actiune' iti va selecta videoul cu id-ul 1

k0RUPE
Average Member
Mesaje: 95
Membru din: Vin Sep 24, 2010 9:17 pm

Re: more category in the database

Mesajde k0RUPE » Mar Sep 02, 2014 8:40 am

O sa incerc si cum zici tu, dar nu era mai bine prin explode?

k0RUPE
Average Member
Mesaje: 95
Membru din: Vin Sep 24, 2010 9:17 pm

Re: more category in the database

Mesajde k0RUPE » Mar Sep 02, 2014 5:21 pm

artur99 scrie:Cred ca ar trebui sa regandesti tabelul din baza de date sa arate cam asa

video_id | category
----------------------------
1 | actiune
1 | horror
2 | comedie
3 | actiune
4 | horror

si ori vei da WHERE `category`='horror' ori WHERE `category`='actiune' iti va selecta videoul cu id-ul 1


cum.. sa creez 2 linii identice(cu acelasi id) doar coloana(video_category) sa fie diferita ? nu vreau asa ceva, adica mi se pare aiurea gandit

emanu31
PHPRomania Supporter
Mesaje: 27
Membru din: Mar Sep 02, 2014 11:55 am

Re: more category in the database

Mesajde emanu31 » Mar Sep 02, 2014 6:10 pm

Ai 3 tabele: videos, categories si video_categories.
Presupun o structura minima a coloanelor ca fiind:
1. videos cu coloanele id int(11) si name varchar(255)
2. categories cu coloanele id int(11) si name varchar(255)
3. video_categories cu coloanele id int(11), video_id int(11) si category_id int(11).

Si ai avea datele de genul:

videos
id | name
----------------------------
1 | "Sin City"
2 | "Expandables"
3 | "Hercule"
4 | "Guardians of the Galaxy"

categories
id | name
----------------------------
1 | "actiune"
2 | "horror"
3 | "comedie"

video_categories
id | video_id | category_id
----------------------------
1 | 1 | 1
2 | 1 | 2
3 | 2 | 1
4 | 2 | 3
5 | 3 | 1
6 | 3 | 2
7 | 3 | 3

Avand o astfel de structura poti sa selectezi filmele filtrand mai multe categorii de exemplu ai avea:

Cod: Selectaţi tot

// filtrare dupa categoriile horror si comedie
$query = "SELECT * FROM `video_categories` WHERE `category_id` = 2 or `category_id` = 3";

// daca vrei doar numele filmelor
$query = "SELECT name FROM `videos` WHERE `id` IN (SELECT `video_id` FROM `video_categories` WHERE `category_id` = 2 or `category_id` = 3)";

// combinatiile pot fi mai multe si de aici poti dezvolta complexitatea, poti folosi join-uri, foreign key-uri...


Si nu uita, tabela video_categories ar avea indecsi (numerici) pe toate coloanele si ar face filtrarile mai rapide.

Avatar utilizator
artur99
Average Member
Mesaje: 55
Membru din: Joi Ian 10, 2013 9:00 pm
Contact:

Re: more category in the database

Mesajde artur99 » Mar Sep 02, 2014 8:47 pm

k0RUPE scrie:
artur99 scrie:Cred ca ar trebui sa regandesti tabelul din baza de date sa arate cam asa

video_id | category
----------------------------
1 | actiune
1 | horror
2 | comedie
3 | actiune
4 | horror

si ori vei da WHERE `category`='horror' ori WHERE `category`='actiune' iti va selecta videoul cu id-ul 1


cum.. sa creez 2 linii identice(cu acelasi id) doar coloana(video_category) sa fie diferita ? nu vreau asa ceva, adica mi se pare aiurea gandit

poti sa mai pui o coloana doar 'id' si sa o setezi ca Primary Key...
Sau poti sa te complici cu explode...

k0RUPE
Average Member
Mesaje: 95
Membru din: Vin Sep 24, 2010 9:17 pm

Re: more category in the database

Mesajde k0RUPE » Mar Sep 02, 2014 8:51 pm

artur99 scrie:
k0RUPE scrie:
artur99 scrie:Cred ca ar trebui sa regandesti tabelul din baza de date sa arate cam asa

video_id | category
----------------------------
1 | actiune
1 | horror
2 | comedie
3 | actiune
4 | horror

si ori vei da WHERE `category`='horror' ori WHERE `category`='actiune' iti va selecta videoul cu id-ul 1


cum.. sa creez 2 linii identice(cu acelasi id) doar coloana(video_category) sa fie diferita ? nu vreau asa ceva, adica mi se pare aiurea gandit

poti sa mai pui o coloana doar 'id' si sa o setezi ca Primary Key...
Sau poti sa te complici cu explode...


am rezolvat man, mersi de intentie

cu "LIKE"


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 56 vizitatori