Autor Tema: Inquietud PHP (Ayuda)  (Leído 1994 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado xXMaximoXx

  • Trade Count: (1)
  • Sv Member
  • ***
  • Thank You
  • -Given: 9
  • -Receive: 30
  • Mensajes: 166
Inquietud PHP (Ayuda)
« : agosto 25, 2013, 09:43:22 am »
Buenos dias Comunos.

tengo una pequeña duda con respecto a una inserción a mi base de datos la cual me genera el siguiente mensaje

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

Consultando he leido que estoy o ingresando mas datos de los que la tabla tiene o ingresando menos datos y hay un campo no null. Pero cuento y recuento mis campos y veo los mismos (he de estar mas ciego creo)

Asi que vengo a requerir de sus ojos y sabiduria por si ustedes ven algun error en el que me puedan ayuda.

Código: [Seleccionar]
?php


if (isset($_POST['Ingresar']))
{
$conexion=mysql_connect("localhost","root");
$bd=mysql_select_db("Inventario",$conexion) or die ("No se puede seleccionar Base de datos");
$tabla="Proveedores";
$insercion="INSERT INTO $tabla (Id_Proveedor,Nombre,Categoria,Correo,Telefono,Direccion) values('$_POST[Codigo]','$_POST[Nombre]','$_POST[Categoria]','$_POST[Correo]''$_POST[Telefono]','$_POST[Direccion]')";
$resultado=mysql_query($insercion, $conexion) or die (mysql_error());
if ($resultado)
{
   ?>
   <script>
alert("Proveedor Ingresado Correctamente");
   </script>
   <?php
}
else
{
      
?>

         <script>
         alert("Datos Incorrectos");
         </script>
      <?php
   
}
}
?>

Código: [Seleccionar]
<?php
     
print("<BR>");
     print(
"<form action='Ingresar_Proveedores.php' method='post' name='Ingresar'>\n");
     print(
"<BR>");
     print(
"<LABEL><b>Id de Proveedor:</b></LABEL>&nbsp;<INPUT TYPE='TEXT' NAME='Codigo' SIZE='4'>\n");        
     print(
"<LABEL><b>Nombre:</b></LABEL>&nbsp;<INPUT TYPE='TEXT' NAME='Nombre' SIZE='25'>\n");
     print(
"<LABEL><b>Categoria:</b>");
     print(
"<select name ='Categoria' >\n");
     print(
"<option value=Interno>Interno</option>\n");
     print(
"<option value=Externa>Externa</option>\n");
     print(
"</select>");
     print(
"<BR>\n");
     print(
"<BR>\n");
     print(
"<LABEL><b>Correo:</b></LABEL>&nbsp;<INPUT TYPE='TEXT' NAME='Correo' SIZE=25'>\n");        
     print(
"<LABEL><b>Telefono:</b></LABEL>&nbsp;<INPUT TYPE='TEXT' NAME='Telefono' SIZE='9'>\n");
     print(
"<BR>\n");
     print(
"<BR>\n");
     print(
"<LABEL><b>Direccion:</b></LABEL>&nbsp;<INPUT TYPE='TEXT' NAME='Direccion' SIZE='50'>\n");
     print(
"<BR>\n");
     print(
"<BR>\n");
     print(
"<INPUT TYPE='SUBMIT' VALUE='Guardar' name = 'Ingresar'></P>\n");
     print(
"</FORM>\n");           
?>
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado kikeuntercio

  • Sv Vampire Team ®
  • Trade Count: (2)
  • The Communiter-
  • ***
  • Thank You
  • -Given: 7
  • -Receive: 6
  • Mensajes: 1543
  • -] java Adict [-
    • Escuela Latinoamericana ELA
Re:Inquietud PHP (Ayuda)
« Respuesta #1 : agosto 25, 2013, 03:02:17 pm »
a simple vista te falta una coma:

$insercion="INSERT INTO $tabla (Id_Proveedor,Nombre,Categoria,Correo,Telefono,Direccion) values('$_POST[Codigo]','$_POST[Nombre]','$_POST[Categoria]','$_POST[Correo]' , '$_POST[Telefono]','$_POST[Direccion]')";


y lo otro es que yo puedo notar según mi forma de programar que estas enlazando mal los strings, yo creo que deberia de ser:
Citar
$insercion="INSERT INTO ".$tabla." (Id_Proveedor,Nombre,Categoria,Correo,Telefono,Direccion) values('".$_POST['Codigo']."','".$_POST['Nombre']."','".$_POST['Categoria']."','".$_POST['Correo'].''','".$_POST['Telefono']."','".$_POST['Direccion']."')";
pero prueba primero corrigiendo la coma haber si te sale XD
Follow members gave a thank to your post:
« Última Modificación: agosto 25, 2013, 03:05:42 pm por kikeuntercio »

Desconectado Jaru

  • Trade Count: (21)
  • The Communiter-
  • *
  • Thank You
  • -Given: 782
  • -Receive: 1555
  • Mensajes: 13248
  • -text
Re:Inquietud PHP (Ayuda)
« Respuesta #2 : agosto 25, 2013, 04:07:39 pm »
porque usas tanto print para imprimir html?

bien podrias cerrar el php, meter todo el código html que queras y abrir php cada vez que lo quera usar, o mejor aun usar templates y llamarlos leyendo los archivos
Follow members gave a thank to your post:
N/A

Desconectado xXMaximoXx

  • Trade Count: (1)
  • Sv Member
  • ***
  • Thank You
  • -Given: 9
  • -Receive: 30
  • Mensajes: 166
Re:Inquietud PHP (Ayuda)
« Respuesta #3 : agosto 25, 2013, 11:44:32 pm »
a simple vista te falta una coma:

$insercion="INSERT INTO $tabla (Id_Proveedor,Nombre,Categoria,Correo,Telefono,Direccion) values('$_POST[Codigo]','$_POST[Nombre]','$_POST[Categoria]','$_POST[Correo]' , '$_POST[Telefono]','$_POST[Direccion]')";


y lo otro es que yo puedo notar según mi forma de programar que estas enlazando mal los strings, yo creo que deberia de ser:pero prueba primero corrigiendo la coma haber si te sale XD

Muchas gracias por tu ayuda, el error estaba como tu bien lo indicabas en una simple y vaga (,). Ya era tarde y la prisa quizas me comio. Con respecto a la cadena yo lo hacia antes asi pero me paso en muchas ocasiones que la falta de alguna de las comillas ya sea simple o dobles me daba lata cuando me tocaba buscarlas. "''"  :sur:

porque usas tanto print para imprimir html?

bien podrias cerrar el php, meter todo el código html que queras y abrir php cada vez que lo quera usar, o mejor aun usar templates y llamarlos leyendo los archivos

Tomare muy en cuenta el consejo Naruto, ya que en realidad si es algo tedioso el hecho de meter todo en print. Pero como dicen en el camino uno se va puliendo!  :thumbsup:
El general que se convirtió en esclavo,
El esclavo que se convirtió en gladiador,
El gladiador que desafió a un imperio...

Desconectado edu_guerr

  • Trade Count: (0)
  • Sv Member
  • ***
  • Thank You
  • -Given: 51
  • -Receive: 70
  • Mensajes: 463
Re:Inquietud PHP (Ayuda)
« Respuesta #4 : agosto 26, 2013, 09:01:07 am »
También podrías a empezar a familiarizarte con  MySQLi o PDO_MySQL, en lugar de usar Mysql (veo que estas usando mysql_connect, mysql_select_db...).

Citar
Esta extensión está obsoleta a partir de PHP 5.5.0 y no está recomendada para escribir código nuevo, ya que será eliminada en el futuro. En su lugar, se debería utilizar la extensión mysqli o PDO_MySQL. Véase también la Información general de la API de MySQL para obtener ayuda al elegir una API de MySQL.


http://www.php.net/manual/es/intro.mysql.php