NOVINKA - Online rekvalifikační kurz Java programátor. Oblíbená a studenty ověřená rekvalifikace - nyní i online.
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Náhodný výběr a načtení tabulky z jiného souboru *.php

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Zdenek
Člen
Avatar
Zdenek:25.11.2016 7:14

Ahojte,
chtěl bych poprosit o pomoc. Mám soubor "základ.php" do kterého chci z "table.php" náhodným výběrem vložit jednu z 10 tabulek. Tabulky jsou dělané formou <table> "něco" </table>. Je mi jasné, že budu muset asi každé z tabulek přiřadit nějakou proměnnou, ale nějak se mi to nedaří a následně zavolat ze "základ.php" pomocí funkce echo. Může mi tu prosím někdo pomoct s kostrou zdrojáku?

Děkuji

 
Odpovědět
25.11.2016 7:14
Avatar
d4rkw34v3r
Tvůrce
Avatar
Odpovídá na Zdenek
d4rkw34v3r:25.11.2016 8:26

Rozděl si ty tabulky tak, aby byla vždy jedna v souboru a pojmenuj si je například tabulka1.php, tabulka2.php atd..

V souboru zaklad.php je potom můžeš vybrat a zobrazit například takto:

<?php

$pocetTabulek = 3;

// tabulky jsou cislovane od 1
$cisloTabulky = rand(1, $pocetTabulek);

$cestaKVybraneTabulce = sprintf('%s/tabulka%s.php', __DIR__, $cisloTabulky);


include $cestaKVybraneTabulce;
?>
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
25.11.2016 8:26
Avatar
Zdenek
Člen
Avatar
Odpovídá na d4rkw34v3r
Zdenek:25.11.2016 10:18

Děkuji za rychlou odpověď. A nešlo by to bez toho, aniž bych musel pro každou tabulku vytvářet nový soubor ? Moje představa:

mít soubor "tabulky.php" a v něm:

např.

$table1 = ( <table>něco</ta­ble>);
$table2 = ( <table>něco</ta­ble>);
$table3 = ( <table>něco</ta­ble>);

atd.

Ale ten zápis určitě není dobře. Dalo by se to nějak udělat ?

Děkuji

 
Nahoru Odpovědět
25.11.2016 10:18
Avatar
Marian Benčat:25.11.2016 10:48

Samozrejme ze slo :-) Ale chces is zaprasit zdrojak Logiky 200 radkama HTMLka?

Nahoru Odpovědět
25.11.2016 10:48
Totalitní admini..
Avatar
d4rkw34v3r
Tvůrce
Avatar
Odpovídá na Zdenek
d4rkw34v3r:25.11.2016 10:56

Jak píše Marian. Navíc, pokud si ty soubory s tabulkama budeš dávat do zvláštní složky, tak ten script budeš moci jednoduše automatizovat tak, že potom budeš moci jen přidávat/odebírat soubory s tabulkami aniž by jsi musel nějak zasahovat do souboru zaklad.php

 
Nahoru Odpovědět
25.11.2016 10:56
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:25.11.2016 11:01

Nevím, jestli to bude fungovat, ale za zkoušku to asi stojí.. Můžeš si v "table.php" udělat třídu tables a potom mít pole s tabulkama typu public. Pak už by sis jen z "zaklad.php" náhodně bral tabulku z pole..

Takže:

<?php
class Tabulky{
        public tables = array();

        tables[0] = ( <table>něco</table>);
        tables[1] = ( <table>něco</table>);
}
?>

A ve druhém phpčku

<?php
include "table.php";
$table = new Tabulky();

$pocetTabulek = 10;
$cisloTabulky= rand(0, $pocetTabulek);

echo $table->$tables[$cisloTabulky];
?>

Nebo ještě lépe, můžeš mít v té třídě funkci, která ti bude vracet tabulku, pak už jen z toho druhého phpčka budeš volat tu funkci s náhodným indexem.

 
Nahoru Odpovědět
25.11.2016 11:01
Avatar
Ilidanek33
Člen
Avatar
Ilidanek33:25.11.2016 11:07

Takže:
tabulky.php

<?php
class Tabulky{
        public $tables = array();

        $tables[0] = ( <table>něco</table>);
        $tables[1] = ( <table>něco</table>);

        public function GetTable($index){
                echo $this->table[$index];
        }
}
?>

A zaklad.php

<?php
include "tabulky.php";
$table = new Tabulky();

$pocetTabulek = 10;
$cisloTabulky= rand(0, $pocetTabulek);

echo $table->GetTable($cisloTabulky);
?>
 
Nahoru Odpovědět
25.11.2016 11:07
Avatar
Zdenek
Člen
Avatar
Zdenek:25.11.2016 13:21

Aha, takže bude lépe si udělat pro každou tabulku jeden php soubor. Vyzkouším a dám vědět.

@ Marian / d4rkw34v3r - díky za zajímavý postřech, vůbec mě nenapadlo, že mít HTML tabulky v jednom php souboru může být taková nevýhoda.

@ Ilidanek33 - diky za nabídnuté řešení

 
Nahoru Odpovědět
25.11.2016 13:21
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 8 zpráv z 8.