Ir para conteúdo
Fórum Script Brasil
  • 0

Erro ao cadastrar array no MySQL


glauciarezende

Pergunta

Olá!

Rodei o fórum mas não achei a resposta... VOU AFOGAR! Help!

Sou novata em PHP... preciso muito da ajuda de vocês!

Tipo, não estou conseguindo que os campos do email_to[] (no mysql) mostrem os e-mails cadastrados.... ai ai... aparece assim "Array" ... o teu código funcionou lindão no lado cliente mas no monstrengo do MySQL não consigo fazer ele mostrar os e-mails que foram cadastrados...captou?

Abaixo o código...eu imagino que o erro deve estar na conexão do php com o mysql... a orelhuda aqui deve ter colocado algo errado no comando mysql...ai ai...

Mamíferos..hehe... se vocês puderem me responder essa dúvida cruel eu ficarei muito agradecida...hehe... aguardo.

;)

pedaço do código:

<form onsubmit="return verify_form(this)" name="form_invite" action="?status=result" method="post">
<?    
function email($email){
if (ereg ("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
return true;
}else{
    return false;
}
}

if(isset($_GET["status"])) { $status = $_GET["status"]; } else { $status = '';}

if($status=='result') {

echo '<div class="all_screen"><p align="left">';

$name_from = $_POST['name_from'];
$email_from = $_POST['email_from'];
$name_to = $_POST['name_to'];
$email_to = $_POST['email_to'];
$msg = nl2br(strip_tags($_POST['msg']));

$n_friends = count($name_to);
$error = 0;


if ( empty($name_from) ) { echo " - Por favor, coloque seu nome completo<br />"; $error ++; }
if ( empty($email_from) ) { echo " - Por favor, coloque seu e-mail completo<br />"; $error ++; }
if ( !email($email_from)) { echo " - Por favor, verefique seu e-mail.<br />"; $error ++; }
if ( ($n_friends == 1) and (empty($email_to[0])) ) { echo " - Por favor, coloque o e-mail completo dos seus amigos...<br />"; $error ++;}
if ( $error != 0 ) { echo ' - <a href="java script:history.go(-1)">Voltar</a>'; } else {

echo 'Obrigado '.$name_from.' por convidar seus amigos a visitar o Portal Cão.<BR /><BR />';

$subject = 'Conheça o Portal Cão!';
$from = ''.$name_from.'< '.$email_from.' >';

for($i=0;$i<$n_friends;$i++){ $x = $i + 1;
if ((empty($name_to[$i])) or (empty($email_to[$i]))) {$this_mail = 'Don\'t send'; $this_status = 0; } else { $this_mail = 'Sua mensagem foi encaminhada, obrigado!'; $this_status = 1;}
if (!email($email_to[$i])) {$this_mail = 'Houve um erro...por favor, confira os dados digitados...obrigado!'; }
echo "$x - $name_to[$i] - $this_mail <br>";

if ($this_status ==  0 ) { } else {
$email = $email_to[$i];
$msg_email = "Olá, $name_to[$i], $name_from para visitar este Portal: <BR /><BR /> $msg <BR /><BR />";

@mail ($email, $subject, $msg_email, "From: $from\nContent-type:text/html;charset=ISO-8859-1;MULTIPART/related");
}
} // close for

} // close else send email
echo '</p></div>';
}  // close if status==result


$conexao = mysql_connect("","","");  // beleza aqui eu configurei no ftp... :P 
   mysql_select_db("", $conexao);

[color=#FF0000][color=#FF8C00]   $inserir = mysql_query("INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES ('$name_from', '$email_from', '$name_to', '$email_to', '$msg')");[/color][/color]

   mysql_close($conexao);
?>



<div id="amigos">
<label for="nome" class="seu_nome_label">Seu Nome</label>
<input class="seu_nome" name="name_from" type="text" value="" size="38" maxlength="100" />

<label for="email" class="seu_email_label">Seu E-mail</label>
<input class="seu_email" name="email_from" type="text" value="" size="38" maxlength="100" />

<label for="mensagem" class="escreva_label">Escreva a Mensagem.</label>
<textarea name="msg" class="escreva"></textarea>

<p class="adicione_amigos">Coloque o nome e e-mail dos seus amigos...clique no "+" para adicioná-los.</p>

<div class="expande">
<table><tr><td>
<label for="amigo_nome" class="seu_amigo_label">Seu Amigo</label><input class="input_amigos" type="text" [color=#FF0000]name="name_to[]">[/color]
<label for="amigo_email" class="amigo_email_label">E-mail</label><input class="input_email_1" type="text" size="15"[color=#FF0000] name="email_to[]">[/color]
<input class="menos_amigo" type="button" name="drop" value="Retirar" onClick="dropFile(this);">
<input class="mais_amigo" type="button" name="add"  value="Adicionar" onClick="addFile(this);">
</td></tr></table>

</div>
<input class="submit_indique" type="submit" value="ENCAMINHAR" name="Send" />


</div>
</form>

</div>
                            <div id="rodape">
                                <?php include "fim.php"; ?>
                                    <img class="bandeiras" src="imagens/site_seguro.gif" title="formas de pagamento" alt="formas de pagamento"/>
                                </div>
</div>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Primeiramente, bem-vinda ao fórum. :D

Quando tiver dúvidas, poste-as nos fóruns principais.

Tópico movido:

Códigos Prontos -> PHP

Também leia as Regras e use títulos condizentes com a dúvida.

Título editado:

Naufraguei -> Erro ao cadastrar array no MySQL

$email_to é um array, por isso aparece "Array" ao cadatsrar no banco de dados. Você tem que gerar a consulta dentro do loop, percorrendo o array e inserindo um valor por vez. Por exemplo:

$sql = "Insert Into tabela Values";
while (condicao)
{
    $sql .= "(campos)";
}

Se quiser salvar tudo num só campo, use seralize($nome_to). Isso gerará uma string, que poderá ser convertida em array de novo, com unserialize().

;)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --glauciarezende --

hehe, valeu!

Só confirmando:

$sql = "Insert Into tabela Values";
while (condicao)
{
    $sql .= "(campos)";
}
isso tudo entra dentro do meu php entre "$inserir = mysql_query" tipo, assim (onde coloquei o fonte vermelha)...moço, num entendi! ai ai... :blush:
<form onsubmit="return verify_form(this)" name="form_invite" action="?status=result" method="post">
<?    
function email($email){
if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
return true;
}else{
    return false;
}
}

if(isset($_GET["status"])) { $status = $_GET["status"]; } else { $status = '';}

if($status=='result') {

echo '<div class="all_screen"><p align="left">';

$name_from = $_POST['name_from'];
$email_from = $_POST['email_from'];
$name_to = $_POST['name_to'];
$email_to = $_POST['email_to'];
$msg = nl2br(strip_tags($_POST['msg']));

$n_friends = count($name_to);
$error = 0;


if ( empty($name_from) ) { echo " - Por favor, coloque seu nome completo<br />"; $error ++; }
if ( empty($email_from) ) { echo " - Por favor, coloque seu e-mail completo<br />"; $error ++; }
if ( !email($email_from)) { echo " - Por favor, verefique seu e-mail.<br />"; $error ++; }
if ( ($n_friends == 1) and (empty($email_to[0])) ) { echo " - Por favor, coloque o e-mail completo dos seus amigos...<br />"; $error ++;}
if ( $error != 0 ) { echo ' - <a href="java script:history.go(-1)">Voltar</a>'; } else {

echo 'Obrigado '.$name_from.' por convidar seus amigos a visitar o Portal Show de Cão.<BR /><BR />';

$subject = 'Conheça o Portal Show de Cão!';
$from = ''.$name_from.'< '.$email_from.' >';

for($i=0;$i<$n_friends;$i++){ $x = $i + 1;
if ((empty($name_to[$i])) or (empty($email_to[$i]))) {$this_mail = 'Don\'t send'; $this_status = 0; } else { $this_mail = 'Sua mensagem foi encaminhada, obrigado!'; $this_status = 1;}
if (!email($email_to[$i])) {$this_mail = 'Houve um erro...por favor, confira os dados digitados...obrigado!'; }
echo "$x - $name_to[$i] - $this_mail <br>";

if ($this_status ==  0 ) { } else {
$email = $email_to[$i];
$msg_email = "Olá, $name_to[$i], $name_from para visitar este Portal: <BR /><BR /> $msg <BR /><BR />www.showdecao.com.br";

@mail ($email, $subject, $msg_email, "From: $from\nContent-type:text/html;charset=ISO-8859-1;MULTIPART/related");
}
} // close for

} // close else send email
echo '</p></div>';
}  // close if status==result


$conexao = mysql_connect("EDITADO","EDITADO","EDITADO");
   mysql_select_db("showdecao", $conexao);

[color="#FF0000"]   $inserir = mysql_query("INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES ('$name_from', '$email_from', '$name_to', '$email_to', '$msg')");[/color]

   mysql_close($conexao);
?>




<div id="amigos">
<label for="nome" class="seu_nome_label">Seu Nome</label>
<input class="seu_nome" name="name_from" type="text" value="" size="38" maxlength="100" />

<label for="email" class="seu_email_label">Seu E-mail</label>
<input class="seu_email" name="email_from" type="text" value="" size="38" maxlength="100" />

<label for="mensagem" class="escreva_label">Escreva a Mensagem.</label>
<textarea name="msg" class="escreva"></textarea>

<p class="adicione_amigos">Coloque o nome e e-mail dos seus amigos...clique no "+" para adicioná-los.</p>

<div class="expande">
<table><tr><td>
<label for="amigo_nome" class="seu_amigo_label">Seu Amigo</label><input class="input_amigos" type="text" name="name_to[]">
<label for="amigo_email" class="amigo_email_label">E-mail</label><input class="input_email_1" type="text" size="15" name="email_to[]">
<input class="menos_amigo" type="button" name="drop" value="Retirar" onClick="dropFile(this);">
<input class="mais_amigo" type="button" name="add"  value="Adicionar" onClick="addFile(this);">
</td></tr></table>

</div>
<input class="submit_indique" type="submit" value="ENCAMINHAR" name="Send" />


</div>
</form>

</div>
Primeiramente, bem-vinda ao fórum. :D Quando tiver dúvidas, poste-as nos fóruns principais. Tópico movido: Códigos Prontos -> PHP Também leia as Regras e use títulos condizentes com a dúvida. Título editado: Naufraguei -> Erro ao cadastrar array no MySQL $email_to é um array, por isso aparece "Array" ao cadatsrar no banco de dados. Você tem que gerar a consulta dentro do loop, percorrendo o array e inserindo um valor por vez. Por exemplo:
$sql = "Insert Into tabela Values";
while (condicao)
{
    $sql .= "(campos)";
}

Se quiser salvar tudo num só campo, use seralize($nome_to). Isso gerará uma string, que poderá ser convertida em array de novo, com unserialize().

;)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --glauciarezende --
Você tem que gerar a consulta SQL antes de executá-la com mysql_query()

Beraldo, meu oráculo!

Moço, desculpa mesmo ... mas como disse, sou nova no PHP... baixei umas apostilas, li e num achei a bendita resposta pra esse problema da interação do MySQL com o PHP...ai ai... você está sendo super atencioso e tenho medo de acabar com sua paciência...hehe...veja, quando você fala de colocar a condição dentro do while eu num entendo direito... é assim?

$conexao = mysql_connect("meu_host","meu_usuario","minha_senha");
   mysql_select_db("meu_bd", $conexao);

$sql = "Insert Into indicados $name_to";
while ("$name_to == name_to")
{
    $sql .= "(name_to)";
}
   
   $sql = mysql_query("INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES ('$name_from', '$email_from', '$name_to', '$email_to', '$msg')");

   mysql_close($conexao);
?>

Eu peguei esse código do próprio ScriptBrasil... invite.zip

Beraldo, mais uma vez aguardo suas gotas de sabedoria ó oráculo do saber..hehe :rolleyes:

Beijo!

Link para o comentário
Compartilhar em outros sites

  • 0

Veja um exemplo:

$nomes = array();
$nomes[] = "Beraldo";
$nomes[] = "Script Brasil";
$nomes[] = "PHP";
$nomes[] = "Iron Maiden";

$sql = "Insert Into tabela Values";

for ($i = 0; $i < count($nomes); $i++)
{
    $sql .= " ('" . $nomes[$i] . "')" . (($i == (count($nomes) - 1)) ? "" : ",");
}

echo $sql;

;)

