 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
z.m
Data înscrierii: 25/Feb/2005
Mesaje: 326
|
| Trimis: Vin Feb 25, 2005 3:05 pm Titlul subiectului: sqls |
|
|
Salut
Am tabela 1
id_tabel1 simbol activa referinta
1 item1 true false
2 item2 true true
3 item3 true false
si tabela 2
id_tabel2 item1 item2 item3
1 true true false
2 false true true
Eu vreau sa afisez din tabela limbi doar item-urile(item1,item2,item3) care au atributul activa=true in tabela 1(A 3-a coloana).
Mersi! |
|
| Sus |
|
johnny
Data înscrierii: 31/Iul/2004
Mesaje: 904
Locație: Bucuresti
|
| Trimis: Vin Feb 25, 2005 3:11 pm Titlul subiectului: |
|
|
Citat:
Salut
Am tabela 1 ....
si tabela 2 ...
Eu vreau sa afisez din tabela limbi
"Limbi" care e 1 sau 2? Banuiesc ca o fi tabela 2, si ca vrei sa faci un join
http://dev.mysql.com/doc/mysql/en/join.html
Era mai simplu daca nu incercai sa abstractizezi datele. Dadeai si tu exact cum sunt facute tabelele, nu ti le fura nimeni :) |
|
| Sus |
|
z.m
Data înscrierii: 25/Feb/2005
Mesaje: 326
|
| Trimis: Vin Feb 25, 2005 3:56 pm Titlul subiectului: |
|
|
Da,e tabela 2,problema e ca nu stiu cum sa fac join-ul..
id_tabel1 simbol activa referinta
1 monitor true false
2 modem true true
3 placa video true false
si tabela 2
id_tabel2 monitor modem placa video
1 true true false
2 false true true |
|
| Sus |
|
Zamolxe
Data înscrierii: 14/Ian/2003
Mesaje: 126
Locație: Bucharest
|
| Trimis: Sâm Feb 26, 2005 3:55 pm Titlul subiectului: re |
|
|
nu se poate face JOIN intre cele doua tabele pentru ca tu nu ai nici un camp comun (ex. id, nume). consider ca designul tabelelor este eronat, nu este bine sa folosesti un nume care in tabelul 1 este practic o variabila, pe post de nume camp in tabelul 2.
explica mai detaliat ce doresti as faci cu cele 2 tabele, si ce trebuie sa contina ele, si iti pot recomanda o structura si un query optim
Serban |
|
| Sus |
|
Zamolxe
Data înscrierii: 14/Ian/2003
Mesaje: 126
Locație: Bucharest
|
| Trimis: Dum Feb 27, 2005 11:15 am Titlul subiectului: re |
|
|
am pus rezolvarea (asa cum o vad eu) cu font alb, cine vrea selecteaza textul.
Cod:
#fa un backup la tabelele limbi si monede
#am adaugat un camp in tabela `limbi` numit `id_monede` (cred ca trebuia `id_moneda` dar il schimbi tu dupa aia)
#executa instructiunile de mai jos
#dupa care executi query-ul de la sfarsit.
###########################################
#nu am timp sa-ti explic acum cum e gandita structura, incearca sa intelegi singur
#daca nu reusesti da-mi reply si o sa incerc sa iti raspund. (ideea e ca pentru fiecare moneda pui 3 inregistrari in limbi
#pt ro, en, es. In felul asta elimini problemele cu campurile, atunci cand se introduce o noua moneda)
#adica, introduci o moneda in `monede`, bagi si 3 inregistrari cu `id_moneda` respectiv in `limbi`
--
-- Table structure for table `limbi`
--
DROP TABLE IF EXISTS `limbi`;
CREATE TABLE `limbi` (
`id_limba` int(10) unsigned NOT NULL auto_increment,
`id_monede` int(10) unsigned NOT NULL default '0',
`simbol` varchar(25) NOT NULL default '',
`activa` varchar(25) NOT NULL default '',
KEY `id_limba` (`id_limba`),
KEY `id_monede` (`id_monede`)
) ENGINE=MyISAM;
--
-- Dumping data for table `limbi`
--
INSERT INTO `limbi` VALUES (1, 1, 'ro', 'false');
INSERT INTO `limbi` VALUES (2, 1, 'en', 'true');
INSERT INTO `limbi` VALUES (3, 1, 'es', 'false');
INSERT INTO `limbi` VALUES (4, 2, 'ro', 'false');
INSERT INTO `limbi` VALUES (5, 2, 'en', 'true');
INSERT INTO `limbi` VALUES (6, 2, 'es', 'false');
INSERT INTO `limbi` VALUES (7, 3, 'ro', 'false');
INSERT INTO `limbi` VALUES (8, 3, 'en', 'true');
INSERT INTO `limbi` VALUES (9, 3, 'es', 'false');
--
-- Table structure for table `monede`
--
DROP TABLE IF EXISTS `monede`;
CREATE TABLE `monede` (
`id_moneda` int(10) unsigned NOT NULL auto_increment,
`simbol` varchar(25) NOT NULL default '',
`activa` varchar(25) NOT NULL default '',
`descriere` varchar(25) NOT NULL default '',
`referinta` varchar(25) NOT NULL default '',
KEY `id_moneda` (`id_moneda`)
) ENGINE=MyISAM;
--
-- Dumping data for table `monede`
--
INSERT INTO `monede` VALUES (1, 'ROL', 'true', 'leu', 'false');
INSERT INTO `monede` VALUES (2, 'EUR', 'true', 'euro', 'true');
INSERT INTO `monede` VALUES (3, 'USD', 'true', 'dolar', 'false');
################################################
#executi query-ul asta
################################################
SELECT
monede.id_moneda,
monede.simbol,
limbi.simbol,
limbi.activa
FROM limbi
INNER JOIN monede
ON limbi.id_monede = monede.id_moneda
WHERE monede.activa ='true'
rezultatul il poti afisa simplu cu php |
|
| Sus |
|
aurelian
Data înscrierii: 01/Iun/2003
Mesaje: 833
Locație: Bucuresti
|
| Trimis: Dum Feb 27, 2005 12:06 pm Titlul subiectului: |
|
|
| wtf? |
|
| Sus |
|
arond
Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1
|
| Trimis: Dum Feb 27, 2005 7:18 pm Titlul subiectului: |
|
|
| Uh..oh.... now that's a first :).. |
|
| 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 |
|
| |
|