Temos pavadinimas: WordPress, Shopify ir PHPFusion programuotojų bendruomenė :: Dėl select skirtuko

Parašė Creatium· 2010 Rugs. 18 01:09:45
#1

Labas vakaras. Temos pavadinimą parašiau labai lietuviškai :D

Pabandysiu paaiškint.

Aš turiu pasidaręs SELECT meniu, kuris ima visus OPTIONS iš MySQL lentelės. Man gerai būtų tuos rezultatus (OPTIONS) atskirti skirtuku (OPTGROUP). Kaip reikėtų padaryt, kad skirtukas atskirtų tik tam tikros srities OPTIONS? Tarkim pas mane lentelė atrodo taip:

id name class
1 BMW Turbo
2 Fiat Max



Dabar man OPTIONS yra tokie:
BMW
Fiat


Man reikia, kad būtų taip:
Turbo
-- BMW
Max
-- Fiat


Trumpiau tariant, visai kaip skaitant temą jos apačioj atsiranda drop - down select meniu ir tenai pajuodintai parašyta:

Kita
-- Off-topic diskusijos
-- IT naujienos


Na, manau supratot. Čia kažkaip su ifais reikėtų turbūt, bet aš nelabai susigaudau kaip.

Redagavo ozzWANTED· 2010 Rugs. 18 05:09:02

Parašė Cause· 2010 Rugs. 18 03:09:54
#2

Na čia nelabai aišku kur tu jį toliau taikysi, būtų šaunu išgirsti, ko tau tiksliai reikia. Na bet pagal viską manau tiktų:

Čia jei toje turbo skiltyje bus ne tik BMW o ir daugiau mašinų:

 
<?php
 
 echo "<select name='name'>
 <optgroup label='Turbo'>";
 $sel = "SELECT id,name from lentele WHERE class='Turbo' order by id desc";
 $qq = mysql_query($qq);
 $for = mysql_num_rows($qq);
 for ($i=0;$i<$for;++$i) {
  $row = mysql_fetch_row($qq);
  echo "<option value='$row[0]'>-- $row[1]</option>";
 }
 echo "</optgroup></select>";
?>
 


Na šiame kode padariau tik su turbo... aišku galima jei bus labai daug tų class, pakeisti ir suoptimizuoti daugiau...

Redagavo Cause· 2010 Rugs. 18 03:09:28

Parašė Creatium· 2010 Rugs. 18 12:09:05
#3

Na taip. Taip padaryt galima (su while ko gero netgi tvarkingiau), tačiau gaunasi milžiniškas kodas, jeigu tarkim tų class yra 6-7 ar daugiau. Gal būtų galima kažkaip kitaip...?

Reik man atsisiųst php-fusioną ir pasižiūrėt kaip čia padaryta yra.


P.S. Sunku man suprasti tą fusiono kodą.

P.S.S. O naudosiu aš ne fusione, atskirame .php faile.

Redagavo Creatium· 2010 Rugs. 18 12:09:46

Parašė WebDraw· 2010 Rugs. 18 13:09:12
#4


 
<?php
 echo "<select name='name'>";
 $query = mysql_query("SELECT class FROM lentele GROUP BY class");
while($row = mysql_fetch_array($query)){
echo "<optgroup label='{$row[class]}'>";
 
  $query2 = mysql_query("SELECT id,name FROM lentele WHERE class= '$row[class]' ");
           while($row2 = mysql_fetch_array($query2)){
                  echo "<option value='{$row2[id]}'>-- {$row2[name]}</option>";
            }
echo "</optgroup>";
 }
 
 echo "</select>";
?>
 
 
 

Klaidu turbut yra, bet gal issitaisysi

Redagavo WebDraw· 2010 Rugs. 18 13:09:03

Parašė Creatium· 2010 Rugs. 18 13:09:46
#5

Ačiū ačiū labai labai. Keletas klaidelių pataisymų ir pakoreagavimų - veikia puikiai!

Parašė Cause· 2010 Rugs. 18 15:09:42
#6

Na nėr už ką, bet supratau, kad jo kodas tau padėjo. Na aš kaip ir sakiau jeigų būtų daug tų class, tada padarytumėme panašų kodą kaip jo.