Kdepak mam chybu?

11 příspěvků

Archiv diskusního fóra

Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.

  1. Mam udelanej formularek pres ktery si davam do DB nejakej zaznami a jak to poslu tak mi to porad nejak nejde a pise mo to tu mou hlasku Chyba při práci s databází. Muze mi nekdo poradit co delam spatne ? Je to snad spatne napsane? require 'dbconnect.php'; $test1 = trim($jmeno); $test2 = trim($vzkaz); if($test1 != "" && $test2 != "") { $tabulka = "hry_sportovni"; $datum = Date("Y-m-d H:i:s"); // datum pridani zaznamu $vzkaz = addslashes($vzkaz); $vzkaz = strip_tags($vzkaz); $vzkaz = nl2br($vzkaz); $adresa_ip = $REMOTE_ADDR; $jmeno_pocitace = gethostbyaddr($REMOTE_ADDR); // doplneni 'http://' pokud ho uzivatel nenapsal if($www!="" && !EReg("http://(.*)", $www)) $www = "http://".$www; // pripojeni k databazi $conn = db_connect(); if (!$conn) die("Nepodařilo se připojit k databázi."); // vlozeni zaznamu do databaze $vysledek = mysql_query("INSERT INTO $tabulka VALUES ('$nove', '$datum', '$thumb', '$jmeno', '$www', '$sirka', '$vyska', '$vzkaz', '$adresa_IP', '$jmeno_pocitace')"); if(!$vysledek) die("Chyba při práci s databází."); }
  2. Mozna, ze by bylo lepsi misto prikazu require pouziti prikaz include. Nevim jestli se pri require nacitany zdrojak primo zacleni do scriptu a nebo jestli se jen externe provede. Tim to ale asi nebude, tak sem kdyztak hod strukturu pouzivane tabulky
  3. Ad Sicco: Tím to rozhodně není a naopak používej require, neboť kontroluje vícenásobné vložení a místo warningu při absenci souboru ohlásí chybu. Ad chyba: Chtělo by to znátn strukturu tabulky. Možná to tam vkládáš ve špatném pořadí (lepší je udávat za názvem tabulky i jména sloupců), nebo máš špatně definovaný PRIMARY KEY apod. Hoď sem tu strukturu tabulky.
  4. Tak jo tak se mrknete tady to mete :) CREATE TABLE `hry_sportovni` ( `id` int(11) NOT NULL auto_increment, `nove` varchar(250) default NULL, `datum` datetime NOT NULL default '0000-00-00 00:00:00', `thumb` varchar(250) default NULL, `popisek` text, `www` text, `sirka` char(3) default NULL, `vyska` char(3) default NULL, `vzkaz` text, `adresa_IP` varchar(15) default NULL, `jmeno_pocitace` varchar(50) default NULL, PRIMARY KEY (`id`) ) TYPE=MyISAM AUTO_INCREMENT=7 ;
  5. ad Andrew: Mezi require a include je hodne velky rozdil! Require zadany soubor pouze provede, ale nezacleni ho do provadeneho skriptu. ad Kapitan Nemo: Momentalne me nic jineho nenapada....
  6. Já bych řekl, že chyba bude asi zde: db_connect(); Máš tuto funkci vůbec nadefinovanou? :-) Normálně je to takto: $spojeni = @MySQL_Connect($db_server, $db_user, $db_password) or Die("chyba"); $db = @MySQL_Select_DB($db_name, $spojeni) or Die("chyba"); Takto to mám já: function DB_Connect() { global $spojeni, $db_server, $db_name, $db_user, $db_password; if (!IsSet($db_server) || !IsSet($db_name) || !IsSet($db_user) || !IsSet($db_password)) Error(300); $spojeni = @MySQL_Connect($db_server, $db_user, $db_password) or Error(301); $db = @MySQL_Select_DB($db_name, $spojeni) or Error(301); }
  7. Pavel -> kdyby to nezvladlo pripojeni, tak se to k hlasce "Chyba pri praci s databazi ani nedostalo" :-) Podle me nemuzes do 11 sloupcu cpat 10 hodnot, aniz bys definoval, do jakych sloupcu to davas - jasne, ze ID je prim. klic, co se inkrementuje sam, ale MySQL to jakoby nevi, jenom porovna pocet sloupcu a ten nesouhlasi. Takze delej insert into(sloupce) values(hodnoty)... a mas pokoj.
  8. Dle mého názoru by se to k té hlášce za jistých okolností dostat mohlo ;-) Ale máš pravdu, že problém je tentokrát v tom INSERTu.
  9. Tak jo mely ste pravdu pocet sloupcu nesedel a pritom jsem to pred tim pocital :)) a pak sem to jeste napsal tak jak radil Scully insert into(sloupce) values(hodnoty)... a ono to je fakt lepsi takze diky moc vsem :)
  10. ad Sicco: to spis delas srandu ne? tak na co tam potom require je?! rozdil mezi require a include je prave v ohlaseni chyby a to tak ze include ti akorat ukaze warning ale script probehne dal bez preruseni takze to musis mit upraveny v tom includovacim souboru a require ti ohlasi fatal error a ukonci to provadeni scriptu pochopitelne musi se v tom vyskytovat nejaka chyba jinak aby ti to provedlo jenom script a nezaclenilo tak musis volat ten script stylem http://xxx pak se provadi prvne tam kde je a pak se posila k tobe
  11. Tak jsem měl pravdu se vším ;-) Psal jsem, že by měl u INSERTU uvádět jména sloupců a bylo to tím. A co se týče require, měl jsem taktéž pravdu a pro podrobnosti doporučuji manuál, kde je použití a rozdíl podrobně vysvětlen, navzdory Siccova tvrzení, že nemám pravdu.

← Zpět na všechna témata