(REZOLVAT)am o mica problema

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

exael
Senior Member
Mesaje: 312
Membru din: Mie Apr 27, 2005 2:52 pm
Localitate: Slavui City
Contact:

(REZOLVAT)am o mica problema

Mesajde exael » Joi Noi 05, 2009 5:42 pm

Salutare,

Am o mica problema si nu stiu cum s-o rezolv repede....

am in mysql un tabel "product" si in tabela respectiva am un id_cat
in care pot sa bag acelasi produs in mai multe categorii... arat cam asa

id_cat|

1,2
1
3
4

problema mea e ca nu stiu cum sa fac selectul din baza de date... sa scap de virgula aia


Cod: Selectaţi tot

link
<a href="index.php?id_cat=2">Produs2</a>



$SQL = mysql_query('SELECT * FROM `product` WHERE id_cat="'.$_GET['id_cat'].'"');


poate ma ajuta cineva...

merci mult
Ultima oară modificat Vin Noi 06, 2009 5:02 pm de către exael, modificat 1 dată în total.


°!±→H╙☻.+A +A▼╜╬é4⌂i

Poyo
Average Member
Mesaje: 97
Membru din: Dum Iun 08, 2008 11:19 am
Localitate: Rm. Valcea

Mesajde Poyo » Joi Noi 05, 2009 6:25 pm

Nu prea am inteles care e problema, dar ai SQL Injection...

exael
Senior Member
Mesaje: 312
Membru din: Mie Apr 27, 2005 2:52 pm
Localitate: Slavui City
Contact:

Mesajde exael » Joi Noi 05, 2009 6:46 pm

pai eu daca folosesc id_cat=2 n-are cum sa fie id_cat=$_GET['id_cat']

pentru ca eu in baza de date il am 1,2 sunt 2 categorii in acelasi camp... si am facut un separator intre id categorie "," si nu stiu cum sa afisez produsul cu id-ul 2

merci
°!±→H╙☻.+A +A▼╜╬é4⌂i

exael
Senior Member
Mesaje: 312
Membru din: Mie Apr 27, 2005 2:52 pm
Localitate: Slavui City
Contact:

Mesajde exael » Vin Noi 06, 2009 1:10 pm

deci sa fac o explicatie mai clara...

am in baza de date un tabel categorii unde am asa

Categorii

+-------+----------------+
| id_cat | nume_cat |
+-------+----------------+
| 1 | Categoria1 |
+-------+----------------+
| 2 | Categoria2 |
+-------+----------------+
| 3 | Categoria3 |
+-------+----------------+

si in tabelul product am asa

Product

+-------------+----------------+
| id_product | id_cat |
+-------------+----------------+
| 1 | 1,2,3 |---------------------------> aici am bagat produsul in mai multe categorii
+------------+----------------+
| 2 | 2 |
+------------+----------------+
| 3 | 1 |
+------------+----------------+


ee acum nu stiu cum dracu sa fac selectul din baza de date sa afisez produsul cu id-ul 1... in categoriile respective


poate ma ajuta cineva cu un exemplu mic... nu cer mura in gura

merci mult
°!±→H╙☻.+A +A▼╜╬é4⌂i

beckslash
Average Member
Mesaje: 85
Membru din: Mie Iul 22, 2009 1:18 am

Mesajde beckslash » Vin Noi 06, 2009 5:21 pm

Cod: Selectaţi tot

$SQL = mysql_query("SELECT * FROM `product` WHERE id_cat LIKE '%".$_GET[id_cat]."%'");


Iti returneaza toate id_product din Product care contin $_GET[id_cat] in stringul din campul id_cat.
Cred ca asta intrebai.

pin8marian
Average Member
Mesaje: 93
Membru din: Lun Iun 09, 2008 10:54 am
Localitate: Bucuresti
Contact:

Mesajde pin8marian » Vin Noi 06, 2009 5:44 pm

Nu inteleg cum adica este rezolvat acest topic?. Ma intreb ce se intampla daca un produs face parte din categoriile 1,11,111,112,113 si toate id-urile sunt scrise in aceeasi inregistrare. Daca folosesti operatorul "like" cererea iti va intoarece toate produsele unde geseste id de cautat (in ex. meu este vorba de id-ul: 1).Sau ma insel?

beckslash
Average Member
Mesaje: 85
Membru din: Mie Iul 22, 2009 1:18 am

Mesajde beckslash » Vin Noi 06, 2009 9:27 pm

Cod: Selectaţi tot

$SQL = mysql_query("SELECT * FROM `product` WHERE id_cat LIKE '%".$_GET[id_cat].",%'");


Banuiesc ca nu formeaza sirul acela verificand daca id-ul pe care il introduce momentan este primul si abea de la al doilea concateneaza il cu ", id_nou".
Si daca o face asa schimba modul de formare al acelui string concatenand la el mereu "id_nou, " si atunci numarul se va termina in , si totul e ok.


Înapoi la “PHP Incepători”

Cine este conectat

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