Autor Zpráva
quickspider
Profil *
Dobrý den, mám problém s postupným vypisováním z databáze. Moje řešení vypadá docela dobře, ale je to podle mně moc složité a né 100% funkční.
<div class="titulek">
<div class="titulek_nadpis"><?php
                              echo $poradi, $rada;
                            ?>
</div></div>
<div class="k11_text">
<table class="tabulka_dily">
<tr><td><div class="tabulka_dily_nadpis"><center>pořadí dílu</center></div></td><td><div class="tabulka_dily_nadpis">český název</div></td><td><div class="tabulka_dily_nadpis">německý název</div></td></tr>
<?php

function pripojeni_db()
{ // BEGIN function pripojeni_db
	$pripojeni = @mysql_connect('localhost', 'kuba' , 'makovice');
	mysql_query("set names cp1250"); //(utf8 nahraďte za cp1250 pro stránky ve windows-1250 a latin2 pro iso-8859-2)
  	 if (!$pripojeni)
      {
        return false; 
      }
    if(!mysql_select_db('web', $pripojeni)) 
	 {
		 return false; 
	 }
	 
   return !$pripojeni;
} // END function pripojeni_db


pripojeni_db();
$zaznam ="select poradi, cz, de from dily where id like '01%' order by id";
	$vysledek = mysql_query($zaznam);

while ($zaznam = mysql_fetch_array($vysledek)) 
	 {
echo "<tr><td><center>".$zaznam["poradi"]."</center></td><td>".$zaznam["cz"]."</td><td>".$zaznam["de"]."</td></tr>";
$poradi++;
}
echo mysql_error();
?>
</table></DIV>
<div class="titulek">
<div class="titulek_nadpis"><?php
                              echo $poradi, $rada;
                            ?>
</div></div>
<div class="k11_text">
<table class="tabulka_dily">
<tr><td><div class="tabulka_dily_nadpis"><center>pořadí dílu</center></div></td><td><div class="tabulka_dily_nadpis">český název</div></td><td><div class="tabulka_dily_nadpis">německý název</div></td></tr>
<?php

	
$zaznam ="select poradi, cz, de from dily where id like '02%' order by id";
	$vysledek = mysql_query($zaznam);

while ($zaznam = mysql_fetch_array($vysledek)) 
	 {
echo "<tr><td><center>".$zaznam["poradi"]."</center></td><td>".$zaznam["cz"]."</td><td>".$zaznam["de"]."</td></tr>";
}
$poradi++;
echo mysql_error();
?>
</table></div></div>


výsledek vypadá takto:


zkoušel jsem použít cyklus for, ale povedlo se mi jen zahltit paměť, čísla řad by se měly zvětšovat. Může mi někdo poradit jak na to?
Cargas
Profil
mozna to bude takto

if (empty($rada)) { $rada =1; }

$soucet = mysql_num_rows($vysledek)

$abc = "$poradi*$rada";

if ($soucet>$abc) { $rada++; }
Alphard
Profil
quickspider:
Nevím, jestli chápu správně chápu to, čeho chcete dosáhnout, ale nestačilo by záznamy nechat seřazené podle id a do jednotlivých tabulek rozdělit až v aplikaci? Nějak takhle?
quickspider
Profil
No, mám data v databázi a potřeboval bych je nějakým způsobem (co nejjednodušším) rozdělit do tabulek včetně názvu řad (pokud možno automaticky a bez nutnosti vkládat stejný kód jako mám výše).
quickspider
Profil
šlo by automaticky číslovat sloupec pořadí? Já jsem mu zkoušel přeřadit AUTO INCREASE, ale to neprošlo protože není klíčový (ten mám id).
quickspider
Profil
má někdo nějaký nápad?
tiso
Profil
quickspider: a podľa čoho vlastne chceš rozdeľovať tie dáta do tabuliek?
quickspider
Profil
tiso: podle sloupce id, který je například 0210 - 2. řada, 0704 atd.
tiso
Profil
quickspider: tak to máš zle navrhnuté, mal by si mať jeden stĺpec pre radu a druhý pre číslo epizódy.
Kajman_
Profil *
 where id div 100 = 1

