Foros del Web » Programando para Internet » PHP »

Error de sintaxis SQL y no se que puede ser

Estas en el tema de Error de sintaxis SQL y no se que puede ser en el foro de PHP en Foros del Web. Este es el error: You have an error in your SQL syntax near ')' at line 1 Este el codigo: Código PHP: $campos  = "nombre,texto,genero,edad" ...
  #1 (permalink)  
Antiguo 01/06/2004, 13:48
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Error de sintaxis SQL y no se que puede ser

Este es el error:
You have an error in your SQL syntax near ')' at line 1

Este el codigo:
Código PHP:
$campos ="nombre,texto,genero,edad";
$valores "'".$_POST ['nombre']."',";
$valores .= "'".$_POST ['texto']."',";
$valores .= "'".$_POST ['genero']."',";
$valores .= "'".$_POST ['edad']."',";

$sql "INSERT INTO dr_anuncio ($campos) VALUES($valores)";
$res mysql_query ($sql) or die (mysql_error());
            
echo 
"Registro ingresado"
La conexion a la base de datos se realiza y todo lo demas va bien pero no se donde esta el fallo.
__________________
Seguro que ahora me sale mejor!
  #2 (permalink)  
Antiguo 01/06/2004, 14:03
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 13 años, 7 meses
Puntos: 1
hola haber colocale unas comillas simples en VALUES mira asi:

$sql = "INSERT INTO dr_anuncio ($campos) VALUES( '$valores' )";

hojala que sea eso a hojala te sirva adios
  #3 (permalink)  
Antiguo 01/06/2004, 14:22
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
nada me error y me aparece los datos que pongo en las variables
Gracias
__________________
Seguro que ahora me sale mejor!
  #4 (permalink)  
Antiguo 01/06/2004, 14:55
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 13 años, 7 meses
Puntos: 1
Intenta esto ya que le saque la coma que tenia al final de los values pude que sea eso

$campos ="nombre,texto,genero,edad";
$valores = " ' ".$_POST ['nombre']." ' ";
$valores .= " ' ".$_POST ['texto']." ' ";
$valores .= " ' ".$_POST ['genero']." ' ";
$valores .= " ' ".$_POST ['edad']." ' ";

$sql = "INSERT INTO dr_anuncio ($campos) VALUES( ' $valores' )";
$res = mysql_query ($sql) or die (mysql_error());

echo "Registro ingresado";
  #5 (permalink)  
Antiguo 01/06/2004, 15:06
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Bizo21 me ahroa este error "Column count doesn't match value count at row 1"
os pongo aqui el form completo a ver que puede ser, esto es parte de un form mucho mas amplio pero con estos campos da el mismo error.
Código PHP:
<?php

// Comprovamos si se ha enviado el form
if (isset ($submit)){

//Conexiones y funciones
include ("includes/config.php");    

//Modificaciones en el texto
        
$texto stripslashes($texto);
        
$texto =nl2br($texto);
        
// Campos y valores del formulario
$campos ="nombre,texto";

$valores "'".$_POST ['nombre']."',";
$valores .= "'".$_POST ['texto']."',";

// Añadiendo contenidos a la base de datos
        
$sql "INSERT INTO dr_anuncio ($campos) VALUES($valores)";
        
$res mysql_query ($sql) or die (mysql_error());
            
        echo 
"Registro ingresado";
}        
?>
        <form id="FormName" action="<? echo $PHP_SELF?>" method="post" name="FormName" enctype="multipart/form-data">
            <table width="68%" border="0" cellspacing="2" cellpadding="2">
                <tr>
                    <td>Nombre *</td>
                    <td><input type="text" name="nombre" size="24"></td>
                </tr>
                <tr>
                    <td>Tu presentaci&oacute;n*</td>
                    <td><textarea name="texto" rows="4" cols="40"></textarea></td>
                </tr>
                            
                <tr>
                    <td></td>
                    <td><input type="submit" name="submit" value="&raquo; Enviar &laquo;"></td>
                </tr>
            </table>
        </form>
__________________
Seguro que ahora me sale mejor!
  #6 (permalink)  
Antiguo 01/06/2004, 15:28
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 13 años, 7 meses
Puntos: 1
oye pero le sacastes la coma que hay despues de la comilla simple
$valores .= " ' ".$_POST ['texto']." ' ";
MIRA TU COLOCAS
$VALOR=" ";
$VALOR.=" ";
eso nada mas si le sacaste las comas voy a revisar tu codigo
vale!
  #7 (permalink)  
