Ostatní témata (Off Topic témata) : phpRS Fórum
Máte problém s konfigurací počítače? Hledáte nejlepší webhosting pro vaši aplikaci? Nevíte si rady s nějakým zajímavým programátorským oříškem? Týká se dotaz fóra? ... Pokud ano, tak je toto diskuzní fórum určeno právě vám.
phpRS - redakční a informační systém
Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-09-28, 14:37

Potřeboval by jsem vytvořit dočasnou tabulku (temporary table), ale nikde jsem nenašel jak to začlením do PHP kódu. Nemohl by mi někdo poslat příklad?

Re: Temporary table
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2005-09-28, 18:11

IMHO třeba takhle: (ale netestoval jsem to):
$test=MySQL_Query("CREATE TEMPORARY TABLE ".$GLOBALS["rspredpona"]."nazev_tabulky ( nazev_sloupce1 datovy_typ1, .... ....., .... .... a tak dále ) TYPE=MyISAM ",$GLOBALS["dbspojeni"]);

Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-09-28, 18:40

Tohle jsem už zkoušel, ale jakmile chci načíst data, tak mi nahlásí chybu s neplatností příkazu mysql.

Mám to napsaný takhle:

$test=MySQL_Query("CREATE TEMPORARY TABLE tabulka_tymu (body int(5)) TYPE=MyISAM ",$GLOBALS["dbspojeni"]);

$dotaz_test=mysql_query("select * from tabulka_tymu",$GLOBALS["dbspojeni"]);
$pole_data_test=mysql_fetch_assoc($test);

Re: Temporary table
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2005-09-28, 19:45

ak chces vytahovat data z datbaze, nemalo by byt v zatvorke pri mysql_fetch_assoc ($dotaz) ?

____________________
smiko.host.sk/phprs/

Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-09-28, 19:55

Ano, omlouvám se, přehlédl jsem to. Když jsem to celé dodělal, tak mi stejně jako před tím vypíše chybu:

Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /u2/www/ibundesliga_cz/data/www/bl_tabulka1.php on line 78

Re: Temporary table
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2005-09-28, 23:41

co tohle:?
...From MySQL 4.0.2 one must have the CREATE TEMPORARY TABLES privilege to be able to create temporary tables ...

vytvoří to tu tabulku doopravdy?
(nevadí, že v ní nejsou žádná data? nevím ale asi ne, jen se snažím přijít na všechny možnosti..)
zkus si zobrazit, co máš v té proměnné $test ...

Re: Temporary table
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2005-09-29, 00:18

jinak následující kod u mě funguje (zobrazí ve stránce desítku):

$bod=10;
$test=MySQL_Query("CREATE TEMPORARY TABLE ".$GLOBALS["rspredpona"]."tabulka_temp (id int(5), body int(5));",$GLOBALS["dbspojeni"]);
$test2=MySQL_Query("INSERT INTO ".$GLOBALS["rspredpona"]."tabulka_temp values(null,'".$bod."');",$GLOBALS["dbspojeni"]);
if($test):
$dotaz_test=mysql_query("select * from ".$GLOBALS["rspredpona"]."tabulka_temp",$GLOBALS["dbspojeni"]);
$pole_data_test=mysql_fetch_array($dotaz_test);
echo $pole_data_test["body"];
endif;


Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-09-29, 06:43

Mě to pořád nejede, podívj se kde mám chybu:

<?

define('IN_CODE',true); // inic. ochranne konstanty

include_once("config.php");
include_once("specfce.php");
include_once("myweb.php");
include_once("sl.php");
include_once("trlayout.php");
include_once($adrlayoutu);

function Tabulka()
{
$barva="eeeeee";
echo "<table width=\"425\" border=\"0\" align=\"center\" cellPadding=\"3\" cellSpacing=\"1\">
<tr>
<td width=\"422\" height=\"16\" valign=\"top\" align=\"left\" class=\"z12\"><img src=\"../image/freestyle/sipky.gif\" alt=\"\">&nbsp;Tabulka</td>
</tr>
<tr>
<td height=\"7\" colspan=\"3\" valign=\"top\"><img src=\"../image/freestyle/cara.gif\" width=\"100%\" height=\"1\" alt=\"\"></td>
</tr>
<tr>
<td height=\"10\" colspan=\"3\" valign=\"top\"></td>
</tr>
</table>

<table width=\"425\" border=\"0\" align=\"center\" cellPadding=\"0\" cellSpacing=\"0\">
<tr align=\"left\">
<td height=\"5\" width=\"5\" valign=\"top\" bgcolor=\"#d9d9d9\"><img src=\"image/roh_horni_leva.gif\" width=\"5\" height=\"5\" alt=\"\"></td>
<td height=\"5\" width=\"415\" valign=\"top\" bgcolor=\"#d9d9d9\"></td>
<td height=\"5\" width=\"5\" valign=\"top\" bgcolor=\"#d9d9d9\"><img src=\"image/roh_horni_prava.gif\" width=\"5\" height=\"5\" alt=\"\"></td>
</tr>
</table>
<table width=\"425\" border=\"0\" align=\"center\" cellPadding=\"0\" cellSpacing=\"0\">
<tr>
<td width=\"25\" height=\"18\" valign=\"middle\" bgcolor=\"#EEEEEE\" class=\"novtit\">&nbsp;po.</td>
<td width=\"150\" valign=\"middle\" bgcolor=\"#EEEEEE\" class=\"novtit\">t&yacute;m</td>
<td width=\"30\" align=\"center\" valign=\"middle\" bgcolor=\"#EEEEEE\" class=\"novtit\">z&aacute;p.</td>
<td width=\"22\" valign=\"middle\" bgcolor=\"#EEEEEE\" class=\"novtit\"><div align=\"center\">v</div></td>
<td width=\"22\" valign=\"middle\" bgcolor=\"#EEEEEE\" class=\"novtit\" ><div align=\"center\"> r</div></td>
<td width=\"22\" valign=\"middle\" bgcolor=\"#EEEEEE\"class=\"novtit\" ><div align=\"center\">p</div></td>
<td width=\"50\" valign=\"middle\" bgcolor=\"#EEEEEE\"class=\"novtit\" ><div align=\"center\">&nbsp;sk&oacute;re</div></td>
<td width=\"35\" align=\"center\" valign=\"middle\" bgcolor=\"#eeeeee\" class=\"novtit\" >+/-</td>
<td width=\"30\" valign=\"middle\" bgcolor=\"#EEEEEE\"><div align=\"center\"class=\"novtit\" >body</div></td>
</tr>";

$dotaz=mysql_query("select id, nazev from bl_tymy order by id asc",$GLOBALS["dbspojeni"]);
$pocet=mysql_num_rows($dotaz);

//$test=MySQL_Query("CREATE TEMPORARY TABLE tabulka_tymu (body int(5)) TYPE=MyISAM ",$GLOBALS["dbspojeni"]);
$test=MySQL_Query("CREATE TEMPORARY TABLE ".$GLOBALS["rspredpona"]."tabulka_temp (id int(5), body int(5));",$GLOBALS["dbspojeni"]);

for ($pom=0;$pom<$pocet;$pom++):

$GLOBALS["zapasy"]=0;
$GLOBALS["vyhry"]=0;
$GLOBALS["remizy"]=0;
$GLOBALS["prohry"]=0;
$GLOBALS["vstrelene"]=0;
$GLOBALS["obdrzene"]=0;
$GLOBALS["rozdil"]=0;
$GLOBALS["body"]=0;

$pole_data=mysql_fetch_assoc($dotaz);
$GLOBALS["id_tymu"]=$pole_data["id"];
$GLOBALS["nazev_tymu"]=$pole_data["nazev"];
Zobraz();

$dotaz_test=mysql_query("select * from ".$GLOBALS["rspredpona"]."tabulka_temp",$GLOBALS["dbspojeni"]);
$pole_data_test=mysql_fetch_array($dotaz_test);

//$dotaz_test=mysql_query("select * from tabulka_tymu",$GLOBALS["dbspojeni"]);
//$pole_data_test=mysql_fetch_assoc($dotaz_test);

$GLOBALS["rozdil"]=$GLOBALS["vstrelene"]-$GLOBALS["obdrzene"];
If ($barva=="eeeeee"):
$barva="e1e1e1";
else:
$barva="eeeeee";
endif;
echo "<tr>
<td height=\"18\" valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\">&nbsp;0.</td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><a href=\"tymy.php?akce=informace&amp;id=".$pole_data["id"]."\">".$pole_data["nazev"]."</a></td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><div align=\"center\">".$row["zapasy"]."</div></td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><div align=\"center\">".$row["vyhry"]."</div></td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><div align=\"center\">".$pole_data_tabulka["remizy"]."</div></td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><div align=\"center\">".$pole_data_tabulka["prohry"]."</div></td>
<td valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\"><div align=\"center\">".$pole_data_tabulka["vstrelene"].":".$GLOBALS["obdrzene"]."</div></td>
<td align=\"center\" valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\">".$GLOBALS["rozdil"]."</td>
<td align=\"center\" valign=\"middle\" bgcolor=\"#".$barva."\" class=\"aliastext\">".$pole_data_test["body"]."</td>
</tr>";
endfor;

echo "
</table>
<table width=\"425\" border=\"0\" align=\"center\" cellPadding=\"0\" cellSpacing=\"0\">
<tr align=\"left\">
<td height=\"5\" width=\"5\" valign=\"top\" bgcolor=\"#d9d9d9\"><img src=\"image/roh_dolni_leva.gif\" width=\"5\" height=\"5\" alt=\"\"></td>
<td height=\"5\" width=\"415\" valign=\"top\" bgcolor=\"#d9d9d9\"></td>
<td height=\"5\" width=\"5\" valign=\"top\" bgcolor=\"#d9d9d9\"><img src=\"image/roh_dolni_prava.gif\" width=\"5\" height=\"5\" alt=\"\"></td>
</tr>
</table>";
}

