Jump to content
php.lv forumi

mysql: Datu izvade no 2 tabulaam


Agnisr

Recommended Posts

Sveiki forumiesi, biku vajadziiga paliidziiba ar datu izvadi no 2 tabulaam.

Taatad tabulas

 

1. tabula

 

id | title

1 ieraksts1.1

2 ieraksts1.2

3 ieraksts1.3

utt

 

2. tabula

 

cat | title

2 ieraksts2.1

2 ieraksts2.2

2 ieraksts2.3

5 ieraksts2.4

3 ieraksts2.7

(cat atrodas gadiijuma skaitli)

 

taatad vajadzeeja izvilkt datus, kur 1. tabulas id = ar otraas tabulas cat ierakstiem

Select p1.id, p1.title, p2.cat, p2.title from ad2_gallery_cats AS p1 INNER JOIN ad2_gallery AS p2
on p1.id = p2.cat;

Itkaa viss ok, visu atlasa Ok bet es nezinu kaa var tagad tos datus izvadiit saadaa seciibaa

 

Virsraksts

.... apaksvirsraksts

.... apaksvirsraksts

.... apaksvirsraksts

Virsraksts 2

.... apaksvirsraksts

.... apaksvirsraksts

.... apaksvirsraksts, kur virsraksti iz izvilkumi no pirmaas tabulas un apaksvirsraksti no otraas tabulas

 

Es ceru, ka kaads izprata domu un spees paliidzeet

Edited by Agnisr
Link to comment
Share on other sites

ar vienu ciklu:

* rādi virsrakstu, un pirmo apaksvirsrakstu;

* atceries kāds ir virsraksts;

* ja virsraksts ir tāds, kāds jau tika parādīts, nerādi viņu, parādi tikai apakšvirsrakstu.

 

vai taisi 2vus selectus, visus virsrakstus,visus apakšvirsrakstus izselectētajiem virsrakstiem un tad ar diviem cikliem. - vispirms pa virsrakstiem, tad katra virsraksta apakšvirsraksta.

Edited by v3rb0
Link to comment
Share on other sites

Not sure, vai pareizi "nopārsēju" tavu domu, bet vai tad tev visi ieraksti netiek atgriezti kā

...

Virsraksts, apakšvirsraksts

Virsraksts, apakšvirsraksts

Virsraksts, apakšvirsraksts

...

?

 

Ja domāji šādi:

...

Virsraksts 1, apakšvirsraksts 1

Virsraksts 1, apakšvirsraksts 2

Virsraksts 2, apakšvirsraksts 1

Virsraksts 2, apakšvirsraksts 2

Virsraksts 2, apakšvirsraksts 3

...

 

Tad ar

... ORDER BY p1.id, p2.cat

nesanāk ?

Link to comment
Share on other sites

andrisp

nu jaa, taa ir kaa tu mineeji, bet vajag man sitaa

Virsraksts

.... apaksvirsraksts

.... apaksvirsraksts

.... apaksvirsraksts

Virsraksts 2

.... apaksvirsraksts

.... apaksvirsraksts

.... apaksvirsraksts

 

un nav ne jausmas kaa to tagad izvadiit, galvu bonusaa sajauc 2 tabulas, kuraam viena colonna ir ar vienaadu virsrakstu!

Link to comment
Share on other sites

ar vienu ciklu:

* rādi virsrakstu, un pirmo apaksvirsrakstu;

* atceries kāds ir virsraksts;

* ja virsraksts ir tāds, kāds jau tika parādīts, nerādi viņu, parādi tikai apakšvirsrakstu.

 

vai taisi 2vus selectus, visus virsrakstus,visus apakšvirsrakstus izselectētajiem virsrakstiem un tad ar diviem cikliem. - vispirms pa virsrakstiem, tad katra virsraksta apakšvirsraksta.

 

šitais vai ta nav tas ko prasi??

 

 

p.s. bubu, sorri par quote!

Link to comment
Share on other sites

Agnisr --> ja ielasi datus no 2 vai vairaak tabulaam (kaa arii no 1 Bet Ar JOIN) tad iedod tai tabulas shunai Pseido Name

teiksim

tabula.title AS pirmas_tabulas_title, tabula2.title AS otraas tabulas_title...

resp tabulas nosaukums.shunas nosaukums AS pseido_vards...

jo savaadaak nevar (SELEC title, title nestraadaas)

vai arii vienkaarshi tabula1.title, tabula2.title .... Tik PHP galaa buus paliels bardaks taa kaa labaak pieskjir sakariigu Pseido vardu....

un PHP to arii izmanto ~~ $row['pseido_vards']......

Link to comment
Share on other sites

Grey_Wolf, man kaut kas nesanaak, tagad meeginu izvadiit vienk rezultaatus, bez noteiktas seciibas, kaa tu teici, bet nu nekaa

<?php
$db = mysql_connect("localhost");
mysql_select_db("edzulis", $db);
$sql = "Select p1.id, p1.title, p2.cat, p2.title from ad2_gallery_cats AS p1 INNER JOIN ad2_gallery AS p2
on p1.id = p2.cat ORDER BY p1.id, p2.cat";
$res = mysql_query($sql, $db);
$row = mysql_fetch_array($res);
while ($row = mysql_fetch_array($res)) {
echo ' ' . $row['p2.title'] . ' ' . $row['p1.title'] . '<br />';
}
?>

 

Atteelojas tuksa lapa, nav nekaada errora, nekaa

Link to comment
Share on other sites

Protams ;)

Es jau teicu kaa

Select p1.id, p1.title AS PIRMA_TITLE , p2.cat, p2.title AS OTRA_TITLE from ad2_gallery_cats AS p1 INNER JOIN ad2_gallery AS p2 on p1.id = p2.cat ORDER BY p1.id, p2.cat

Un izvadi....

echo ' ' . $row['OTRA_TITLE'] . ' ' . $row['PIRMA_TITLE'] . '<br />';

parejos (kas netkartojas izvadi vienkarshi kaa $row['id'] utt.... Ja tev vinjus nevajag izvadiit tad vispaar neliec SELECTaa

Edit :

vislabaakais pielies kodam echo $query; un peec tam ar CTR+C & CTRL+V iekopee PHPMyAdmin SQL laucinjaa un paskaties kas tev vispaar tiek atgriests..... Vai nav kljuuda utt.... (izmantojot INERR JOIN tiks atgriest rezultaats tikai tad JA ABAS TABULAAS BUUS VAJADZIIGAIS

IERAKSTI peec Kverija nosacijumiem...

Edited by Grey_Wolf
Link to comment
Share on other sites

Aptuveni tā:

$last_main_title = '';
while($row = mysql_fetch_assoc($db_result)) {

if ($last_main_title != $row['title']) {

	echo $row['title'];
	echo $row['subtitle'];
	$last_main_title = $row['title'];

} else {

	echo $row['subtitle']

}

}

Edited by andrisp
Link to comment
Share on other sites

One more question:

Vai ir iespeejams pieprasiijumaa ielikt taadu lietu kaa "iznemot" nosaciijumu.

Ar domu :

Select * from tabula where a=b 'iznemot' kur b=a;

kaut kaa pa netu raknaajoties neatradu ka kaut kas taads buutu iespeejams, bet tomeer neticaas, domaaju, ka biezi nepieciesama lieta

Link to comment
Share on other sites

×
×
  • Create New...