Antiguo 01/06/2004, 15:32
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Si las quite cuando me lo dijistes antes, pero eske el error me los sigue dando, y ya no se que puede ser.
Gracias por tu ayuda
__________________
Seguro que ahora me sale mejor!
  #8 (permalink)  
Antiguo 01/06/2004, 15:43
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 13 años, 10 meses
Puntos: 0
creo que el error esta aqui:
$campos ="nombre,texto";

$valores = "'".$_POST ['nombre']."',";
$valores .= "'".$_POST ['texto']."',";<<<=== le agregas una coma demas ya que este es el ultimo value que insertas.

a mi gusto el codigo quedaria mejor asi es menos enredado y mas legible los espacios puedes obviarlos

$campos ="nombre,texto";
$valores = " ' ".$_POST ['nombre']." ' ,' ".$_POST ['texto']." '";

ojala te resulte nos vemos
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #9 (permalink)  
Antiguo 01/06/2004, 16:00
Avatar de Bizo21  
Fecha de Ingreso: abril-2004
Ubicación: Valdivia
Mensajes: 93
Antigüedad: 13 años, 7 meses
Puntos: 1
Mira no se que puede ser ya que no veo el error
Ahi cambie algo por que no se que puede ser

$valores = "$_POST ['nombre']";
$valores .= "$_POST ['texto']";
o sino vas a tener que hacerlo a la antigua asi
$sql = "INSERT INTO dr_anuncio (nombre,texto) VALUES('$nombre','$texto')";
pero una consulta esta bien el nombre de la tabla no hay ni una mayuscula o algo estraño ya que todo eso puede afectar fijate bien en eso


<?php

// Comprovamos si se ha enviado el form
if (isset ($submit)){

//Conexiones y funciones
include ("includes/config.php");

//Modificaciones en el texto
$texto = stripslashes($texto);
$texto =nl2br($texto);

// Campos y valores del formulario
$campos ="nombre,texto";

/*
Mira no se si funciona asi porque por lo que veo no tienes ningun error
*/

$valores = "$_POST ['nombre']";
$valores .= "$_POST ['texto']";

// Añadiendo contenidos a la base de datos
$sql = "INSERT INTO dr_anuncio ($campos) VALUES($valores)";
$res = mysql_query ($sql) or die (mysql_error());

echo "Registro ingresado";
}
?>
<form id="FormName" action="<? echo $PHP_SELF; ?>" method="post" name="FormName" enctype="multipart/form-data">
<table width="68%" border="0" cellspacing="2" cellpadding="2">
<tr>
<td>Nombre *</td>
<td><input type="text" name="nombre" size="24"></td>
</tr>
<tr>
<td>Tu presentaci&oacute;n*</td>
<td><textarea name="texto" rows="4" cols="40"></textarea></td>
</tr>

<tr>
<td></td>
<td><input type="submit" name="submit" value="&raquo; Enviar &laquo;"></td>
</tr>
</table>
</form>
  #10 (permalink)  
Antiguo 01/06/2004, 16:12
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Me ah funcionado asi :
$valores = " ' ".$_POST ['nombre']." ' ,' ".$_POST ['texto']." '";

Gracias por tu ayuda, no lo habria logrado solo, gracias otra vez. :)
__________________
Seguro que ahora me sale mejor!
  #11 (permalink)  
Antiguo 01/06/2004, 16:13
Avatar de The_Dark_Roy  
Fecha de Ingreso: enero-2004
Mensajes: 218
Antigüedad: 13 años, 10 meses
Puntos: 0
que error te sale y y que es lo que hay en esa linea mañana te contesto
__________________
ojala te hayas quitado la venda

http://www.surire.cl
http://www.uta.cl
  #12 (permalink)  
Antiguo 01/06/2004, 16:27
Avatar de benti  
Fecha de Ingreso: octubre-2001
Ubicación: Benidorm
Mensajes: 413
Antigüedad: 16 años, 1 mes
Puntos: 0
Cita:
Iniciado por The_Dark_Roy
que error te sale y y que es lo que hay en esa linea mañana te contesto
Gracias, a ver si asi vemos como poder concatenar eso.
__________________
Seguro que ahora me sale mejor!
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 13:16.