function Zobraz()
{
$dotaz_zapasy=mysql_query("select id_domaci, id_hoste, skore1, skore2, datum, cas from bl_zapasy",$GLOBALS["dbspojeni"]);
$pocet_zapasy=mysql_num_rows($dotaz_zapasy);

for ($pom=0;$pom<$pocet_zapasy;$pom++):
$pole_data_zapasy=mysql_fetch_assoc($dotaz_zapasy);

If ($pole_data_zapasy["skore1"]>$pole_data_zapasy["skore2"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_domaci"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["vyhry"]=$GLOBALS["vyhry"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore1"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore2"];
$GLOBALS["body"]=$GLOBALS["body"]+3;
elseif ($pole_data_zapasy["skore2"]>$pole_data_zapasy["skore1"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_hoste"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["vyhry"]=$GLOBALS["vyhry"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore2"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore1"];
$GLOBALS["body"]=$GLOBALS["body"]+3;
elseif ($pole_data_zapasy["skore1"]==$pole_data_zapasy["skore2"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_domaci"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["remizy"]=$GLOBALS["remizy"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore1"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore2"];
$GLOBALS["body"]=$GLOBALS["body"]+1;
elseif ($pole_data_zapasy["skore1"]==$pole_data_zapasy["skore2"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_hoste"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["remizy"]=$GLOBALS["remizy"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore2"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore1"];
$GLOBALS["body"]=$GLOBALS["body"]+1;
elseif ($pole_data_zapasy["skore1"]<$pole_data_zapasy["skore2"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_domaci"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["prohry"]=$GLOBALS["prohry"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore1"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore2"];
elseif ($pole_data_zapasy["skore2"]<$pole_data_zapasy["skore1"] and $GLOBALS["id_tymu"]==$pole_data_zapasy["id_hoste"]):
$GLOBALS["zapasy"]=$GLOBALS["zapasy"]+1;
$GLOBALS["prohry"]=$GLOBALS["prohry"]+1;
$GLOBALS["vstrelene"]=$GLOBALS["vstrelene"]+$pole_data_zapasy["skore2"];
$GLOBALS["obdrzene"]=$GLOBALS["obdrzene"]+$pole_data_zapasy["skore1"];
endif;
endfor;
//$test=MySQL_Query("INSERT INTO tabulka_tymu(body) VALUES('5') TYPE=MyISAM ",$GLOBALS["dbspojeni"]);
$test2=MySQL_Query("INSERT INTO ".$GLOBALS["rspredpona"]."tabulka_temp values(null,'".$GLOBALS["body"]."');",$GLOBALS["dbspojeni"]);
}
// tvorba stranky
$vzhledwebu->Generuj();
ObrTabulka(); // Vlozeni layout prvku

Tabulka();

KonecObrTabulka(); // Vlozeni layout prvku
$vzhledwebu->Generuj();
?>

Re: Temporary table
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2005-09-30, 13:40

hmm, nikdy som s temporary table nepracoval.
skus si zistit ci sa tabulka naozaj vytvorila.

OT:
juuj a trosku prehladnosti by nezaskodilo. zacni pouzivat novy styl zapisu, kedy zrusis dvojbodky a vsetko budes vypisovat do zlozenych zatvoriek. cize, if: endif a podobne uplne zlikviduj a nahrad to stylom if {}

____________________
smiko.host.sk/phprs/

Re: Temporary table
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2005-09-30, 21:29

v tomhle se nevyznám, ale zkus si za tu tvoji tabulku dosadit ten kod, co jsem Ti poslal, ten určitě funguje (zkus si to, měl by ti vypsat číslici 10. Pokud se ti tam ta číslice objeví, tak to funguje, a potom to uprav podle té tvé tabulky. Tu část, která testuje zobrazení :
$bod=10;
$test=MySQL_Query("CREATE TEMPORARY TABLE ".$GLOBALS["rspredpona"]."tabulka_temp (id int(5), body int(5));",$GLOBALS["dbspojeni"]);

$test2=MySQL_Query("INSERT INTO ".$GLOBALS["rspredpona"]."tabulka_temp values(null,'".$bod."');",$GLOBALS["dbspojeni"]); 
if($test):
   $dotaz_test=mysql_query("select * from ".$GLOBALS["rspredpona"]."tabulka_temp",$GLOBALS["dbspojeni"]);
  $pole_data_test=mysql_fetch_array($dotaz_test);
  echo $pole_data_test["body"];
endif;

tam ponech (jen uprav podle Tvé tabulky, dokud se ti bude zobrazovat ta vložená hodnota, tak je to důkazem, že se tabulka vytváří.
no a až bude fungovat zbytek, tak jí smaž.

taky mi dlouho trvalo, nežli se ta zat... tabulka vytvořila. :-)



Celkem upraveno 2×. Poslední úprava Kryšpín v 30.09.2005 21:32.

Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-10-01, 07:05

Když si to vyzkouším u sebe, tak mi to běhá, ale jakmile to hodím na net do phprs, tak už tabulku nevytvoří

Re: Temporary table
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2005-10-01, 09:08

tak potom uz mas chybu. bud to sql databaza nedokaze, alebo to je zakazane. skus kontaktovat poskytovatela

____________________
smiko.host.sk/phprs/

Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-10-01, 09:33

Někdo už mi říkal, že by to mohlo být zakázané. Takže to může povilit jenom poskytoval hostingu? Není to někde v nastavení třeba phprs?

Re: Temporary table
Zaslán uživatelem/kou: smiko (IP adresa zaznamenána)
Datum: 2005-10-01, 09:36

jedine poskytovatel. kontaktuj ho, mozno ti povoli pouzivat docasne tabulky.

____________________
smiko.host.sk/phprs/

Re: Temporary table
Zaslán uživatelem/kou: Kryšpín (IP adresa zaznamenána)
Datum: 2005-10-01, 18:04

Výše jsem Ti už dříve vypsal úryvek z dokumentace:
-------------------------------------------------------
> ..From MySQL 4.0.2 one must have the CREATE TEMPORARY TABLES privilege to be able to create temporary tables
>
Tohle je z originální dokumentace na webu mysql.com, takže to skutečně lze zakázat. A povolit to může nejspíše skutečně jenom poskytovatel...





Celkem upraveno 1×. Poslední úprava Kryšpín v 01.10.2005 18:05.

Re: Temporary table
Zaslán uživatelem/kou: pa3k (IP adresa zaznamenána)
Datum: 2005-10-01, 18:10

Ak nemá práva CREATE TEMPORARY TABLES určite bude mať CREATE a DROP ;)
Nedá sa vyriešiť ten problém bez temp tabuľky? Nedá sa použiť ako pomocná tabuľka nejaká klasická tabuľka?

Re: Temporary table
Zaslán uživatelem/kou: MatyCZ (IP adresa zaznamenána)
Datum: 2005-10-01, 19:13

Musel jsem to vyřešit tak, že si spočte tabulku týmů, nahrajejí do databáze kde je vytvořená prázdná bez údajů a až pak z toho si to tahá



Lituji, ale pouze registrovaní uživatelé mohou zasílat příspěvky do této sekce.
This forum powered by Phorum and designed by STaNBoSS.