Jump to content
php.lv forumi

Ierakstu sadalīšana lapā pa <td> elementiem


senters

Recommended Posts

Sveiki, kā var sadalīt ierakstus no db attiecīgi pa tr un td elemetiem lapā. Datubāzē ieraksti diezgan daudz, vajag lai lapā rāda katrā rindā trīs preces. Ja ir četras, tad viena jau automātiski rādās jaunā rindā.

 

attēls: Skice

 

 

kods:

 

<tr>
<?php 
$sql = "select * from preces where prece_tips = 'xxx'";
$qry = mysql_query($sql);
while ($row = mysql_fetch_array($qry))
{
echo "
<td>
	...
</td>";
}
?>
</tr>

Link to comment
Share on other sites

Kā ir ielikti 4 td, tā ieliec nepieciešamos tr.

Taa ir tikai dalja no risinajuma..

Jo var buut teiksim 5 preces, tatad 2 Linijas

Ar pirmo buutu skaidrs, 4X (<td> </td> un galaa Tr

bet nakamajam jaizrekjina cik vel nepieciesami TD , jo savadak tiek uzgenerets Skjiibs HTML

-----

Edit: padaliishos ar kodu kuru brizjam pats izmantoju

--

function tabulas($masivs,$rowi,$propertijas='',$propertijas2='',$error_mesage='Nekas netika atrasts')
{
 $skaits=count($masivs);

 if($skaits==0)
 {
   return $error_mesage;
 }
$tabula='<table '.$propertijas.' >';
for($i=0;$i<$skaits;$i++)
{
 $kursh=$i%$rowi;  //  noskaidrojam kursh rows
 if($kursh==0)  //  ja pirmais tad liekam prieksaa <tr>
 {
   $tabula .='<tr>';
 }
 $tabula .='<td '.$propertijas2.'>'.$masivs[$i].'</td>';

 if($kursh==($rowi-1))
 {
   $tabula .='</tr>'; //  ja beidzamais tad beigas </tr>
 }
}

//  parbaudam cik vel rovus vajadzeja
if($kursh !=($rowi-1))
{
 $xx=$rowi-1;
 $xx2=$xx-$kursh;
 for($i=0;$i<$xx2;$i++)
 {
   $tabula .='<td '.$propertijas2.'> </td>';
 }
 $tabula .='</tr>';
}

$tabula .='</table>';
return $tabula;
}

Kur

$masivs => tabula liekamie elementi

$rowi => cik tbulas suninjas vajag

$propertijas=> tabulas ipasibas ( teiksim border="2" class="bla" ... )

$propertijas2= td ipasibas ( teiksim platums, klasee etc..)

$error_mesage => ko adgriezt ja nav neviena rowa , defolta plain teksts, bet protams var likt jebko ..

---

tatad attiecigi lai izvadiitu no DB.

$sql = "select * from preces where prece_tips = 'xxx'";
$qry = mysql_query($sql);
$i=0;
while ($row = mysql_fetch_array($qry))
{
$masivs[$i]=<<<END
Preces nosaukums: {$roew['nosaukums']}<br>
Preces apraksts:{$row['aprakts']}
<div> kautkas vel </div>
bla bla bla
END;
$i++;
}
?>
sakas HTML bla bla bla
Vieta kur jaizvada tabula...
<?php echo tabulas($masivs,4,' border="1" class="mana_tabulas_klase" style="width:100%;" '); ?>
turpinas html

Varbuut kadam noder ..

Edited by Grey_Wolf
Link to comment
Share on other sites

vienkāršāk būtu ar diviem taisīt

Pilniiba nepiekriitu, jo

1. DIV tapat jaskatas lai ir flots vajadzigs vai nav. ( float:left ), jo vinji tachu janovieto blakus

2. Jaseko lidzi lai Optimali izskats uz visiem brauzeriem , parsvara IE/FF

3. Jaseko lai visiem butu vienads Augstums, savadak kadam elementam buus vairak dati, un viss dizqains aizbrauks pastaigaties..

4. Shie tomer ir Tabulari dati, taatad izmantojam tam piemerotus un paredzetus riikus..

Njemot vera augstak mineto, ar tabulu uztaisiit ir daudz vienkarsak un ertak , vismaz bez 'gemoroja', nedomajot daudz par to ka uz kada brauzera viss varetu ziiet skjersam ..

+ neviens jau neliedz pasaa suninja izmantot DIV, un pat vel vairak pat velams lai normali sakartotu izvadamos datus

( bildes, aprakstu etcc... )

 

P.S. Ja saki ka Vienkarsak tad Ludzu piemeru !

taa lai tiktu noverstas nepilnibas ko mineju, savadak sanak tuksa runasana

 

edit: atseviskju funkciju veidoju, lai to aretu izmantot arii citas projekta vietas & Pavisam citos projektos. Vienreiz uzrakstiita, bet daudzkart izmantojama

Edited by Grey_Wolf
Link to comment
Share on other sites

Te vairāk piekrītu Grey_Wolf viedoklim. Pats gan cenšos vairāk izmantot div šādās vietās, bet tā arī neesmu atrisinājis dažāda šūniņu augstuma problēmu, nu un vēl būtu pateicīgs ja kāds pateiktu priekšā kā izmantojot div elementus šos teiksim produktu lauciņus varētu izkārtot pa vidu attēlojamam laukam un vienādos attālumos, ja ir staipīgs dizains?

Link to comment
Share on other sites

Pats gan cenšos vairāk izmantot div šādās vietās, bet tā arī neesmu atrisinājis dažāda šūniņu augstuma problēmu, nu un vēl būtu pateicīgs ja kāds pateiktu priekšā kā izmantojot div elementus šos teiksim produktu lauciņus varētu izkārtot pa vidu attēlojamam laukam un vienādos attālumos, ja ir staipīgs dizains?

izmantojot Table shiis abas problemas atrisinas automatiski ;)

