Ayuda con php & mysql

La cosa es que el siguiente código no hace lo que quiero que haga y no se donde esta el error el código debería almacenar el correo electrónico en la BD Emails en la tabla Emails. La verdad es que no se mucho sobre BD estoy aprendiendo pero estoy haciendo un proyecto que tengo que entregar en la universidad si me ayudas te lo agradecería de antemano muchas gracias
newemail.html
<html>
<head>
<title>Constructora Catatumbo S.A. - Subscripciones</title>
</head>
<body>
<h1>Constructora Catatumbo S.A. - Subscripcion</h1>
  <form action="insert_email.php" method="post">
<table width="353" height="80" border="0">
<tr>
<td>Correo Electronico:</td>
<td> <input type="text" name="correo" maxlength="60" size="30"></td>
</tr>
<tr>
<td colspan="2" align="center">
<p><input type="submit" value="Registrarse">
        </p>
</td>
</table>
  </form>
</body>
</html>
INSERT_EMAIL.PHP
<html>
<head>
<title>Constructora Catatumbo S.A. - Subscripciones</title>
</head>
<body>
<h1>Resultado</h1>
<?php
  // create short variable names
  $Emails=$_POST['Emails'];
  if (!$Emails)
  {
     echo 'You have not entered all the required details.<br />'
          .'Please go back and try again.';
     exit;
  }
  if (!get_magic_quotes_gpc())
  {
    $Emails= addslashes($Emails);
  }
  @ $db = new mysqli('localhost', 'bookorama', '123456', 'Emails');
  if (mysqli_connect_errno())
  {
     echo 'Error: Could not connect to database.  Please try again later.';
     exit;
  }
  $query = "insertar en Emails
            ('".$Emails."')";
  $result = $db->query($query);
  if ($result)
      echo  $db->affected_rows.' Correo Electronico Almacenado.';
  $db->close();
?>
</body>
</html>

1 respuesta

Respuesta
1
Sería interesante saber qué es lo que hace el código (que no es lo que esperabas) y si te da algún error.
Aunque básicamente veo un par de errores:
- Primero, el input del formulario tiene el atributo name con valor 'correo'. Parece que alguien ha traducido el nombre, cuando en el resto del código se espera que este nombre sea 'Emails'.
-Segundo, la sentencia SQL es incorrecta. Parece que alguien la ha traducido del inglés y ahora no se entiende. En lugar de:
$query = "insertar en Emails
            ('".$Emails."')";
debería ser:
$query = "INSERT INTO Emails ('".$Emails."')";
¿Gracias ya resolví el problema con lo de usuarios tengo otra duda pra hacer 2 form action que debo haxer porque tengo el sistema de login y una encuesta pero uso el form action para la autentificación del usuario como hago para validar la encuesta? Es decir usar un form action para la encuesta un saludos
No hay ningún problema en tener más de un formulario en una página.
Cada uno de ellos puede tener una action distinta y por lo tanto, reaccionar de forma diferente.
Ok otra cosa y disculpa hehe ya he molestado un poco pero hay que exprimir a los que saben si no no aprendemos XD bueno la cosa es la siguiente tengo este código:
<?
//conecto con la base de datos
$conn = mysql_connect("xxxx","xxx","xxxx");
//selecciono la BBDD
mysql_select_db("usuarios_bbdd",$conn);
//Sentencia SQL para buscar un usuario con esos datos
$ssql = "SELECT * FROM usuario WHERE nombre_usuario= $usuario and clave_usuario=$contrasena";
//Ejecuto la sentencia
$rs = mysql_query($ssql,$conn);
//vemos si el usuario y contraseña es váildo
//si la ejecución de la sentencia SQL nos da algún resultado
//es que si que existe esa conbinación usuario/contraseña
if (mysql_num_rows($rs)!=0){
    //usuario y contraseña válidos
    //defino una sesion y guardo datos
    session_start();
    session_register("autentificado");
    $autentificado = "SI";
    header ("Location: index.php");
}else {
    //si no existe le mando otra vez a la portada
    header("Location: index.php?errorusuario=si");
}
mysql_free_result($rs);
mysql_close($conn);
?>
Pero me da error en las siguientes lineas
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\control.php on line 16
Warning: Cannot modify header information - headers already sent by (output started at E:\xampp\htdocs\control.php:16) in E:\xampp\htdocs\control.php on line 25
Warning: mysql_free_result(): supplied argument is not a valid MySQL result resource in E:\xampp\htdocs\control.php on line 27
Ni didea de que errores hay en el yo lo veo bien :S
Deberías comprobar que $rs no sea false, lo cual ocurre cuando, como ahora, la sentencia SQL es incorrecta y no se ejecuta.
Y es incorrecta porque faltan las comillas alrededor de los textos:
$ssql = "SELECT * FROM usuario WHERE nombre_usuario= '$usuario' and clave_usuario='$contrasena'";
Por otro lado, no tengo inconveniente a contestar tus preguntas, pero el procedimiento establecido es cerrar las preguntas individualmente y abrir otra nueva, en lugar de hacer todas las preguntas en la misma.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas