 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
pehashpist
Data înscrierii: 08/Feb/2007
Mesaje: 160
|
| Trimis: Sâm Iul 12, 2008 2:49 pm Titlul subiectului: SELECT |
|
|
sa zicem ca am o coloana `nume` si o variabila $nume='Popescu Vasile, Badea Gheorghe, Vanghelie Marean Care Este, Nastase Adrian';
Vreau sa selectez din coloana nume toate intrarile care contin unul din textele separate de virgula in variabila $nume
De ex daca am in `nume` valorile:
Citat: Emil Boc
Popescu Ion
Badea Gheorghe
Popescu Vasile Ghita
Care Este
sa imi returneze doar Badea Gheorghe si Popescu Vasile Ghita, nu si Popescu Ion sau Care Este chiar daca se afla in variabila $nume
pot face asta direct din mysql? sau trebuie sa folosesc explode iar in interogare LIKE '%$elementul_vectorului%' ? |
|
| Sus |
|
pehashpist
Data înscrierii: 08/Feb/2007
Mesaje: 160
|
| Trimis: Sâm Iul 12, 2008 3:45 pm Titlul subiectului: |
|
|
poate ca s-ar rezolva daca in loc de `name` LIKE '%$name%'
as pune invers adica $name LIKE `name`
e posibil? am vazut ca merge (sintaxa) dar nu si logic
pot sa compar o variabila cu o coloana (in loc de invers) si sa zic ca valoarea variabilei poate incepe sau se poate termina cu valoarea coloanei? |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 632
Locație: Drobeta Turnu Severin
|
| Trimis: Sâm Iul 12, 2008 11:35 pm Titlul subiectului: |
|
|
Ceva in genul :
SELECT ...
WHERE `name` IN ('Emil Boc','Popescu Ion','Badea Gheorghe','Popescu Vasile Ghita','Care Este');
Va intoarce inregistrarile care contin in coloana `nume` o valoare din lista. |
|
| Sus |
|
pehashpist
Data înscrierii: 08/Feb/2007
Mesaje: 160
|
| Trimis: Dum Iul 13, 2008 12:38 am Titlul subiectului: |
|
|
| am incercat acum si vad ca returneaza doar randurile in care coloana nume este exact una din valorile din lista, as vrea daca se poate sa returneze si cele care incep sau se termina cu una din valorile din lista |
|
| Sus |
|
dechim
Data înscrierii: 10/Mai/2005
Mesaje: 632
Locație: Drobeta Turnu Severin
|
| Trimis: Dum Iul 13, 2008 7:59 pm Titlul subiectului: |
|
|
Trebuie sa obtii :
SELECT ...
WHERE `name` LIKE 'Emil Boc%' OR `name` LIKE '%Emil Boc' OR `name` LIKE 'Popescu Ion%' OR `name` LIKE '%Popescu Ion' ...
Pentru asta variabilei
$nume= 'Emil Boc,Popescu Ion,Badea Gheorghe,Popescu Vasile,Care Este';
ii aplici :
$nume1 = "`name` LIKE '%" . str_replace(",", "' `OR name` LIKE '%",$nume). "' OR `name` LIKE '" . str_replace(",","%' OR `name` LIKE '",$nume)."%';";
si selectul devine :
SELECT ... WHERE $nume1
Sper ca n-am gresit pe undeva si ca ai prins ideea. |
|
| Sus |
|
pehashpist
Data înscrierii: 08/Feb/2007
Mesaje: 160
|
| Trimis: Lun Iul 14, 2008 3:41 pm Titlul subiectului: |
|
|
merge perfect
ms mult |
|
| Sus |
|
PHPRomania Bot
Bot Member
Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google |
| Trimis: Mie Dec 26, 2007 7:01 pm Titlul subiectului: Ad |
|
|
|
|
|
| Sus |
|
| |
|