Autor Zpráva
panmagor
Profil *
Tento script mi neukládá do db. Prostě se vše provede, ukáže se Váš vzkaz byl uložen... bla bla... Ale pak když se kouknu do DB, je prázdná.. Kam bych se měl podívat na chybu?:
  $nadpis = $_GET['nadpis'];
  $text = $_GET['text'];
  $zverejnit = $_GET['zverejnit'];
  $id = $_GET['id'];
  
$prikaz = mysql_query("INSERT INTO denicky_zaznamy (denicek_nadpis,denicek_text, user_id) VALUES ($nadpis,$text,$id)");
echo "Váš vzkaz byl uložen!<a href='javascript:history.back();'>Zpět</a>, nebo na <a href='./index.php'> index</a>";



A tady je ta DB:
CREATE TABLE users (
  user_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  uzivatel TEXT NULL,
  heslo TEXT NULL,
  PRIMARY KEY(user_id)
)
TYPE=InnoDB;

CREATE TABLE denicky (
  denicky_id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  user_id INTEGER UNSIGNED NOT NULL,
  denicek_nazev TEXT NULL,
  PRIMARY KEY(denicky_id, user_id),
  FOREIGN KEY(user_id)
    REFERENCES users(user_id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
)
TYPE=InnoDB;

CREATE TABLE denicky_zaznamy (
  iddenicky_zaznamy INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
  denicky_id INTEGER UNSIGNED NOT NULL,
  user_id INTEGER UNSIGNED NOT NULL,
  denicek_nadpis TEXT NULL,
  denicek_text TEXT NULL,
  datum DATE NULL,
  PRIMARY KEY(iddenicky_zaznamy, denicky_id, user_id),
  INDEX denicky_zaznamy_FKIndex2(denicky_id, user_id),
  FOREIGN KEY(user_id)
    REFERENCES users(user_id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION,
  FOREIGN KEY(denicky_id, user_id)
    REFERENCES denicky(denicky_id, user_id)
      ON DELETE NO ACTION
      ON UPDATE NO ACTION
)
TYPE=InnoDB;
YoSarin
Profil
Jasně že to vypíše že byl uloženej v pohodě...
místo toho echo "bla bla..." tam dej:
if (mysql_error()) {
  echo "průůůšvih " . mysql_error();
} else {
  echo "Uloženo";
}
panmagor
Profil *
průůůšvih You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ')' at line 1
Kajman_
Profil *
Řetězce se uzavíraji do aspostrofů.
panmagor
Profil *
Řetězce se uzavíraji do aspostrofů.

Co to?
panmagor
Profil *
jooo. už mi to došlo.. Tak tu máme změnu:
Cannot add or update a child row: a foreign key constraint fails (`newdatabase/denicky_zaznamy`, CONSTRAINT `denicky_zaznamy_ibfk_2` FOREIGN KEY (`denicky_id`, `user_id`) REFERENCES `denicky` (`denicky_id`, `user_id`) ON DELETE NO ACTION ON UPDATE NO ACTION)
Kajman_
Profil *
Nevkládáte id deníčku. Takže neexistuje deníček, ke kterému ten záznam má být přiřazen.

btw: Myslím, že máte docela výstižnou přezdívku.
panmagor
Profil *
Tak deníček existuje :-( Mám v tabulce "denicky" záznam s denicky_id 1, user_id 1 a denicek_nazev název..
panmagor
Profil *
Tak už to frčí, ale uloží to 0 v tabulce "denicek_zaznamy" denicek_id a user_id....
panmagor
Profil *
Přišel jsem na jednu věc.. Ono to nefunguje.. Funguje to jenom, když dám místo "InnoDB" nastavení na "MyISAM" ale MyISAM nepodporuje cizí klíče, tak proto to nešlo.. Tak co s tím dál?
Kajman_
Profil *
Neumíte číst? Nevkládáte id deníčku.
panmagor
Profil *
Jak to, že ne... To sem z toho magor..

  $nadpis = $_GET['nadpis'];
  $text = $_GET['text'];
  $zverejnit = $_GET['zverejnit'];
  $id = $_GET['id'];

  
$prikaz = mysql_query("INSERT INTO denicky_zaznamy (denicek_id,user_id,denicek_nadpis,denicek_text) VALUES ('$id','$user_id','$nadpis','$text')");
if (mysql_error()) {
  echo "průůůšvih &nbsp;" . mysql_error();
} else {
  echo "Uloženo";
}
TSD
Profil
není problém v klasickém míchání uvozovek a apostrofů?

$prikaz = mysql_query("INSERT INTO denicky_zaznamy (denicek_id,user_id,denicek_nadpis,denicek_text) VALUES (".$id.",".$user_id.",'".$nadpis."','".$text."')");
Kajman_
Profil *
TSD
Tam problém nebude. Problém bude v tom, že neumí správně opsat jméno slouečku, kde má id deníčku a přibyl mu i problém s nedefinovanou proměnnou $user_id.
panmagor
Profil *
Ufff. Asi to nechám na zítra, protože tam nic nevidím.. A to s $user_id není problém. Akorát jsem ten script navrchu omylem trochu ošmikl..
lordfrikk
Profil
lOl :)
panmagor
Profil *
To tedy ano. LOL... Tak popojedem?? Co s tím tedy? Dnes opravdu není můj den :-)
YoSarin
Profil
panmagor
hůůů-ůů - psal to už Kajman_, tak si to přečti...
ale ve zkratce - podle těch CREATE TABLE nahoře se žádný sloupeček denicek_id v tabulce denicky_zaznamy nenachází - místo toho je tam sloupeček denicky_id. Když zakládáš tabulky, drž se jedné konvence a nemíchej dohromady víc různých prefixů (denicky_*, denicek_*, ... etc.), pak vznikají takovéhle problémy.
peta
Profil
idealne nazvat to jednotne

"denicek_users"
"denicek_data"

a pak to cele nacist ze souboru a nahradit "denicek_" za jiny prefix definovany uzivatelem pri instalaci :)

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: