Foros aprenderaprogramar.com

Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: Jigsaw_MGO en 01 de Julio 2015, 16:57

Título: Column count doesn't match value count at row 1 Error php mysql
Publicado por: Jigsaw_MGO en 01 de Julio 2015, 16:57
Hola de nuevo, no quería mezclar dos temas en uno así, en mi aplicación web tengo un administrador de contenidos que permite agregar noticias a la página web principal, pero me aparece éste error.

Column count doesn't match value count at row 1

Aquí les adjunto el código...
Título: Re:Error en mi Administrador de contenidos - Aplicación Web
Publicado por: Mastermind en 02 de Julio 2015, 21:11
Hola

La tabla dbo_news parece tener 16 columnas

Código: [Seleccionar]
CREATE TABLE IF NOT EXISTS `dbo_news` (
  `nt_id` int(10) unsigned NOT NULL,
  `nt_titulo` varchar(80) NOT NULL,
  `nt_img_principal` varchar(150) NOT NULL,
  `nt_img_resumen` varchar(150) NOT NULL,
  `nt_img_resumen_texto` varchar(78) NOT NULL,
  `nt_texto_titulo` text NOT NULL,
  `nt_texto_resumen` text NOT NULL,
  `nt_texto_noticia` text NOT NULL,
  `nt_img_portada` varchar(150) NOT NULL,
  `nt_img_portada_texto` varchar(120) NOT NULL,
  `nt_carga_fecha` date NOT NULL,
  `nt_carga_hora` varchar(50) NOT NULL,
  `nt_carga_usuario` varchar(100) NOT NULL,
  `nt_carga_tipo` varchar(15) NOT NULL,
  `nt_carga_galeria_ref` varchar(5) NOT NULL,
  `nt_carga_stat` varchar(45) NOT NULL
)
 

Pero la consulta parece que solo inserta datos para quince columnas
 
              
Código: [Seleccionar]
$sql="INSERT INTO dbo_news VALUES('', 1
'".utf8_decode($_POST['titulo'])."', 2
'".$imgprincipal."', 3
'".$imgresumen."', 4
  '".utf8_decode($_POST['img_resumen_texto'])."', 5
  '".utf8_decode($_POST['texto_titulo'])."', 6
  '".utf8_decode($_POST['texto_resumen'])."', 7
  '".utf8_decode(nl2br($_POST['texto_noticia']))."', 8
  '".$imgportada."', 9
  '".utf8_decode($_POST['img_portada_texto'])."', 10
  '".$fecha_normal."', 11
  '".$fecha_hora."', 12
  '".$_POST['redactor']."', 13
  '".$_POST['carga_tipo']."', 14
  '1' 15
  )";

Comprueba bien que se haga una inserción de un valor correcto para cada columna.

Por mensajes echo justo antes de hacer la consulta de insert a la base de datos y verifica cuántos valores vas a insertar en la tabla y cuál es el contenido que llevan.

Saludos
Título: Re:Error en mi Administrador de contenidos - Aplicación Web
Publicado por: Jigsaw_MGO en 03 de Julio 2015, 02:40
Buenas noches y gracias por tu respuesta, pensé que nadie respondería por lo extenso de mis explicaciones xD, bueno se me olvidó mencionar que no soy muy bueno en éste tema de SQL y PHP, no quiero ser un fastidio, pero podrías revisar el modif_nws_add? y comparar que campo falta?, es que desde la casa tengo acceso al servidor del hosting mediante filezilla, pero al instalar xampp y abrirlo aquí en casa, no es lo mismo que en el trabajo y no puedo ver la base de datos que está en el servidor, sólo veo las locales...

Los campos en modif_nws_add.php son:

1 Tipo de carga (elegir opción en combobox)
2 Título
3 Autor
4 Fecha (tres combos, día, mes y año)
5 Cuerpo noticia - antetítulo
6 Cuerpo noticia - resumen
7 Cuerpo noticia - texto
8 Texto imagen resumen
9 Texto en portada
10 Imagen portada (examinar archivo)
11 Imagen principal (examinar archivo)
12 Imagen resumen (examinar archivo)
Título: Re:Column count doesn't match value count at row 1 Error php mysql
Publicado por: Jigsaw_MGO en 03 de Julio 2015, 15:27
Ya tomé fotos al la base de datos pero son muy grandes :(

Tengo ésto en el código
Código: [Seleccionar]


<?php
ob_start
();
@
session_start();
require_once(
"../lib.php");
if(isset(
$_SESSION['usuario']) and $_SESSION['estado'] == 'Autenticado'){
?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="css/dt_formas.css" rel="stylesheet" type="text/css" />
<title>Agregar Noticias</title>
</head>

<body>

<?php
require_once("../lib.php");
if(isset(
$_POST['procesar'])){
if(move_uploaded_file($_FILES['img_principal']['tmp_name'],$img_principal="../img/nws/".@date("Ymdhis")."_p.jpg")){
$imgprincipal=substr($img_principal,3,strlen($img_principal));
if(move_uploaded_file($_FILES['img_resumen']['tmp_name'],$img_resumen="../img/nws/".@date("Ymdhis")."_r.jpg")){
$imgresumen=substr($img_resumen,3,strlen($img_resumen));
if(move_uploaded_file($_FILES['img_portada']['tmp_name'],$img_portada="../img/nws/".@date("Ymdhis")."_pt.jpg")){
$imgportada=substr($img_portada,3,strlen($img_portada));
$fecha_normal=$_POST['ev_year']."-".$_POST['ev_month']."-".$_POST['ev_day'];
$fecha_hora=@date("H:i:s");
$sql="INSERT INTO dbo_news VALUES('',
  '"
.utf8_decode($_POST['titulo'])."',
  '"
.$imgprincipal."',
  '"
.$imgresumen."',
  '"
.utf8_decode($_POST['img_resumen_texto'])."',
  '"
.utf8_decode($_POST['texto_titulo'])."',
  '"
.utf8_decode($_POST['texto_resumen'])."',
  '"
.utf8_decode(nl2br($_POST['texto_noticia']))."',
  '"
.$imgportada."',
  '"
.utf8_decode($_POST['img_portada_texto'])."',
  '"
.$fecha_normal."',
  '"
.$fecha_hora."',
  '"
.$_POST['redactor']."',
  '"
.$_POST['carga_tipo']."',
  '1'
  )"
;
if(mysql_query($sql)){
?>

<script>
alert('La carga se ha realizado correctamente.')
//opener.document.location.reload();
//window.close();
</script>
<?php
} else{
print mysql_error();
?>

<script> alert('Ha ocurrido un error. Por favor intente nuevamente.') </script>
<?php
}
} else{
?>

<script> alert('Error al subir la imagen de portada.') </script>
<?php
}
} else{
?>

<script> alert('Error al subir la imagen de resumen.') </script>
<?php
}
} else{
?>

<script> alert('Error al subir la imagen principal.') </script>
<?php
}
}
?>

<div id="form_textos" style="text-align:left; top:100px;">
<form name="noticia_principal" method="post" enctype="multipart/form-data">
    Tipo de Carga<br/>
    <select style="width:323px;" name="carga_tipo">
    <option>-- Seleccione una opcion--</option>
        <option value="NOTICIA">NOTICIA</option>
        <option value="EVENTO">EVENTO</option>       
    </select>
    Titulo<br/>
    <input size="49" type="text" name="titulo" maxlength="80"/><br/>
    Autor<br/>
    <input size="49" type="text" name="redactor" maxlength="80"/><br/>
    Fecha:<br/>
    <select style="width:90px;" name="ev_day">
    <option>-- DIA --</option>
        <option value="01">01</option>
        <option value="02">02</option>
        <option value="03">03</option>
        <option value="04">04</option>
        <option value="05">05</option>
        <option value="06">06</option>
        <option value="07">07</option>
        <option value="08">08</option>
        <option value="09">09</option>
        <option value="10">10</option>
        <option value="11">11</option>
        <option value="12">12</option>
        <option value="13">13</option>
        <option value="14">14</option>
        <option value="15">15</option>
        <option value="16">16</option>
        <option value="17">17</option>
        <option value="18">18</option>
        <option value="19">19</option>
        <option value="20">20</option>
        <option value="21">21</option>
        <option value="22">22</option>
        <option value="23">23</option>
        <option value="24">24</option>
        <option value="25">25</option>
        <option value="26">26</option>
        <option value="27">27</option>
        <option value="28">28</option>
        <option value="29">29</option>
        <option value="30">30</option>
        <option value="31">31</option>
    </select>
    <select style="width:90px;" name="ev_month">
    <option>-- MES --</option>
        <option value="01">Enero</option>
        <option value="02">Febrero</option>
        <option value="03">Marzo</option>
        <option value="04">Abril</option>
        <option value="05">Mayo</option>
        <option value="06">Junio</option>
        <option value="07">Julio</option>
        <option value="08">Agosto</option>
        <option value="09">Septiembre</option>
        <option value="10">Octubre</option>
        <option value="11">Noviembre</option>
        <option value="12">Diciembre</option>
    </select>
    <select style="width:90px;" name="ev_year">
    <option>-- AÑO --</option>
        <option value="2010">2010</option>
        <option value="2011">2011</option>
        <option value="2012">2012</option>
        <option value="2013">2013</option>
        <option value="2014">2014</option>
        <option value="2015">2015</option>
        <option value="2016">2016</option>
        <option value="2017">2017</option>
        <option value="2018">2018</option>
        <option value="2019">2019</option>
        <option value="2020">2020</option>
    </select><br/>
    Cuerpo Noticia - anteTitulo<br/>
    <textarea id="texto_titulo" rows="2" cols="37" name="texto_titulo" ></textarea><br/>
    Cuerpo Noticia - Resumen<br/>
    <textarea id="texto_resumen" rows="2" cols="37" name="texto_resumen" ></textarea><br/>
    Cuerpo Noticia - Texto<br/>
    <textarea id="texto_noticia" rows="5" cols="37" name="texto_noticia" ></textarea><br/>
    Texto Imagen Resumen<br/>
    <input size="49" type="text" name="img_resumen_texto" maxlength="78"/><br/>
    Texto en Portada<br/>
    <input size="49" type="text" name="img_portada_texto" maxlength="120"/><br/>
    Imágen Portada (200px X 80px)<br/>
    <input size="35" type="file" name="img_portada" /><br/>
    Imágen Principal (675px X 173px)<br/>
    <input size="35" type="file" name="img_principal" /><br/>
    Imágen Resumen (230px X 130px)<br/>
    <input size="35" type="file" name="img_resumen" /><br/>
    <br/><br/>
    <input type="submit" name="procesar" value="Procesar"/>
</form>
</div>


</body>
</html>

<?php
}
else
{
// Usuario que no se ha logueado
echo "No tienes permiso para entrar a esta pagina";
exit();
}
ob_end_flush();
?>




No sé que me falta D: sigo con ese error, ya tengo 3 semanas con eso plz help


Enlaces a Dropbox:

https://www.dropbox.com/s/z3d1ywix58uouie/Captura%20de%20pantalla%202015-07-03%2009.04.04.png?dl=0


https://www.dropbox.com/s/rn9cpp5cjzxxxko/Captura%20de%20pantalla%202015-07-03%2009.03.58.png?dl=0

https://www.dropbox.com/s/ib1d8s2boud067w/Captura%20de%20pantalla%202015-07-03%2009.03.49.png?dl=0
Título: Re:Column count doesn't match value count at row 1 Error php mysql
Publicado por: Jigsaw_MGO en 05 de Julio 2015, 04:25
Nada? :_( ya intenté borrando columnas en la bd y nada
Título: Re:Column count doesn't match value count at row 1 Error php mysql
Publicado por: César Krall en 15 de Julio 2015, 19:03
Hola! Creo que podría ser útil que determines cuál es la consulta que tratas de ejecutar usando un echo después de la sentencia $sql="INSERT INTO dbo_news VALUES('', ... , etc.

Escribe luego:

echo 'La consulta a ejecutar es '.$sql;

Copia la consulta a ejecutar.

Luego vete al panel de administración del servidor y accede a la base de datos con phpMyAdmin. Trata de ejecutar la consulta desde phpMyAdmin y determina desde ahí qué es lo que falla.

También revisa http://aprenderaprogramar.com/index.php?option=com_content&view=article&id=615:php-insert-into-values-insertar-datos-registros-filas-en-base-de-datos-mysql-ejemplos-y-ejercicio-cu00843b&catid=70:tutorial-basico-programador-web-php-desde-cero&Itemid=193

Hay algunos aspectos importantes que se comentan ahí por ejemplo "Tener en cuenta que debemos indicar los datos en el mismo orden en que se encuentran las columnas en la tabla."

Saludos!
Título: Re:Column count doesn't match value count at row 1 Error php mysql
Publicado por: Jigsaw_MGO en 21 de Julio 2015, 16:48
Saludos César ya lo solucioné, gracias por responder!!
Título: Re:Column count doesn't match value count at row 1 Error php mysql
Publicado por: César Krall en 22 de Julio 2015, 21:51
Hola, pues indica cómo lo solucionaste y pega el código... así ayudamos a otras personas que tengan el mismo problema.

Saludos!