Foros del Web » Programando para Internet » PHP »

error en mi codigo ¿!?

Estas en el tema de error en mi codigo ¿!? en el foro de PHP en Foros del Web. hol a tengo un error con esto no se que este mal ¿ podrian ayudarme? dice Column count doesn't match value count at row 1 ...
  #1 (permalink)  
Antiguo 30/11/2008, 14:42
 
Fecha de Ingreso: mayo-2008
Mensajes: 499
Antigüedad: 15 años, 11 meses
Puntos: 1
Pregunta error en mi codigo ¿!?

hol a tengo un error con esto no se que este mal

¿ podrian ayudarme?

dice
Column count doesn't match value count at row 1

Código PHP:
<?php
    mysql_connect
("localhost""root""iozk2010");
    
mysql_select_db("videodb") or die (mysql_error());
?>

<form method="post" action="index.php">
    <table border="0" style="font-size:15px; font-family:tahoma; border:1px solid black;">
        <tr><td>
            username:
        </td><td>
            <input type="username" name="username" value="<?php echo $_POST['username'];?>"/>
        </td></tr>
        <tr><td>
            password:
        </td><td>
            <input type="password" name="password" value="<?php echo $_POST['password'];?>"/>
        </td></tr>
        <tr><td>
            menssage:
        </td><td>
            <input type="text" name="message" value="<?php echo $_POST['message'];?>"/>
        </td></tr>
        <tr><td colspan="2" align="center">
            <input type="submit" name="submit" value="submit"/>
        </td></tr>
    </table>
</form>

<?php
if($_POST['submit']){
    
$username $_POST['username'];
    
$password $_POST['password'];
    
$message $_POST['message'];
    
    
$curnum 0;
    
  if(!
$username){
    
$curnum ++;
    echo
"<font color='red'".$curnum."¡no has puesto tu nombre de usuario!</font><br>\n";
  }
  
  if(!
$password){
    
$curnum ++;
    echo
"<font color='red'".$curnum."¡no has puesto tu password!</font><br>\n";
  }
  
  if(!
$message){
    
$curnum ++;
    echo
"<font color='red'".$curnum."¡no has escrito tu mensaje!</font><br>\n";
  }
  
  
$sql "SELECT * FROM tabla WHERE username='".$username."'";
  
$res mysql_query($sql) or die (mysql_error());
  
  if(
mysql_num_rows($res) > 0) {
   
$curnum ++;
   echo 
"<font color='red'>".$curnum.".El usuario'".$username."' ya existe!</font><br>\n";
  }
  
  if(
$curnum == 0){
   
mysql_query("INSERT INTO tabla VALUES(`id`,'".$username."', '".$password."', '".$message."')") or die (mysql_error());
   
   echo
"<font color='green'>tu mensage ha sido enviado con exito con el nombre de '<br>".$username."</br>'</font>\n";
  }
}
?>
  #2 (permalink)  
Antiguo 30/11/2008, 14:54
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 2 meses
Puntos: 52
Respuesta: error en mi codigo ¿!?

Hola

has hecho echo de tus varible, $username para ver si te llega bien?
o bien prueba la query asi:

Código PHP:
$sql "SELECT * FROM tabla WHERE username='$username'"
Un saludo
  #3 (permalink)  
Antiguo 30/11/2008, 15:04
Avatar de ElJavista
Colaborador
 
Fecha de Ingreso: marzo-2007
Ubicación: Lima Perú
Mensajes: 2.231
Antigüedad: 17 años, 1 mes
Puntos: 67
Respuesta: error en mi codigo ¿!?

Aquí está el error:

mysql_query("INSERT INTO tabla VALUES(`id`,'".$username."', '".$password."', '".$message."')") or die (mysql_error());

Es posible que el número de campos que se intenta ingresar no sea el mismo que existe en la tabla por eso no se sabe qué valor va en cada campo, tienes que hacer la sentencia completa:

$sql = "INSERT INTO tabla (id, username, password, mensaje) VALUES ($id, '$username', '$password', '$mensaje'";

if (mysql_query($sql)) echo "Guardó";
else echo "No guardó";

Te recomiendo que las variables en la sentencia sql no estén concatenadas por punto, no hace falta, basta hacer como yo lo hago, todo dentro de una misma cadena. Por otra parte, es de or die, no es recomendable en estos caso porque finaliza el código, puede mostrarse simplemente un mensaje, no hace falta detener la ejecución. Eso se usa digamos para establecer la conexión, conectarse a la base de datos, o sea, procedimientos que si no se realizan no valdría la pena continuar con el script, entiendes?

Bien, espero que mi aporte te sirva.
  #4 (permalink)  
Antiguo 30/11/2008, 16:08
 
Fecha de Ingreso: julio-2005
Mensajes: 86
Antigüedad: 18 años, 9 meses
Puntos: 3
Respuesta: error en mi codigo ¿!?

Cita:
Iniciado por ElJavista Ver Mensaje
Aquí está el error:

mysql_query("INSERT INTO tabla VALUES(`id`,'".$username."', '".$password."', '".$message."')") or die (mysql_error());

Es posible que el número de campos que se intenta ingresar no sea el mismo que existe en la tabla por eso no se sabe qué valor va en cada campo, tienes que hacer la sentencia completa:

$sql = "INSERT INTO tabla (id, username, password, mensaje) VALUES ($id, '$username', '$password', '$mensaje'";

if (mysql_query($sql)) echo "Guardó";
else echo "No guardó";

Te recomiendo que las variables en la sentencia sql no estén concatenadas por punto, no hace falta, basta hacer como yo lo hago, todo dentro de una misma cadena. Por otra parte, es de or die, no es recomendable en estos caso porque finaliza el código, puede mostrarse simplemente un mensaje, no hace falta detener la ejecución. Eso se usa digamos para establecer la conexión, conectarse a la base de datos, o sea, procedimientos que si no se realizan no valdría la pena continuar con el script, entiendes?

Bien, espero que mi aporte te sirva.
Si bien esa idea es buena, para que puedas ver el error, si existe, sin que el código se detenga solo has de hacer:
Código PHP:
<? echo mysql_error(); ?>
Este codigo sirve tanto si lo pones justo después o al final. Todo lo demás, lo que dijo Eljavista: has de especificar en el query las columnas y el orden en el cual quieres meterlos.
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 01:00.