Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

sqls
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
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  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> MySQL
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community