Link para o comentário
Compartilhar em outros sites

  • 0
Guest --glauciarezende --

Beraldo, não funcionou!

Cara, meus neurônios estãos sendo violentados! Nhá, eu estou triste...snif.

Tipo, me esforcei mas acho que vou desistir...sei lá, tentar outro código... e eu tinha gostado tanto dele...

veja uma das minhas tentativas:

$conexao = mysql_connect("EDITADO","EDITADO","EDITADO");
   mysql_select_db("showdecao", $conexao);

$name_to = array();

$sql = "INSERT INTO indicados VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= " ('" . $name_to[$i] . "')" . (($i == (count($name_to) - 1)) ? "" : ",");
}


   $inserir = mysql_query("INSERT INTO indicados (name_to[]) VALUES ('$name_to')");

   mysql_close($conexao);
Lá na phpMyAdmin continua mostrando... Array GRRRRR estou babando! rs.. De qualquer forma valeu o seu empenho. :) Beijo!
Veja um exemplo:
$nomes = array();
$nomes[] = "Beraldo";
$nomes[] = "Script Brasil";
$nomes[] = "PHP";
$nomes[] = "Iron Maiden";

$sql = "Insert Into tabela Values";

for ($i = 0; $i < count($nomes); $i++)
{
    $sql .= " ('" . $nomes[$i] . "')" . (($i == (count($nomes) - 1)) ? "" : ",");
}

