Foros del Web » Programando para Internet » PHP »

Column count doesn't match value count at row 1

Estas en el tema de Column count doesn't match value count at row 1 en el foro de PHP en Foros del Web. Me rindo, nosé que me pasa: Código PHP: <?php include( "conexion.php" ); $titulo  =  $_POST [ "titulo" ]; $texto  =  htmlentities ( $_POST [ "texto" ...
  #1 (permalink)  
Antiguo 18/10/2010, 18:51
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Column count doesn't match value count at row 1

Me rindo, nosé que me pasa:

Código PHP:
<?php

include("conexion.php");


$titulo $_POST["titulo"];
$texto htmlentities($_POST["texto"]);
$_SESSION["k_username"] = $usuario ;
$insertar_ides "INSERT INTO contenido (id, titulo,tutorial,usuario, hora)  VALUES ('', '$titulo', '$tutorial', '$usuario', '')";
mysql_query($sql$db);

?>

Tengo un form llamado "Upload.php" el cual tiene CKeditor, se pasa la variable $texto por $_POST y llega al htmlentities para sacar el codigo html e insertar texto puro a la bd, la bd tiene estas caracteristicas:



Agradesco la voluntad de responderme, no tuve un buen dia hoy, y esto me saco de cabos -.-

Saludos cordiales !.


edit: es entendible que mi problema esta en el INSERT INTO xD. Perdón me colgué.
  #2 (permalink)  
Antiguo 18/10/2010, 18:59
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Column count doesn't match value count at row 1

viendo tu codigo te falta el session_start al principio de la pagina o lo tienes dentro del conexion.php?? para que reconosca la variable de session, en la consulta si estas colocando los campos para que colocas el autoincremento?? no es necesario, la variable se llama es $texto no $tutorial, estas asignando al reves la variable a la variable de sesion la variable $usuario que esta vacia por lo que estarias vaciando la variable y finalmente depura la consulta a ver que te dice quedaria asi
Código PHP:
Ver original
  1. <?php
  2. //no inclui el session_start porq no se si lo tienes dentro del archivo
  3. include("conexion.php");
  4.  
  5.  
  6. $titulo = $_POST["titulo"];
  7. $texto = htmlentities($_POST["texto"]);
  8. $usuario  =$_SESSION["k_username"];
  9. $insertar_ides = "INSERT INTO contenido (titulo,tutorial,usuario, hora)  VALUES ('$titulo', '$texto ', '$usuario', '')";
  10. mysql_query($sql, $db) or die (mysql_error());
  11.  
  12. ?>
pruebalo y cuentas
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #3 (permalink)  
Antiguo 18/10/2010, 19:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Column count doesn't match value count at row 1

los valores automáticos no debes especificarlos en tu consulta, en este caso el id y la hora son campos automáticos...

una pregunta, ¿porque citaste una segunda ves tu primer mensaje?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 18/10/2010, 20:00
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

$insertar_ides = "INSERT INTO contenido (id, titulo,tutorial,usuario, hora) VALUES ('', '$titulo', '$tutorial', '$usuario', '')";

Porque me equivoque ahi, y como ya habia editado, no me di cuenta que al y le di citar, era $sql= "INSERT INTO contenido (id, titulo,tutorial,usuario, hora) VALUES ('', '$titulo', '$tutorial', '$usuario', '')";


Ahora probaré, muchas gracias chicos :) !

me duele mucho la cabeza, disculpen x(
  #5 (permalink)  
Antiguo 18/10/2010, 20:13
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Miren, casi todo (muchas gracias de antemano) pero no inserta $_POST("texto") (Eso viene del formaction del CKeditor) Trate de sacarle el htmlentities pero no es eso, supongo que es el campo "tutorial" que es del tipo text, y el campo "hora" no funciona, tiene el update cada vez que se edite.
  #6 (permalink)  
Antiguo 18/10/2010, 20:15
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

<form action="updoc.php" method="post">
<label> Titulo (Maximo 300 Caracteres):<br />
<input type="text" name="titulo" id="titulo" />
</label>
<br />
Contenido (Maximo 100.000 Caracteres):<br />
<label>
<input type="text" name="texto" id="texto" />
<br />
</label>

<input type="submit" value="Cargar" />
<script type="text/javascript">
CKEDITOR.replace( 'texto',
{
toolbar :
[
['Styles', 'Format'],
['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', '-', 'About']
]

} );
</script>
</form>


Este es el formulario de donde se realiza. (upload.php)
  #7 (permalink)  
Antiguo 18/10/2010, 20:30
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Column count doesn't match value count at row 1

en primer lugar el control HTML debería ser un <textarea/> y no un <input/>

el segundo problema es que si defines $texto pero jamás la usas en tu consulta...

ahora, solamente tu conoces las columnas de tu tabla... si dices que es alguna tipo TEXT puede que tengas razón, sin embargo sigues omitiendo usar dicha variable para dicho campo!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #8 (permalink)  
Antiguo 18/10/2010, 21:03
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Esto es en updoc.php:


Código PHP:
 <?php
      session_start
();
      include(
"conexion.php");
      
$titulo $_POST["titulo"];
      
$texto $_POST["texto"]);
      
$usuario  $_SESSION["k_username"];
      
$sql "INSERT INTO contenido (titulo,tutorial,usuario)  VALUES ('$titulo', '$texto', '$usuario')";
      
mysql_query($sql$db) or die (mysql_error());
       
      
?>
A mi entender $texto lo uso, capas mi logica es muy mala x(
Esto es en upload.php:


Cita:
<form action="updoc.php" method="post">

<label> Titulo (Maximo 300 Caracteres):<br />

<textarea type="text" name="titulo" id="titulo" />

</label>

<br />

Contenido (Maximo 100.000 Caracteres):<br />

<label>

<textarea type="text" name="texto" id="texto" />

<br />

</label>

<input type="submit" value="Cargar" />

<script type="text/javascript">

CKEDITOR.replace( 'texto',
{
toolbar :
[
['Styles', 'Format'],
['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', '-', 'About']
]

} );
</script>
</form>
Mi idea principal es copiar todo el contenido del CKeditor en el campo, si logro hacerlo ahora mañana me buscaré alguna libreria para evitar la injeccion XSS en el muestreo del campo.
El tipo de campo es TEXT ( quiero que entren 200.000 caracteres si es posible )
  #9 (permalink)  
Antiguo 18/10/2010, 21:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Column count doesn't match value count at row 1

una prueba mas...

en lugar de ejecutar la consulta intenta imprimirla y verificar que contiene los valores que obtienes del formulario...
Código PHP:
echo htmlspecialchars($sql); 
¿todo bien?
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #10 (permalink)  
Antiguo 18/10/2010, 21:51
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Código PHP:
            <?php
      session_start
();
      include(
"conexion.php");
      
$titulo $_POST["titulo"];
      
$texto htmlentities($_POST["texto"]);
      
$usuario  =$_SESSION["k_username"];
      
$sql "INSERT INTO contenido (titulo,tutorial,usuario, hora)  VALUES ('$titulo', '$texto ', '$usuario', '')";
      
mysql_query($sql$db) or die (mysql_error());

echo 
htmlspecialchars($sql);

      
?>
Me devuelve esto:

INSERT INTO contenido (titulo,tutorial,usuario, hora) VALUES ('aaaaaaa', ' ', 'jaja', '')

Sigo pensando que el problema puede ser el tipo de campo de "tutorial" que es tipo "TEXT", por ahi vi un varchar de 1000, pero hasta mi entender los varchar son de 255 no ?, lo unico que quiero es guardar lo que esta dentro del ckeditor xD.

Agradesco de antemano.
  #11 (permalink)  
Antiguo 19/10/2010, 00:38
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Column count doesn't match value count at row 1

el problema no viene del SQL, mas bien la variable realmente no contiene o esta mal declarada...

intenta esto en tu script:
Código PHP:
print_r($_POST); 
ahí debería mostrar los índices que se enviaron del formulario, observa si aparece o no ahí lo que necesitas... (:
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #12 (permalink)  
Antiguo 19/10/2010, 16:30
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Me sale esto:

Array ( [titulo] => a [texto] => )


En realidad nosé que es, disculpa las molestias.
  #13 (permalink)  
Antiguo 19/10/2010, 16:38
Avatar de carlos_belisario
Colaborador
 
Fecha de Ingreso: abril-2010
Ubicación: Venezuela Maracay Aragua
Mensajes: 3.156
Antigüedad: 14 años
Puntos: 461
Respuesta: Column count doesn't match value count at row 1

pues no te esta trayendo los datos del formulario el titulo si pero el texto no verifica tu formulario a ver xq no te trae el textarea
__________________
aprende d tus errores e incrementa tu conocimientos
it's not a bug, it's an undocumented feature By @David
php the right way
  #14 (permalink)  
Antiguo 19/10/2010, 17:24
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Upload.php

Código HTML:
<form action="updoc.php" method="post">
<label> Titulo (Maximo 300 Caracteres):<br />
<input type="text" name="titulo" id="titulo" />
</label>
<br />
Contenido (Maximo 100.000 Caracteres):<br />
<label>
<input type="text" name="texto" id="texto" />
<br />
</label>

<input type="submit" value="Cargar" />
<script type="text/javascript">
CKEDITOR.replace( 'texto',
{
toolbar :
[
['Styles', 'Format'],
['Bold', 'Italic', '-', 'NumberedList', 'BulletedList', '-', 'Link', '-', 'About']
]

} );
</script>
</form> 
updoc.php:

Código PHP:
            <?php
      session_start
();
      include(
"conexion.php");
      
$titulo $_POST["titulo"];
      
$texto htmlentities($_POST["texto"]);
      
$usuario  =$_SESSION["k_username"];
      
$sql "INSERT INTO contenido (titulo,tutorial,usuario, hora)  VALUES ('$titulo', '$texto ', '$usuario', '')";
      
mysql_query($sql$db) or die (mysql_error());

      
?>
Uso CKeditor, usa un script que convierte el inputbox en el editor "CKeditor". Ayer probé con textarea pero no funciono nada ..
  #15 (permalink)  
Antiguo 19/10/2010, 19:34
Avatar de VbOkonly  
Fecha de Ingreso: julio-2009
Ubicación: San Justo, Buenos Aires, Argentina
Mensajes: 490
Antigüedad: 14 años, 10 meses
Puntos: 5
Respuesta: Column count doesn't match value count at row 1

Me auto-respondo:

Puse el campo "tutorial" de la db en MEDIUMBLOB y me aparecen los bytes en la db.
Imprimi y salió, muchas gracias :D:D !!

Etiquetas: column, count, match, row
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 10:48.