Jump to content


Photo

Erro xxxxxx


  • Faça o login para participar
5 replies to this topic

#1 Rigoni

Rigoni

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 11/03/2007, 15:01

Pessoal, estou com um problema que não consigo resolver nem a pau hehehe, gostaria da ajuda de vcs.


Eu tenho as seguintes tabelas no meu BD:

CREATE TABLE sistemas (
id int NOT NULL auto_increment,
nome varchar(30) NOT NULL default 'Indefinido',
tipo varchar(25) NOT NULL default 'Indefinido',
historia text(65535) NOT NULL,
imagem blob(65535) NOT NULL,
fabricante varchar(255) NOT NULL default 'Indefinido',
esptec varchar(255) NOT NULL default 'Indefinido',
PRIMARY KEY (id)
) TYPE=InnoDB;

CREATE TABLE emuladores (
id int NOT NULL auto_increment,
id_sistemas int NOT NULL,
nome varchar(255) NOT NULL default 'Indefinido',
site text(65535) NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (id_sistemas) REFERENCES sistemas(id) ON DELETE CASCADE
) TYPE=InnoDB;



Pra incluir o emulador eu fiz o seguinte.

Populei uma combo com os sistemas:

<?php
$res = mysql_query("SELECT id, nome FROM sistemas");
while($registro = mysql_fetch_row($res))
{
$id_sist = $registro[0];
$nome_sist = $registro[1];
echo "<option value=\"$cod\">$nome_sist</option>\n";
}
?>


Fiz os outros 2 inputs pra pros outros campos e fiz a query:

$nome=$_POST["nome"];
$site=$_POST["site"];

$res = mysql_query("INSERT INTO emuladores (nome, site, id_sistemas)
VALUES ('$nome','$site',$id_sist)");

if(mysql_affected_rows()>0)
echo "<p align=\"center\">Emulador incluído com sucesso!</p>";
else {
$erro = mysql_error();
echo " <p align='center'>Erro:$erro</p>";
}




Os sistemas eu incluo beleza, mais quando eu vou incluir um emulador ele da o seguinte erro:

Erro: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 2


Não sei mais o que fazer, já tentei de tudo. O que pode ser isso?



Valew!!!

#2 silici0

silici0

    ?

  • Usuários
  • 902 posts
  • Sexo:Masculino
  • Localidade:São Paulo - SP
  • Interesses:PHP, MySQL, XHTML, CSS, AJAX, JavaScript, Objective-C, Python, Games ... #geek

Posted 11/03/2007, 18:09

da um echo na Query, copia e cola e tenta rodar a query num phpmyadmin para testar...

Abraços
Procurando freelancer
***********************************************
Bachelor of Technology in Technology of Information, with great knowledge in Windows operating systems and Unix-Like (BSD, Ubuntu and Slackware), languages (PHP, JavaScript and MySQL), semantic (DHTML, Tableless, Ajax, MVC, OO) and analysis (manages projects based on PMI).
Developer in PHP, JAVA, Python, Objective-c MySQL, DHTML, CSS, JAVASCRIPT, JQUERY, JSON, SMARTY, MDB2, DOCTRINE, CAKEPHP. Linux desktop for work and MacOS. E-commerces, CRM and bussiness strategys
Love-me and be FREE use UniCes-Like .

#3 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 11/03/2007, 18:13

Bem seu servidor tem "register_globals = On"???, pois o que parece é que não ... dai na segunda SQL ela não esta recebendo o valor do "select", dai a SQL fica totalmente vazia já que vc não delimito o espaço do "$id_sist" com as aspas simples - ' - para ele preencher com um valor vazio caso não exista valor, por isso o erro ...

Mude assim ...
$res = mysql_query("INSERT INTO emuladores (nome, site, id_sistemas) 
VALUES ('$nome','$site','" . $_POST["id_sist"] . "')");

Edição feita por: sk15, 11/03/2007, 18:13.


#4 Rigoni

Rigoni

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 11/03/2007, 18:45

Silici0, Não entendí, como assim dar um echo na Query?

sk15, eu fiz o que vc disse e deu esse erro:

Erro:Cannot add or update a child row: a foreign key constraint fails (`gsk/emuladores`, CONSTRAINT `emuladores_ibfk_1` FOREIGN KEY (`id_sistemas`) REFERENCES `sistemas` (`id`) ON DELETE CASCADE)


Edição feita por: Rigoni, 11/03/2007, 18:59.


#5 sk15

sk15

    Super Veterano

  • Usuários
  • 2071 posts
  • Sexo:Masculino
  • Localidade:SP - SP

Posted 11/03/2007, 18:54

Onde eu disse "echo" ???
Em nenhum momento eu disse absolutamente NADA de echo ...

Eu disse que possivelmente seu servidor está com "register_globals = Off" dai quando vc tenta pegar a variavel "$id_sist" do "select" ela vem vazia e como vc não delimito o lugar onde a "$id_sist" fica por - '' - aspas simples, quando vc envia ela vem ilegivel e da erro tipo assim, eu titerei o "$id_sist" simulando que ela vem vazia ....

INSERT INTO emuladores (nome, site, id_sistemas)  VALUES ('$nome','$site', )");

Tipo troque a parte de seu código pela a que indiquei e teste ...

Não entendí, como assim dar um echo na Query?



#6 Rigoni

Rigoni

    Novato no fórum

  • Usuários
  • 18 posts
  • Sexo:Não informado

Posted 11/03/2007, 19:02

Heheheh, é que eu estava no tópico e não tinha visto seu post ainda cara, eu tava respondendo o Silici0, dei uma editada lá pra dar pra entender melhor hehehe...


Olha no post editado lá o erro que deu quando eu troquei.


Valeu e desculpa o mal entendido :D




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq