 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
baltas12345
Data înscrierii: 24/Mar/2008
Mesaje: 11
Locație: negresti-oas
|
| Trimis: Mar Apr 08, 2008 1:11 pm Titlul subiectului: extragere din mysql |
|
|
Buna,
Dat fiind urmatorul cod
Cod: $sqlr="SELECT * FROM marca,gen ORDER BY marca ASC";
$result = mysql_query($sqlr,$connection);
while ($row = mysql_fetch_array($result)) {
$cat_id = $row['cat_id'];
$gen_id = $row['gen_id'];
$marca = $row['marca'];
print "<a href='ceas.php?cat_id=".$cat_id."&gen_id=".$gen_id."'>".$marca."</a><br/>";
};
Acest cod creeaza un meniu in dreapta care-mi afiseaza numele categoriei. Insa numele categoriei imi apare de doua ori(de ex TV, apare de 2 ori). Daca scot din "gen" din "SELECT * FROM marca,gen ORDER BY marca ASC" atunci imi afiseaza o singura data, insa eu am nevoie si de tabela gen. Cum procedez sa-mi arate o singura data cu "gen"-ul inclus in interogare?Este ceva functie mysql pe care o acceseaza php-ul? Va multumesc anticipat |
|
| Sus |
|
mihaitha
Data înscrierii: 04/Mai/2007
Mesaje: 1389
Locație: Sibiu
|
| Trimis: Mar Apr 08, 2008 2:07 pm Titlul subiectului: |
|
|
| Citeste despre JOIN (directiva mysql). Daca nu te de descurci, posteaza structura tabelelor. Fara asta n-am cum sa te ajut. |
|
| Sus |
|
baltas12345
Data înscrierii: 24/Mar/2008
Mesaje: 11
Locație: negresti-oas
|
| Trimis: Mar Apr 08, 2008 2:36 pm Titlul subiectului: |
|
|
Tabela gen
Cod:
CREATE TABLE IF NOT EXISTS `gen` (
`gen_id` int(11) NOT NULL auto_increment,
`gen` varchar(10) NOT NULL,
PRIMARY KEY (`gen_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
INSERT INTO `gen` (`gen_id`, `gen`) VALUES
(1, 'barbati'),
(2, 'femei');
Tabela marca
Cod:
CREATE TABLE IF NOT EXISTS `marca` (
`cat_id` int(11) NOT NULL auto_increment,
`marca` varchar(20) NOT NULL,
KEY `id` (`cat_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=12 ;
INSERT INTO `marca` (`cat_id`, `marca`) VALUES
(1, 'Armani'),
(2, 'D&G'),
ETC
Tabela ceasuri
Cod:
CREATE TABLE IF NOT EXISTS `ceasuri` (
`id` int(11) NOT NULL auto_increment,
`cat_id` int(11) NOT NULL,
`gen_id` int(11) NOT NULL,
`descriere` text NOT NULL,
`poza1` varchar(30) NOT NULL,
`poza2` varchar(30) NOT NULL,
`poza3` varchar(30) NOT NULL,
`poza4` varchar(30) NOT NULL,
`pret` int(11) NOT NULL,
KEY `marca_id` (`cat_id`),
KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=30 ;
Cand dau interogare la numele marcii respective imi apare de doua ori numele. |
|
| Sus |
|
crick
Data înscrierii: 24/Feb/2006
Mesaje: 122
Locație: Craiova
|
| Trimis: Mar Apr 08, 2008 5:15 pm Titlul subiectului: |
|
|
E normal sa-ti apara de 2 ori - o data pt barbati si o data pt femei... ca sa zic asa. Incearca: Cod: SELECT * FROM marca, gen WHERE gen='barbati' ORDER BY marca ASC; respectiv Cod: SELECT * FROM marca, gen WHERE gen='femei' ORDER BY marca ASC;
Eventual o noua structura a bazei de date... daca ce e mai sus nu te ajuta. |
|
| Sus |
|
baltas12345
Data înscrierii: 24/Mar/2008
Mesaje: 11
Locație: negresti-oas
|
| Trimis: Mar Apr 08, 2008 6:59 pm Titlul subiectului: |
|
|
| Cum fac sa-mi afiseze toate produsele pentru ambele genuri, de ex daca pun gen_id=1 in url imi apar doar produsele ce corespund genului barbati. Daca pun in url gen_id=1&gen_id=2 imi ia ultima valoare adica 2. Cum fac sa le extraga pe amandoua? |
|
| Sus |
|
crick
Data înscrierii: 24/Feb/2006
Mesaje: 122
Locație: Craiova
|
| Trimis: Mar Apr 08, 2008 7:30 pm Titlul subiectului: |
|
|
Daca nu mai pui in query gen_id nu o sa mai faca filtrarea dupa gen.
De ex Cod: SELECT * FROM ceasuri WHERE cat_id=1 AND gen_id=1 o sa extraga produsele din categoria "Armani" pt barbati.
In schimb Cod: SELECT * FROM ceasuri WHERE cat_id=1 o sa extraga toate produsele din categoria "Armani", indiferent de gen. |
|
| 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 |
|
| |
|