Autor Zpráva
berny123
Profil
Dobrý den,
Mám problém se souborem s kterým si už nevím rady..

Problém - vždy když dám přidat do rezervace, tak mi to napíše úspěch, ale není zvýrazněný, že je uložený a když se kouknu do mysql, tak tam není nic... Pokusil jsem se vyplnit ručně v mysql a už to bylo zvýrazněno na webu..

Tak problém je, že se mi data nezapisují do mysql..

Soubor:

<?
  include "config.php";
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Skrivy.net  - Rezervace</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="keywords" content="rezervace counter-strike serveru" />
    <meta name="description" content="Rezervace Counter-Strike 1.6 serveru" />
    <meta name="author" content="Rezervace" />
    <meta name="robots" content="index, follow" />
    <link  rel="stylesheet" href="layout/css.css" type="text/css" />
  </head>
  
  <body>
    <h1>Přidat rezervace</h1>
    
    <?
      if ( $_POST['submit'] )
      {
        for ( $i = 0 ; $i != $_POST['delka'] ; $i ++ )
          if ( ! mysql_query( "INSERT INTO rezervace SET heslo='" . $_POST['heslo'] . "', ip='" . $_SERVER['REMOTE_ADDR'] . "', datum='" . $_POST['datum'] . "', hodina='" . ( $_POST['hodina'] + $i ). "', typ='" . ( $i == 0 ? "start" : "running" )  . "'" ) )
            break;
            
        if ( $i != $_POST['delka'] )
          echo "<p class='error'>Nepovedlo se zarezervovat všech " . $_POST['delka'] . " hodin!</p>";
        else 
          echo "<p class='true'>Vaše rezervace proběhla úspěšně.</p>";
      }
    ?>
    
    <form method="post" action="">
      <span>Datum: </span> <input type="text" name="datum" value="<?= $_GET['datum']; ?>" readonly /><br />
      <span>Hodina: </span> <input type="text" name="hodina" value="<?= $_GET['hodina']; ?>" readonly /><br />
      <span>Na jak dlouho: </span> <input type="text" name="delka" size="1" /><br />
      
      <span>Heslo: </span> <input type="password" name="heslo" /><br />
      
      <input type="hidden" name="submit" value="1" />
      <input type="submit" value="odeslat" class="send" />
    </form>
  </body>
</html>

Informace o připojení mám v configu..

Moderátor Majkl578: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).
motik
Profil
berny123:
vkládej kód do <>!!!

a kolik tam chceš přidat řádků? jestli jsem to dobře pochopil, tak jeden >> proč máš ten dotaz v cyklu???
INSERT INTO kam (co, co, co) VALUES (neco, neco, neco)
berny123
Profil
5 řádku a sry stačilo mi, že mi to řekl jeden člověk ( jsem zvyklý na [code][/code] a tohohle jsem si nevšiml <>) a tohle jsem taky zkoušel, ale bez úspěchů (možná jsem to špatně vložil, ale fakt nevím čím to bude, ale nepsalo mi to žádnou chybu)..
panther
Profil
berny123:
nepsalo mi to žádnou chybu
máš chybu v SQL dotazu, vypiš si mysql_error().
DarkMeni
Profil
berny123:
"INSERT INTO rezervace SET heslo='" . $_POST['heslo'] . "'"...

S SQL si ještě moc nerozumim, možná to de i takle, ale nemá tam být místo SET, VALUES?
"INSERT INTO rezervace VALUES heslo='" . $_POST['heslo'] . "'"...
berny123
Profil
ok děkuji vyzkoušeno, ale napíše mi jen tohle: "0: 0:" (bez uvozovek)
berny123
Profil
Taky vyzkoušeno, díky, ale pořád stejná chyba..

Zkusím sem přiložit příkaz na tvoření tabulky (možná to někomu pomůže):

CREATE TABLE `rezervace` (
  `id` int(11) NOT NULL auto_increment,
  `rcon` varchar(255) collate utf8_czech_ci NOT NULL,
  `heslo` varchar(255) collate utf8_czech_ci NOT NULL,
  `ip` varchar(15) collate utf8_czech_ci NOT NULL,
  `datum` date NOT NULL,
  `hodina` int(11) NOT NULL,
  `typ` enum('start','running') collate utf8_czech_ci NOT NULL,
  PRIMARY KEY  (`id`),
  UNIQUE KEY `datum` (`datum`,`hodina`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci AUTO_INCREMENT=5 ;
motik
Profil
berny123:
`rcon` varchar(255) collate utf8_czech_ci NOT NULL,
v dotazu to nevidím..
berny123
Profil
rcon, tam nepotřebuji dávat,p protože si nemůžou vybírat rcon základní heslo..
Ugo
Profil *
Tady opravdu nechapu co tomu vadi, nevim jakou mas verzi mysql, ten zapis insertu se set neni tusim uplne kompatibilni a nedoporucuje se, ale fungovat by mel. (lepsi je INSERT INTO `x` (`id`,`a`) VALUES('1','bla')

jediny co muzu doporucit je:
- naucit se psat, ten kod je prasarna na prelamani prstu :)
- pro tabulku a sloupce pouzivej zpetny apostrofy `rezervace` , kdyz tam budes mit jednou nazev kterej bude rezervovany slovo, tak se z toho zblaznis proc to nejde
- osetruj data (mysql_real_escape_string tusim)
- zmen si podminku ve for, napriklad na $i<(int)$_POST['delka'] . takhle je to casovanej nekoncici cyklus
- pokud mozno nepouzivej radkovej zapis IF (kdyz ? tak : nebo), nevyhodnocuje se postupne, ale naraz a tudiz zdrzuje. v tomhle pripade je to fuk

Promin ze pisu takhe OT, ale tvar toho kodu me uplne boda do oci. Kde je chyba ... bohuzel tady chyba neni, jedine jestli ses spravne pripojenej k DB a jestli vyslednej sql dotaz je ok (me se zda ze fakt je) a jestli ti db bere tenhle typ zapisu. Trosku podebuguj treba tim mysql_error() , tim ze si nejprv das dotaz do stringu kterje si vypises atp. Docela bych byl rad kdybys pak napsal kde byla chyba at se muzu prastit do cela :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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

0