tabuals elementam var noradiit kaa izvietot informaciju, kautvai klasiskais HTML varjants

align="center" valign="center" Izmantojot manu funkciju shamo vienakrsji ieraksta kaa otro propertiju un viss..

problema atrisinata ...

Gribu redzet kaa tie kas kliedz ka Vieglak ir izveidot ar DIV risina shiis abas problemas , ( par info novietosanu DIV platuma pa vidu buutu elementari, bet kaa juus atrisinasiet vertikalo centresanu , lai normali strada uz visiem Brauzeriem ( ieskaitot IE6 , Un IE8 (kuriem katram ir savas ,zamaskas, )

---

Edited by Grey_Wolf
Link to comment
Share on other sites

Jā, tieši tā, šajā ziņā patiešām tabulām ir daudz priekšrocību. Es vienkārši gribu šo visu atrisināt uz diviem, lai mainīga platuma dizainos arī elementu skaits mainītos pēc vajadzības vienā rindiņā (šī pagaidām vienīgā priekšrocība, ko redzu div izkārtojumam šajā gadījumā). Pagaidām vienkārši lieku augstumu un platumu diviem nemainīgu, tā ka sanāk ierobežojums uz lauciņa saturu. Te patiešām būtu jājautā tiem kas protestē pret tabulām kā tādām, iespējams ka ir sakarīgi risinājumi.

Link to comment
Share on other sites

3. Jaseko lai visiem butu vienads Augstums, savadak kadam elementam buus vairak dati, un viss dizqains aizbrauks pastaigaties..

 

Šis punks varētu radīt lielākās grūtības.

 

Piekritīšu Maris-S, ka diviem ir plusi pie mainīga platuma, bet tabula kā būs ar tādu platumu kā viņai uzlika tā arī būs. Var takš sataisīt ka noklikšķinot uz diva parādās info tabulā, bet te domāju, ka būs tikai bildīte ar tekstu kas tas ir un viss pārējais parādās vēlāk.

Edited by Sasa
Link to comment
Share on other sites

tabula kā būs ar tādu platumu kā viņai uzlika tā arī būs.

.....

Var takš sataisīt ka noklikšķinot uz diva parādās info tabulā,

Ja nezinaji tad tabulai tapat ka DIV var uzlikt mainiigu platumu.

Vienigais trukums tabulai ir tas ka gruti uztaisiit mainiigu Rowu skaitu.

Bet arii ar DIV nebus tik vienkarshi, lai tie Perfekti stradatu uz visiem brauzeriem, teiksim nedomaju ka buus seviskji skaisti kad sasaurinot Brauzera logu, paltuma paliks tikai viens ROWs ( 1 ieraksts )

 

Rezultataa tomer atgriezies pie tabulas, un piedevam apsaluti skjiiba veida,

Tabularus datus centies ar DIV, bet stacionarus, ar tabulu ...

Sheit domaju ka datus kur ir konkretais preces apraksts, tieshi vajadzetu taisiit ar DIV, ja vien arii tur nav kaudze ar tabulariem datiem ...

 

Bet taa kaa lepni pazinji ka

vienkāršāk būtu ar diviem taisīt

Tad tomer Gribetos redzet tavu risinajumu, savadak sanak Ka maki tikai skaisti runat..

Edited by Grey_Wolf
Link to comment
Share on other sites

Sasa -> visi elementi ir Kollonaa, nevis pa 4 rindaa un tad nakamajaa rindaa..

taa kaa uzdevums NAV atrisinats ..

Neba jau vajadzeja novietot vienaa garaa kollona, bet gan taa kaa noraadija Topika autors ..

 

tev ir :

1

2

3

4

5

 

bet nepieciesams bija:

1 2 3

4 5

--

uztaisi lai izvadas shadi, piedevam lai briivi var mainiit kolonnu daudzumu, teiksim no 1 liidz 5 un neierobezotu rindu skaitu ...

Edited by Grey_Wolf
Link to comment
Share on other sites

es, tad nesaprotu,

man ir tā:

a

1 2 3 4

 

b

1 2 3 4

 

c

1 2 3 4

 

un kad beidzās vieta rindā pāriet uz jaunu rindu.

 

Ja taisītu ar tabulu tad es paskatītos cik ierakstu ir izdabūjis sql querijs izdomātu cik ierakstu es gribu vienā rindā un ģenerētu tabulu.

Edited by Sasa
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...