echo $sql;

;)

Editado por ESerra
Removendo dados a pedido do usuário
Link para o comentário
Compartilhar em outros sites

  • 0

Você está reiniciando a variável $nome_to, sem inserir nenhum valor. Ela vira um array vazio.

Você também criou errado a SQL, sem colocar todos os valores, e executou outra consulta com mysql_query().

Tente assim

$conexao = mysql_connect("EDITADO","EDITADO","EDITADO");
mysql_select_db("showdecao", $conexao);

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= " ('$name_from', '$email_from', '" . $name_to[$i] . "', '$email_to', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}


$inserir = mysql_query($sql);

mysql_close($conexao);

Editado por ESerra
Editado a pedido do usuário
Link para o comentário
Compartilhar em outros sites

  • 0

Beraldo,

Ainda não deu... ele não mostra os outros name_to no MyphpAdmin... entende? Mostra só o primeiro, os outros que eu coloquei no input ele não mostra...

Veja, meu código na íntegra.

Puxa, deixa eu te dizer...este site (www.showdecao.com.br) é um trabalho de escola (facu) e eu tenho que fazer ele acontecer direitinho senão não colo o grau...manja? não me formo... acontece, que o ensino de PHP lá...foi muito precário... o meu forte mesmo, é tableless, coreldraw, photoshop...css, html... inclusive se você precisar de ajuda minha, nessa área, fico à sua disposição! ;)

<html>
<head>
    <title>Indique muitos amigos e ganhe muitos descontos! :: SHOW DE CãO :: Brasil :: São Paulo - SP</title>
        <link rel="stylesheet" type="text/css" href="cao.css"/>
<script type="text/javascript">

function dropFile(btn){
    if(document.getElementById) {
        tr = btn;
        while (tr.tagName != 'TR') tr = tr.parentNode;
        tr.parentNode.removeChild(tr);
        checkForLast();
    }
}

function addFile(btn){
    if(document.getElementById) {
        tr = btn;
        while (tr.tagName != 'TR') tr = tr.parentNode;
        var idSuffix = Math.round(Math.random()*1000);
        var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
        thisChilds = newTr.getElementsByTagName('td');
        for (var i = 0; i < thisChilds.length; i++){
            if (thisChilds[i].className == 'header') thisChilds[i].innerHTML = '';
            if (thisChilds[i].className == 'text') thisChilds[i].innerHTML = '';
        }
        checkForLast();
    }
}

function checkForLast(){
    btns = document.getElementsByName('drop');

    for (i = 0; i < btns.length; i++){
        btns[i].disabled = (btns.length == 1) ? true : false;
    }
}

function verify_form(form_invite){

if (form_invite.name_from.value == ""){
alert("Por favor, coloque seu nome completo.");
form_invite.name_from.focus();
return (false);
}

if (form_invite.email_from.value == ""){
alert("Por favor, coloque seu e-mail.");
form_invite.email_from.focus();
return (false);
}

return (true);
}


</script>


</head>

<body>

<div id="tudo">

    
        <?php include "topo.php"; ?>

        
  <div id="coluna_esquerda"> 
  
    <?php include "cat_produtos.php"; ?>
    <?php include "cat_serv.php"; ?>
    <?php include "news.php"; ?>

<div id="indique"> 
<img class="titulo_indique" src="imagens/titulo_indique.gif" title="indique" alt="indique"/>
<a href="indique.php" target="_self"><img class="indica_descontos" src="imagens/indica_amigo.jpg" title="indique este site para um amigo" alt="indique este site para um amigo" border="0"></a>
</div>

    <img class="titulo_adota" src="imagens/bot_adota.gif" title="adote" alt="adote"/> 
    <div id="golden"><a href="adota.php" target="_self"><img src="imagens/adote.jpg" border="0" class="golden" alt="Golden"/></a> 
    </div>

    </div>
  
    <div id="coluna_direita">
    <img src="imagens/dog_amigo.jpg" class="imagem_direita_indique" title="indique amigos" alt="indique amigos"/> 

<form onsubmit="return verify_form(this)" name="form_invite" action="?status=result" method="post">
<?    
$conexao = mysql_connect("EDITADO","EDITADO","EDITADO");
mysql_select_db("showdecao", $conexao);


function email($email){
if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
return true;
}else{
    return false;
}
}

if(isset($_GET["status"])) { $status = $_GET["status"]; } else { $status = '';}

if($status=='result') {

echo '<div class="all_screen"><p align="left">';

$name_from = $_POST['name_from'];
$email_from = $_POST['email_from'];
$name_to = $_POST['name_to'];
$email_to = $_POST['email_to'];
$msg = nl2br(strip_tags($_POST['msg']));

$n_friends = count($name_to);
$error = 0;

if ( empty($name_from) ) { echo " - Por favor, coloque seu nome completo<br />"; $error ++; }
if ( empty($email_from) ) { echo " - Por favor, coloque seu e-mail completo<br />"; $error ++; }
if ( !email($email_from)) { echo " - Por favor, verefique seu e-mail.<br />"; $error ++; }
if ( ($n_friends == 1) and (empty($email_to[0])) ) { echo " - Por favor, coloque o e-mail completo dos seus amigos...<br />"; $error ++;}
if ( $error != 0 ) { echo ' - <a href="java script:history.go(-1)">Voltar</a>'; } else {

echo 'Obrigado '.$name_from.' por convidar seus amigos a visitar o Portal Show de Cão.<BR /><BR />';

$subject = 'Conheça o Portal Show de Cão!';
$from = ''.$name_from.'< '.$email_from.' >';

for($i=0;$i<$n_friends;$i++){ $x = $i + 1;
if ((empty($name_to[$i])) or (empty($email_to[$i]))) {$this_mail = 'Don\'t send'; $this_status = 0; } else { $this_mail = 'Sua mensagem foi encaminhada, obrigado!'; $this_status = 1;}
if (!email($email_to[$i])) {$this_mail = 'Houve um erro...por favor, confira os dados digitados...obrigado!'; }
echo "$x - $name_to[$i] - $this_mail <br>";

if ($this_status ==  0 ) { } else {
$email = $email_to[$i];
$msg_email = "Olá, $name_to[$i], $name_from para visitar este Portal: <BR /><BR /> $msg <BR /><BR />www.showdecao.com.br";

@mail ($email, $subject, $msg_email, "From: $from\nContent-type:text/html;charset=ISO-8859-1;MULTIPART/related");
}
} // close for

} // close else send email
echo '</p></div>';
}  // close if status==result

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= " ('$name_from', '$email_from', '" . $name_to[$i] . "', '$email_to', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

$inserir = mysql_query($sql);

mysql_close($conexao);

?>



<div id="amigos">
<label for="nome" class="seu_nome_label">Seu Nome</label>
<input class="seu_nome" name="name_from" type="text" value="" size="38" maxlength="100" />

<label for="email" class="seu_email_label">Seu E-mail</label>
<input class="seu_email" name="email_from" type="text" value="" size="38" maxlength="100" />

<label for="mensagem" class="escreva_label">Escreva a Mensagem.</label>
<textarea name="msg" class="escreva"></textarea>

<p class="adicione_amigos">Coloque o nome e e-mail dos seus amigos...clique no "+" para adicioná-los.</p>

<div class="expande">
<table><tr><td>
<label for="amigo_nome" class="seu_amigo_label">Seu Amigo</label><input class="input_amigos" type="text" name="name_to[]">
<label for="amigo_email" class="amigo_email_label">E-mail</label><input class="input_email_1" type="text" size="15" name="email_to[]">
<input class="menos_amigo" type="button" name="drop" value="Retirar" onClick="dropFile(this);">
<input class="mais_amigo" type="button" name="add"  value="Adicionar" onClick="addFile(this);">
</td></tr></table>

</div>
<input class="submit_indique" type="submit" value="ENCAMINHAR" name="Send" />

</div>
</form>

</div>
                            <div id="rodape">
                                <?php include "fim.php"; ?>
                                    <img class="bandeiras" src="imagens/site_seguro.gif" title="formas de pagamento" alt="formas de pagamento"/>
                                </div>
</div>
</body>
</html>

Editado por ESerra
Editado a pedido do usuário
Link para o comentário
Compartilhar em outros sites

  • 0