Ale opravdu bude lepší, když si to rozdělíte do dvou sloupečků. Bude to nejen logičtější ale i svižnější.
quickspider
Profil
můžu to rozdělit, ale kromě rychlosti v tom výhodu nevidím. Ten Výpis bude pak jak? momentálně to mam takto:
<div class="titulek">
<div class="titulek_nadpis">1. řada
</div></div>
<?php
$tabulka = '<div class="k11_text">
<table class="tabulka_dily">
<tr><td><div class="tabulka_dily_nadpis"><center>pořadí dílu</center></div></td><td><div class="tabulka_dily_nadpis">český název</div></td><td><div class="tabulka_dily_nadpis">německý název</div></td></tr>';

function pripojeni_db()
{ // BEGIN function pripojeni_db
	....
} // END function pripojeni_db

pripojeni_db();
echo $tabulka;
$zaznam ="select poradi, cz, de from dily where id like '01%' order by poradi";
	$vysledek = mysql_query($zaznam);
while ($zaznam = mysql_fetch_array($vysledek)) 
	 {
echo "<tr><td><center>".$zaznam["poradi"]."</center></td><td>".$zaznam["cz"]."</td><td>".$zaznam["de"]."</td></tr>";
}
?>
</table></DIV>
<div class="titulek">
<div class="titulek_nadpis">2. řada
</div></div>
<?php

funguje to, zkrátil se kód, ale asi to nebude nejlepší
Cargas
Profil
Při vkládání databáze :
1. Vkládat a číslovat pořadí dílu + podmínka která řiká, aby dala řadu 1.
2. Při dosažení určitého dílu říct programu, že by měl zmenit řadu,

Toto je řešení k zápisu do databáze s přidáváním řad :

if (empty($rada)) { $rada =1; } // pokud je to první, tím pádem nenastavený tak bude řada 1

$pocet_zaznamu = "9";

$abc = "$poradi*$rada"; // provedeme výpočty
$bca = "$rada*$pocet_zaznamu";

if ($bca>$abc) { $rada++; }
quickspider
Profil
Cargas:
problém je že série nemá stálý počet dílů.
tiso
Profil
Cargas: ???
Cargas
Profil
quickspider

V tom případě ti opravdu nezbude nic jiného než tu řadu zadávat ručně. ( další rámec do kterého budeš zapisovat ručně řady )

tiso

Čemu se divíš?
tiso
Profil
Cargas: tvojmu kódu, ktorý je úplne mimo a nerieši quickspider-ov problém.
Cargas
Profil
Tak to ani omylem. Pokud by ta série měla pořád stejný počet dílů tak by byl kod na místě. Pokud kodu nerozumis tak jsem mu napsal automatické vkládání řad do databáze po 9 dílech.
tiso
Profil
Cargas: „Pokud kodu nerozumis
Chcel si ma rozosmiať? Podarilo sa. Samozrejme že viem čo ten tvoj kód robí. Takéto frázy si nechaj pre začiatočníkov.
tak jsem mu napsal automatické vkládání řad do databáze po 9 dílech
No ty zrejme nie... Pretože žiadne vkladanie do databázy si neuviedol, len podmienky, pochybné výpočty s neexistujúcimi premennými. Žeby si to až veľmi vytrhol s kontextu? Okrem toho, quickspider chcel výpis dát z databázy.
Tak to ani omylem.
Tak si môj komentár [#16] prečítaj ešte raz a napíš mi v čom sa mýlim.
Cargas
Profil
tiso
Vždyť nejsme v práce a zakázky tak nemá cenu psát kvanta kodu... nemam pravdu ? On sice chtěl výpis z databáze, ale pak se tu shodlo, že bude muset změnit strukturu tak mu tu radim jak na to. A ještě k mé radě jsem mu připsal : „Toto je řešení k zápisu do databáze

A dál už to neřeš, nebudem se chovat jako děti.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

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