Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con PHP y MySQL

Estas en el tema de Problema con PHP y MySQL en el foro de PHP en Foros del Web. Buenas, os voy a presentar mi duda, lo primero es que creo que es más de mysql que de php la duda pero bueno como ...
  #1 (permalink)  
Antiguo 23/03/2015, 03:22
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 2 meses
Puntos: 0
Problema con PHP y MySQL

Buenas, os voy a presentar mi duda, lo primero es que creo que es más de mysql que de php la duda pero bueno como en la mayoria de los casos saber php implica saber mysql aquí os la comento.

lo primero de todos comentaros el error y lo que quiero realizar, el error me da cuando quiero dar de alta un usuario en la base de datos, se que estoy metiendo un zarpazo bastante gordo pero no sé en donde; este es el error 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 ''admin'' at line 1 admin es el campo rol.

lo segundo os voy a adjuntar la base de datos, el html del alta y el php del registro. Sé que lo normal no es elegir el rol cuando te registras, pero lo tengo así porque lo voy a poner solo para administradores.

SQL
Código:
-- phpMyAdmin SQL Dump
-- version 4.2.7.1
-- http://www.phpmyadmin.net
--
-- Servidor: 127.0.0.1
-- Tiempo de generación: 23-03-2015 a las 10:22:31
-- Versión del servidor: 5.6.20
-- Versión de PHP: 5.5.15

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;

--
-- Base de datos: `dbyir`
--

-- --------------------------------------------------------

--
-- Estructura de tabla para la tabla `usuarios`
--

CREATE TABLE IF NOT EXISTS `usuarios` (
`idUsuario` int(11) NOT NULL,
  `nombre` varchar(15) NOT NULL,
  `apellido` varchar(30) NOT NULL,
  `usuario` varchar(15) NOT NULL,
  `email` varchar(50) NOT NULL,
  `contrasena` varchar(20) NOT NULL,
  `rol` varchar(20) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

--
-- Índices para tablas volcadas
--

--
-- Indices de la tabla `usuarios`
--
ALTER TABLE `usuarios`
 ADD PRIMARY KEY (`idUsuario`);

--
-- AUTO_INCREMENT de las tablas volcadas
--

--
-- AUTO_INCREMENT de la tabla `usuarios`
--
ALTER TABLE `usuarios`
MODIFY `idUsuario` int(11) NOT NULL AUTO_INCREMENT;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
alta.html
Código PHP:
<!doctype html>
<
html lang="es">
    <
head>        
        <
meta charset="utf-8"/>
        <
titleTitulo </title>        
    </
head>
    
    <
body bgcolor="white">
        
        <
table width=100%>
            
            <
tr>
                <
td width=50%>
                    <
img src="./images/imagen.png" />
                </
td width=50%>
                <
td>
                    <!-- 
FORMULARIO ALTA DE USUARIOS -->
                    
Regístrate
                    
                    <
form method="post" action="registro.php">
                        <
table >
                            <
tr>
                                <
td><label for="nombre">Nombre</label> </td>
                                <
td><input type="text" name="nombre" /> </td>
                            </
tr>
                            <
tr>
                                <
td><label for="apellido">Apellidos</label> </td>
                                <
td><input type="text" name="apellido" /> </td>
                            </
tr>
                            <
tr>
                                <
td><label for="usuario">Usuario</label> </td>
                                <
td><input type="text" name="usuario" /> </td>
                            </
tr>
                            <
tr>
                                <
td><label for="rol">Rol</label> </td>
                                <
td><input type="text" name="rol" /> </td>
                            </
tr>
                            <
tr>
                                <
td><label for="email">Email</label>  </td>
                                <
td><input type="text" name="email" />  </td>
                            </
tr>
                            <
tr>
                                <
td><label for="pass">Contraseña</label>  </td>
                                <
td><input type="password" name="pass" />   </td>
                            </
tr>
                            <
tr>
                                <
td><label for="repass">Repite Contraseña</label> </td>
                                <
td><input type="password" name="repass" />   </td>
                            </
tr>
                            <
tr>
                                <
td colspan="2"><input type="submit" value="Registrarse"/> </td>
                            </
tr>
                        </
table>
                    </
form>
                </
td>
            </
tr>
            
        </
table>

    </
body>

</
html
registro.php
Código PHP:
<!doctype html>
<html lang="es">
    <head>        
        <meta charset="utf-8"/>
        <title> Titulo </title>        
    </head>
    <body>
    
    <?php
    
        
if(!isset($_POST['nombre']) || !isset($_POST['apellido']) || !isset($_POST['rol']) || !isset($_POST['usuario']) || !isset($_POST['email']) ||
            !isset(
$_POST['pass']) || !isset($_POST['repass']))
        {
            echo 
"Faltan parámetros";
        }
        elseif(
$_POST['nombre']=='' || $_POST['apellido']=='' || $_POST['rol']=='' || $_POST['usuario']=='' || $_POST['email']=='' 
            
|| $_POST['pass']==''|| $_POST['repass']==''
        {
            echo 
"Faltan datos";
        }
        else
        {
            if ( 
$_POST['pass'] != $_POST['repass'] )
            {
                echo 
"Contraseña incorrecta";
            }
            else
            {
                
//SI todo es CORRECTO añadimos al usuario a la BBDD
                
                
include("mysql.inc.php"); 
                
                
$nombre htmlentities(addslashes($_POST['nombre']));
                
$apellido htmlentities(addslashes($_POST['apellido']));
                
$usuario htmlentities(addslashes($_POST['usuario']));
                
$rol htmlentities(addslashes($_POST['rol']));
                
$email htmlentities(addslashes($_POST['email']));
                
$password md5(addslashes($_POST['pass']));
                
                
conecta($c);
                
                
mysqli_select_db($c,"dbyir");
                
                
$sql="insert into usuarios values(0,'$nombre','$apellido','$usuario','$email','$password')'$rol'";
                
                
$resultado mysqli_query($c,$sql);
                
                if (
$resultado)
                {
                    
                    
// Redireccionar a otra pagina
                    
header('Location: exito.php');
                    
                }
                else
                {
                    
$error=mysqli_error($c);        
                    echo 
$error;
                }
                
                
mysqli_close($c);
            }
            
        }
        
        
    
?>
    
    </body>
</html>
Un saludo y gracias de antemano
  #2 (permalink)  
Antiguo 23/03/2015, 03:28
 
Fecha de Ingreso: febrero-2008
Mensajes: 49
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema con PHP y MySQL

Despues de horas buscando, el problema ha sido solucionado en el fichero registro había un parentesis mal colocado, disculpas.
un saludo

Etiquetas: formulario, html, mysql, registro, select, sql, tabla, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:21.