Não deu...agora não mostra os resultados no MyphpAdmin...

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to,$email_to); $i++) 
{
    $sql .= "('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to,$email_to) - 1)) ? "" : ",");
}

$inserir = mysql_query($sql);

mysql_close($conexao);

?>

:wacko:

$nome_to também chega como um array. Use a mesma lógica que utilizei com $email_to. Pode usar o mesmo loop for().

Link para o comentário
Compartilhar em outros sites

  • 0

Aparece isso:

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

Não cadastra nada?

Troque isto:

$inserir = mysql_query($sql);

por isto

$inserir = mysql_query($sql) or exit(mysql_error());

veja se aparece algum erro

Link para o comentário
Compartilhar em outros sites

  • 0

Estranho,

ele resonde isto:

Obrigado Huga por convidar seus amigos a visitar o Portal Show de Cão.

1 - tarzan - Sua mensagem foi encaminhada, obrigado!

INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES('Huga', 'glauciarezende@gmail.com', 'tarzan', 'glauciarezende@gmail.com', 'buga huga buga'),

Mas, não entra estes dados lá no meu MyphpAdmin...

Retire o $email_to ou $nome_to do count(). Não use duas variáveis ali.

Dê um echo na $sql antes de executá-la, para ver qual está sendo o valor dela.

Link para o comentário
Compartilhar em outros sites

  • 0

Ainda não deu... coloquei o echo "$sql"; acima do mysql_query()

A resposta aparece assim:

Obrigado Glaucia por convidar seus amigos a visitar o Portal Show de Cão.

1 - Beraldo - Sua mensagem foi encaminhada, obrigado!

2 - Beraldo Jr. - Sua mensagem foi encaminhada, obrigado!

('Glaucia', 'glauciarezende@gmail.com', 'Beraldo', 'glauciarezende@gmail.com', 'nhá'),('Glaucia', 'glauciarezende@gmail.com', 'Beraldo Jr.', 'glauciarezende@gmail.com', 'nhá'),

<html>
<head>
    <title>Indique muitos amigos e ganhe muitos descontos! :: SHOW DE CãO :: Brasil :: São Paulo - SP</title>
        <link rel="stylesheet" type="text/css" href="cao.css"/>
&lt;script type="text/javascript">

function dropFile(btn){
    if(document.getElementById) {
        tr = btn;
        while (tr.tagName != 'TR') tr = tr.parentNode;
        tr.parentNode.removeChild(tr);
        checkForLast();
    }
}

function addFile(btn){
    if(document.getElementById) {
        tr = btn;
        while (tr.tagName != 'TR') tr = tr.parentNode;
        var idSuffix = Math.round(Math.random()*1000);
        var newTr = tr.parentNode.insertBefore(tr.cloneNode(true),tr.nextSibling);
        thisChilds = newTr.getElementsByTagName('td');
        for (var i = 0; i < thisChilds.length; i++){
            if (thisChilds[i].className == 'header') thisChilds[i].innerHTML = '';
            if (thisChilds[i].className == 'text') thisChilds[i].innerHTML = '';
        }
        checkForLast();
    }
}

function checkForLast(){
    btns = document.getElementsByName('drop');

    for (i = 0; i < btns.length; i++){
        btns[i].disabled = (btns.length == 1) ? true : false;
    }
}

function verify_form(form_invite){

if (form_invite.name_from.value == ""){
alert("Por favor, coloque seu nome completo.");
form_invite.name_from.focus();
return (false);
}

if (form_invite.email_from.value == ""){
alert("Por favor, coloque seu e-mail.");
form_invite.email_from.focus();
return (false);
}

return (true);
}


</script>


</head>

<body>

<div id="tudo">

    
        <?php include "topo.php"; ?>

        
  <div id="coluna_esquerda"> 
  
    <?php include "cat_produtos.php"; ?>
    <?php include "cat_serv.php"; ?>
    <?php include "news.php"; ?>

<div id="indique"> 
<img class="titulo_indique" src="imagens/titulo_indique.gif" title="indique" alt="indique"/>
<a href="indique.php" target="_self"><img class="indica_descontos" src="imagens/indica_amigo.jpg" title="indique este site para um amigo" alt="indique este site para um amigo" border="0"></a>
</div>

    <img class="titulo_adota" src="imagens/bot_adota.gif" title="adote" alt="adote"/> 
    <div id="golden"><a href="adota.php" target="_self"><img src="imagens/adote.jpg" border="0" class="golden" alt="Golden"/></a> 
    </div>

    </div>
  
    <div id="coluna_direita">
    <img src="imagens/dog_amigo.jpg" class="imagem_direita_indique" title="indique amigos" alt="indique amigos"/> 

<form onsubmit="return verify_form(this)" name="form_invite" action="?status=result" method="post">
<?    
$conexao = mysql_connect("EDITADO","EDITADO","EDITADO");
mysql_select_db("showdecao", $conexao);


function email($email){
if (ereg("^([0-9,a-z,A-Z]+)([.,_]([0-9,a-z,A-Z]+))*[@]([0-9,a-z,A-Z]+)([.,_,-]([0-9,a-z,A-Z]+))*[.]([0-9,a-z,A-Z]){2}([0-9,a-z,A-Z])?$", $email)){
return true;
}else{
    return false;
}
}

if(isset($_GET["status"])) { $status = $_GET["status"]; } else { $status = '';}

if($status=='result') {

echo '<div class="all_screen"><p align="left">';

$name_from = $_POST['name_from'];
$email_from = $_POST['email_from'];
$name_to = $_POST['name_to'];
$email_to = $_POST['email_to'];
$msg = nl2br(strip_tags($_POST['msg']));

$n_friends = count($name_to);
$error = 0;

if ( empty($name_from) ) { echo " - Por favor, coloque seu nome completo<br />"; $error ++; }
if ( empty($email_from) ) { echo " - Por favor, coloque seu e-mail completo<br />"; $error ++; }
if ( !email($email_from)) { echo " - Por favor, verefique seu e-mail.<br />"; $error ++; }
if ( ($n_friends == 1) and (empty($email_to[0])) ) { echo " - Por favor, coloque o e-mail completo dos seus amigos...<br />"; $error ++;}
if ( $error != 0 ) { echo ' - <a href="java script:history.go(-1)">Voltar</a>'; } else {

echo 'Obrigado '.$name_from.' por convidar seus amigos a visitar o Portal Show de Cão.<BR /><BR />';

$subject = 'Conheça o Portal Show de Cão!';
$from = ''.$name_from.'< '.$email_from.' >';

for($i=0;$i<$n_friends;$i++){ $x = $i + 1;
if ((empty($name_to[$i])) or (empty($email_to[$i]))) {$this_mail = 'Don\'t send'; $this_status = 0; } else { $this_mail = 'Sua mensagem foi encaminhada, obrigado!'; $this_status = 1;}
if (!email($email_to[$i])) {$this_mail = 'Houve um erro...por favor, confira os dados digitados...obrigado!'; }
echo "$x - $name_to[$i] - $this_mail <br>";

if ($this_status ==  0 ) { } else {
$email = $email_to[$i];
$msg_email = "Olá, $name_to[$i], $name_from para visitar este Portal: <BR /><BR /> $msg <BR /><BR />www.showdecao.com.br";

@mail ($email, $subject, $msg_email, "From: $from\nContent-type:text/html;charset=ISO-8859-1;MULTIPART/related");
}
} // close for

} // close else send email
echo '</p></div>';
}  // close if status==result



for ($i = 0; $i < count($name_to); $i++) 
{
    $sql .= "('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to,$email_to) - 1)) ? "" : ",");
}

echo "$sql"; 

$sql = mysql_query("INSERT INTO indicados(name_from,email_from,name_to,email_to,msg) VALUES");


mysql_close($conexao);

?>



<div id="amigos">
<label for="nome" class="seu_nome_label">Seu Nome</label>
<input class="seu_nome" name="name_from" type="text" value="" size="38" maxlength="100" />

<label for="email" class="seu_email_label">Seu E-mail</label>
<input class="seu_email" name="email_from" type="text" value="" size="38" maxlength="100" />

<label for="mensagem" class="escreva_label">Escreva a Mensagem.</label>
<textarea name="msg" class="escreva"></textarea>

<p class="adicione_amigos">Coloque o nome e e-mail dos seus amigos...clique no "+" para adicioná-los.</p>

<div class="expande">
<table><tr><td>
<label for="amigo_nome" class="seu_amigo_label">Seu Amigo</label><input class="input_amigos" type="text" name="name_to[]">
<label for="amigo_email" class="amigo_email_label">E-mail</label><input class="input_email_1" type="text" size="15" name="email_to[]">
<input class="menos_amigo" type="button" name="drop" value="Retirar" onClick="dropFile(this);">
<input class="mais_amigo" type="button" name="add"  value="Adicionar" onClick="addFile(this);">
</td></tr></table>

</div>
<input class="submit_indique" type="submit" value="ENCAMINHAR" name="Send" />

</div>
</form>

</div>
                            <div id="rodape">
                                <?php include "fim.php"; ?>
                                    <img class="bandeiras" src="imagens/site_seguro.gif" title="formas de pagamento" alt="formas de pagamento"/>
                                </div>
</div>
</body>
</html>

Onde você colocou o echo $sql? Deve estar no local errado, pois essa vírgula não poderia estar ali.

Coloque o echo $sql logo acima de mysql_query().

Editado por ESerra
Editado a pedido do usuário
Link para o comentário
Compartilhar em outros sites

  • 0

Agora deu! :P

Mas.... Mas.... não tá dando pra por o outro valor $email_to

veja como eu fiz... e não funfou (claro..rs..)

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++) 
{
    $sql .= "('$name_from', '$email_from', '" . $name_to[$i] . "', '$email_to', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

for ($i = 0; $i < count($email_to); $i++) 
{
    $sql .= "('$name_from', '$email_from', '" . $email_to[$i] . "', '$name_to', '$msg')" . (($i == (count($email_to) - 1)) ? "" : ",");
}

$inserir = mysql_query($sql);

echo "$sql"; 

mysql_close($conexao);

?>

Eu falei para voc6e deixar somente uma das variáveis em count(). Você ainda mantém as duas. :P

Use $sql como argumento de mysql_query(). Você inseriu uma consulta inválida ali. Além disso, você não iniciou $sql com "Insert Into...". Reveja os meus posts anteriores.

Link para o comentário
Compartilhar em outros sites

  • 0

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= "('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

$inserir = mysql_query($sql);

mysql_close($conexao);

veja se agora funciona

Link para o comentário
Compartilhar em outros sites

  • 0

Não.

:wacko:

$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= "('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

$inserir = mysql_query($sql);

mysql_close($conexao);

veja se agora funciona

Link para o comentário
Compartilhar em outros sites

  • 0

Então, acrescentei:

$inserir = mysql_query($sql) or exit(mysql_error());

E dá esse erro no browser... (FireFox 2.0)

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

No lado do MyphpAdmin, eu pedi campo em VARCHAR (250) tá certo, né?

:huh:

o que acontece? dá erro?

tente adicionar o or exit(mysql_error()), como fizemos anterioemente e veja se aparece erro.

Link para o comentário
Compartilhar em outros sites

  • 0

Está ocorrendo algum erro na geração da SQL. Faça isto:

Antes de mysql_query(), insira:

$sql = mysql_real_escape_string($sql);
Se ainda não der, faça isto para ver como está $sql:
$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= " ('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

echo $sql;

Link para o comentário
Compartilhar em outros sites

  • 0

Então, a primeira forma não deu...daí passei pra segunda forma que você me deixou... veja o resultado no browser:

Obrigado Bidu da Silva por convidar seus amigos a visitar o Portal Show de Cão.

1 - Snoopy - Sua mensagem foi encaminhada, obrigado!
2 - Oto - Sua mensagem foi encaminhada, obrigado!
INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES ('Bidu da Silva', 'glauciarezende@gmail.com', 'Snoopy', 'glauciarezende@gmail.com', 'au au'), ('Bidu da Silva', 'glauciarezende@gmail.com', 'Oto', 'glauciarezende@gmail.com', 'au au')
Do lado do MyphpAdmin, não apareceu nada. :ninja:
Está ocorrendo algum erro na geração da SQL. Faça isto: Antes de mysql_query(), insira:
$sql = mysql_real_escape_string($sql);
Se ainda não der, faça isto para ver como está $sql:
$sql = "INSERT INTO indicados (name_from, email_from, name_to, email_to, msg) VALUES";

for ($i = 0; $i < count($name_to); $i++)
{
    $sql .= " ('$name_from', '$email_from', '" . $name_to[$i] . "', '" . $email_to[$i] . "', '$msg')" . (($i == (count($name_to) - 1)) ? "" : ",");
}

echo $sql;

Link para o comentário
Compartilhar em outros sites

  • 0

Você está usando esses nomes e e-mails para cadastrar? É estranho, pois não há erro de sintaxe. Poderia haver algum caractere que estivesse "cortando" a SQL, como aspas, mas não há. :unsure:

executando este script aparece aquele erro de sintaxe?

$inserir = mysql_query($sql) or exit(mysql_error());

OBS: não é MyPHPAdmin, é PHPMyAdmin. :P

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652,1k
×
×
  • Criar Novo...