Vreau sa afisez intr- o pagina PHP un tabel (mai degraba un view ) a unei baze de date. View contine 2 coloane: una fiind cu categorii iar celalalta cu subcategorii si vreau categoriile care au mai multe subcategorii sa apara o singura data. Lucrez in PHP 4.1.3 si MySQL 4.0.3 pe un server Apache 1.3. 34.
De exemplu:
automobile
-------------
diesel
cu GPL
benzina
--------------------
biciclete
-------------
mountain bike
cu 16 viteze
--------------------
motociclete
--------------
etc
Am scris o parte din cod dar cand verific daca valoarea coloanei dinainte si cea care urmeaza difera se blocheaza si numai afiseaza cum vreau eu.
Iata codul
// bamala conecatarea la bd
// trecerea tabelului in 2 vectori
while ($t = mysql_fetch_array($ssql))
{
$cat[]= $t["NumeCat"]; //vectorul pt categorii
$cat2[]=$t["NumeSub"]; //vectorul pt subcategorii
}
echo "<ul>";
//scrirea in tabel a datelor in formatul dorit
do
{
//verificare daca valoarea precedenta si urmatoare a cat[] corespund
if ($cat[$i] != $cat[$j]) // de aici nu mai afiseaza nimic
{
//se afiseaza categoria intr o celula
echo "<li>" .$cat[$i];
// daca exista subcategorie se afiseaza intr o celula alaturata
if ( $cat2[$i] != '')
{
echo "<ul><li>" .creare_url_sub($cat2[$i]) ."</li></ul>";
}
else
{
echo"</ul><li>";
if ( $cat2[$i] != '')
{
echo "<ul><li>";
echo .creare_url_sub($cat2[$i]) ."</td>";
echo "</ul></li>";
} */
}
// incrementarea valorilor pentru urmatorul rand din view
$j=$i;
$i=$i+1;
}
// si
while($i<$n && $j<$n-1 );
echo "</table>";
Afisare a continutului unui tabel MySQL
Moderatori: Zamolxe, Moderatori
Re: Afisare a continutului unui tabel MySQL
salut,
eu am facut ce vrei sa faci tu in feleul urmator:
un tabel mysql care contine ID,cat,si descrierea
atunci cand am o categorie mama il scriu
categoria mama
si o subcategoria o separ cu un caracter cum ar fi # sau _
atunci cand citesc categoria caut # si daca exista inseamna ca e o sub categorie
avantaje, pot sa fac subcategorii la infinit si codul e simplu:
<?
$r = mysql_query("SELECT `cat` FROM `categorii` WHERE 1 ORDER BY `cat`");
$index = "";
for($i=0;$i<mysql_num_rows($r);$i++){
$row = mysql_fetch_array($r);
if(sizeof(explode($row['cat']))>1)
echo "cat";
}else{
echo "subcat";
}
?>
codul l-am scris acum repede, dar asta e ideea
Bafta,
Khaled
eu am facut ce vrei sa faci tu in feleul urmator:
un tabel mysql care contine ID,cat,si descrierea
atunci cand am o categorie mama il scriu
categoria mama
si o subcategoria o separ cu un caracter cum ar fi # sau _
atunci cand citesc categoria caut # si daca exista inseamna ca e o sub categorie
avantaje, pot sa fac subcategorii la infinit si codul e simplu:
<?
$r = mysql_query("SELECT `cat` FROM `categorii` WHERE 1 ORDER BY `cat`");
$index = "";
for($i=0;$i<mysql_num_rows($r);$i++){
$row = mysql_fetch_array($r);
if(sizeof(explode($row['cat']))>1)
echo "cat";
}else{
echo "subcat";
}
?>
codul l-am scris acum repede, dar asta e ideea
Bafta,
Khaled
DESIGN EFFECT
- vectorialpx
- Senior Member
- Mesaje: 4832
- Membru din: Mar Mar 01, 2005 9:48 am
- Localitate: Bucuresti
- Contact:
-
cristic
- Junior Member
- Mesaje: 32
- Membru din: Mar Noi 02, 2004 10:25 am
- Localitate: BUCURESTI
- Contact:
Cristian MARIN - Designers Division Developer
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
Sorry ca n- am mai postat a aparut ceva neasteptat care a durat o groaza de timp (crearea unui catalog de produse).
Ceea ce vreau eu este sa fac o listare a subcategoriilor dintr un tabel MySQL
(cu acelasi nume) ordonate si separate pe categorii (care se afla in alt tabel legat de acesta printr o cheie straina). Dar vreau sa fie mai speciala afisarea
adica categoria sa fie deasupra si subcategoriile sale sa fie sub ea (eventual la 10 px mai la dreapta) dupa ce se termina prima categorie urmeaza a doua categorie si subcategoriile sale imediat sub prima categorie. Mie era f usor sa le scot sub forma de tabel sau le pun intr un dropdown legat de cel cu subcategorii. Acest tip de afisare am vazut la mai multe siteuri de magazine si de producatori de echipamente electronice si mi se pare deosebit si mai usor de utilizat.
Octavian mai clar de atat nu pot fi.
Eu am incercat ceva asemanator cu ce ai pus tu cristic dar cu functiile
previous() si next(). Parser ul PHP imi spune ca nu recunoaste ca fiind array
argumentul dat pentru next sau previous.
Imi afiseaza doar subcategoriile codul pe care l- ai dat :(
Ceea ce vreau eu este sa fac o listare a subcategoriilor dintr un tabel MySQL
(cu acelasi nume) ordonate si separate pe categorii (care se afla in alt tabel legat de acesta printr o cheie straina). Dar vreau sa fie mai speciala afisarea
adica categoria sa fie deasupra si subcategoriile sale sa fie sub ea (eventual la 10 px mai la dreapta) dupa ce se termina prima categorie urmeaza a doua categorie si subcategoriile sale imediat sub prima categorie. Mie era f usor sa le scot sub forma de tabel sau le pun intr un dropdown legat de cel cu subcategorii. Acest tip de afisare am vazut la mai multe siteuri de magazine si de producatori de echipamente electronice si mi se pare deosebit si mai usor de utilizat.
Octavian mai clar de atat nu pot fi.
Eu am incercat ceva asemanator cu ce ai pus tu cristic dar cu functiile
previous() si next(). Parser ul PHP imi spune ca nu recunoaste ca fiind array
argumentul dat pentru next sau previous.
Imi afiseaza doar subcategoriile codul pe care l- ai dat :(
-
cristic
- Junior Member
- Mesaje: 32
- Membru din: Mar Noi 02, 2004 10:25 am
- Localitate: BUCURESTI
- Contact:
Cristian MARIN - Designers Division Developer
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
-
cristic
- Junior Member
- Mesaje: 32
- Membru din: Mar Noi 02, 2004 10:25 am
- Localitate: BUCURESTI
- Contact:
Cristian MARIN - Designers Division Developer
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
InterAKT Online (www.interaktonline.com)
Tel: +4021 312.53.12
Tel/Fax: +4021 312.51.91
cmarin@interaktonline.com
Cine este conectat
Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 13 vizitatori