Jump to content


Photo

Multiplos Cadastros


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

#1 Perdida no Código

Perdida no Código

    Novato no fórum

  • Usuários
  • 12 posts
  • Sexo:Feminino
  • Localidade:São Paulo

Posted 12/03/2013, 14:49

Queridos amigos, depois de um bom tempo aqui estou novamente com mais um problema, só para variar né rsrsrs

Gostaria de saber se alguém poderia fazer a gentileza de me ajudar no seguinte, preciso de um site que gere 3 links automáticos à partir de um unico cadastro, por exemplo, o usuário coloca o nome no formulário e, ao clicar em "Cadastrar Links", sejam cadastrados 3 id's diferentes com o mesmo nome que o usuário colocou.

Criei um bd bem simples com apenas dois campos, id e usuario, já tenho um formulário que está fazendo o cadastro normalmente no bd.

O código do formulário é:

<form action="cadastro.php" method="post" name="form1" id="form1">
  <fieldset>
  <label>Nome:
  <input type="text" name="usuario" value="" size="32" />
  </label>
  <input type="submit" value="Cadastrar Links" />
  </fieldset>
</form>

O código da página cadastro.php é:

<?php require('config.php'); ?>
<?php
$usuario = $_POST['usuario'];
mysql_select_db($database_config, $config);
$query_links = "INSERT INTO teste.links(id ,usuario) VALUES (NULL , '$usuario');";
$links = mysql_query($query_links, $config) or die('ERRO AO CADASTRAR: '.mysql_error());
header ("Location: index.php");
?>

Existe alguma forma de fazer ao clicar em "Cadastrar Links", sejam cadastrados 3 id's diferentes com o mesmo nome que o usuário colocou?

Agradeço pela atenção de todos, qualquer ajuda será bem vinda...

Beijos

#2 Dudu

Dudu

    Viva la vida

  • Usuários
  • 1437 posts
  • Sexo:Masculino
  • Localidade:Uberlândia - MG
  • Interesses:PHP

Posted 01/05/2013, 04:23

Sim, há essa possibilidade.
Basta você colocar a Query dentro de um loop.
O script abaixo irá funcionar caso o campo id da tabela seja AUTO_INCREMENT. Se não for, altere sua tabela e faça o id se tornar AUTO_INCREMENT.
Veja:


<?php 
require('config.php'); 
mysql_select_db($database_config, $config);

$usuario = mysql_real_escape_string($_POST['usuario']);
$query_links = "INSERT INTO teste.links(usuario) VALUES ('$usuario');";
for($i = 1; $i <= 3; $i++) {
	$links = mysql_query($query_links, $config) or die('ERRO AO CADASTRAR: '.mysql_error());
}
header ("Location: index.php");
?>

Outra dica, sempre procure dar segurança aos seus sistemas, por mais simples que eles sejam!
Nunca insira nada em sua base de dados sem um tratamento anterior.
Procure sobre SQL Injection e entenderá o que estou dizendo.

Qualquer dúvida, poste.

Até mais.

Edição feita por: Dudu, 01/05/2013, 04:24.

Fórum WMO - Equipe de Desenvolvimento / Banco de Dados - Moderador


Twitter: HostCheap


#3 redstyle

redstyle

    Expert

  • Usuários
  • 540 posts
  • Sexo:Masculino

Posted 21/06/2013, 09:13

Você também pode fazer em uma única query. Usando seu código inicial como exemplo veja como ficaria:

<?php require('config.php'); ?>
<?php
$usuario = $_POST['usuario'];
mysql_select_db($database_config, $config);
$query_links = "INSERT INTO teste.links(id ,usuario) VALUES (NULL , '$usuario'), (NULL , '$usuario'), (NULL , '$usuario');";
$links = mysql_query($query_links, $config) or die('ERRO AO CADASTRAR: '.mysql_error());
header ("Location: index.php");
?>

Se quiser ver outras dicas em meu blog: http://aprendacriarsites.com

Conheça meu blog para Aprender Laravel (Framework PHP)





1 user(s) are reading this topic

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

IPB Skin By Virteq