Autor Zpráva
Vilak
Profil
Zdravím. Opět já.
Narazil jsem ještě na jeden problém.
Mám (v mysql) tabulku "menu", ve které mám dané sloupce: id, tb-id, float, rank a další (vypsané hodnoty jsou důležité), víme, že:

id = jedinečné id řádku (nejde vidět)
tb-id = id tabulku (takže id vytvořené nějaké tabulky v html, která má libovolný počet řádků; =ID)
float = zarovnání (jestli je vlevo x vpravo; =zarovnání)
rank = číslo daného řádku v tabulce (=rank)

řádek v mysql vypadá asi takto:
id - tb-id - rank - float
2 - 2 - 1 - left
3 - 2 - 4 - left
4 - 3 - 1 - right
...

Na rychlo jsem napsal ukázku zde: http://kod.djpw.cz/uaob- - Jde mi jen o zarovnání tabulek, o obsah už ne... (ten div clear both není povinný)
Tedy jde mi o to, aby tabulka s nejnižším ID byla nejvýš, ovšem musí byt zarovnaná ve správném sloupci a v tabulce musí byt seřazené řádky dle hodnoty rank
Zatím mě napadlo toto rozdělení (nevím, jestli je to dobře) - pak už nevím, jak udělat to, aby se vytvořili tabulky zvlášť pod sebou, pokud mají odlišné id-tb.
                    require_once "include/db.php";
                    $dotaz = mysql_query("SELECT * FROM `menu` ORDER BY `tb-id` ASC");
                    while ($vypis = mysql_fetch_assoc($dotaz)) {
                        if ($vypis['float'] == "right") {
                            echo "
                                <div class=\"right\">
                                </div>
                            ";
                        }
                        elseif ($vypis['float'] == "left") {
                             echo "
                                <div class=\"right\">
                                </div>
                            ";
                         }
                    }
mimochodec
Profil
Někdy tady nějaká otázka dá zabrat. V první řadě si oprav adresu na funkční: http://kod.djpw.cz/uaob-

Dále: otázce vůbec nerozumím, ale zdá se mi, že by ti mohlo pomoct toto: Nadpis skupiny
Vilak
Profil
Omlouvám se, že odepisuji až teď, měl jsem jinou práci.
Takže, trochu jsem to zjednodušil, pokusím se to vysvětlit znova, přesněji. btw. mimochodec díky, to je, myslím, prakticky ono, jen si to nedokážu upravit.
v mysql mám X řádků a každý řádek má:
ID = jedinečné identifikace
tb-id = jméno tabulky (tedy pořadí <table>)
rank = pořadí řádku v dané tabulce (<table>)

a potřebuji, aby se mi vytvořily tabulky (<table>) tak, aby řádky v databázi, které mají společný tb-id byly ve stejné tabulce a poté se v té tabulce seřadili podle daného ranku (což bude asi jen rank ASC). Taktéž potřebuji, aby se dané tabulky seřadili tak, že nejnižší hodnota (1) bude nahoře.

takže mám několik řádků, které mají společný tb-id (třeba) 4 a ty potřebuji dat do jedné tabulky a potom mám další řádky, které mají společný tb-id (třeba) 2 a ty potřebuji dat zas do odlišné tabulky. Ovšem tabulka s id 2 musí byt výš, než tabulka s id 4.
script jsem se snažil upravit, ale bohužel ho moc nechápu, navíc se mi na stránce NIC nevypisuje, jakto?:
require_once "include/db.php";
                    $dotaz = mysql_query("SELECT * FROM `menu` ORDER BY `tb-id`, `rank` ASC");
                    $pamet = "";
                    while ($line = mysql_fetch_assoc($dotaz)) {
                        if ($line['tb-id'] != $pamet) {
                            $pamet = $line['tb-id'];
                            echo "Tady bdue tabulka s ID ".$line['tb-id'].".";
                        }
                        echo $line['rank']."<br>";
                    }
příkaz: SELECT * FROM `menu` ORDER BY `tb-id`, `rank` ASC je tak, jak si to představuji... zkusil jsem to napsal v SQL a seřadilo se mi to tak, jak jsem chtěl.

jinak jsem si za vzor sebral příklad z odkazu, který mi poslal tady mimochodec, jedná se o tento script:
$pamet = '';
while ($line = …)
{
  if ($line['pismeno'] != $pamet)
  {
    $pamet = $line['pismeno'];
    echo "<b>$pamet</b><br>";
  }
  echo "$line[slovo]<br>";
}

myslím, že to mám vyřešené (po hooodně dlouhé práci :-D )
řešení asi není úplně nejlepší, ale stačí to na to, co chci, dávám ukázku pro budoucnost:
else {
                    // výpis dat pro návštěvníka - tabulky jídel
                    echo "<h4>Zobrazit kompletní tabulku <a href=\"alergeny.php\">alergenů</a></h4>";
                    require_once "include/db.php";
                    $dotaz = mysql_query("SELECT * FROM `menu` ORDER BY `tb-id` ASC, `rank` ASC");
                    $pamet = "";
                    while ($vypis = mysql_fetch_assoc($dotaz)) {
                        if ($vypis['tb-id'] != $pamet) {
                            echo "</table>";
                            echo "<table id=\"".$vypis['tb-id']."\">";
                            echo "
                                <tr>
                                    <td>".$vypis['gram']."</td>
                                    <td>".$vypis['allergens']."</td>
                                    <td>".$vypis['menu']."</td>
                                    <td>".$vypis['price']."</td>
                                </tr>
                            ";
                            $pamet = $vypis['tb-id'];
                        }
                        elseif ($vypis['tb-id'] == $pamet) {
                            echo "
                                <tr>
                                    <td>".$vypis['gram']."</td>
                                    <td>".$vypis['allergens']."</td>
                                    <td>".$vypis['menu']."</td>
                                    <td>".$vypis['price']."</td>
                                </tr>
                            ";
                        }
                    }
                    echo "</table>";
                }

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: