Foros del Web » Programando para Internet » PHP »

Ayuda en Base de Datos

Estas en el tema de Ayuda en Base de Datos en el foro de PHP en Foros del Web. Hola a todos, necesito que me ayuden es urgente. Tengo unos datos que envio a una pagina desde un formulario y cuando se supone que ...
  #1 (permalink)  
Antiguo 29/11/2005, 06:55
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
Pregunta Ayuda en Base de Datos

Hola a todos, necesito que me ayuden es urgente. Tengo unos datos que envio a una pagina desde un formulario y cuando se supone que deberia de ingresar los datos a mi base no lo hace, pero hay unos datos en blanco es posible que se puedan ingresar a la bd(en blanco/vacio), y eso que he puesto mis campos como NULL.

Saludos a todos

Última edición por lily_cv; 29/11/2005 a las 07:19
  #2 (permalink)  
Antiguo 29/11/2005, 07:01
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Si quieres ayuda "urgente" .. recuerda que SIEMPRE! debes adjuntar el código que te dé problemas y si hay mensaje de error (si corresponde) también .. textual tal cual lo veas.

Cuando pongas el código empezaran las preguntas sobre el mismo o recomendaciones .. antes todo lo que se pueda decir sobre "prueba aquí o allá" tal vez te sirva como que nó .. así que para que no pierdas tiempo; directamente muestra todos los antecedentes del problema que tengas.

Un saludo,
  #3 (permalink)  
Antiguo 29/11/2005, 07:18
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
El problema es solo eso si puedo insertar a mi base datos en blanco por siacaso envio este codigo :

mysql_query("insert into distribuidores(item,nombres,n_sobre,cliente,consig nado,direccion,distrito,observacion,provincia,etra nsp,tpaq,fecha,trec,nrec,id_acceso,nman,nacceso,pe so,tpeso,fechaactual)
values ($j,'$Xnombres','$Xns','$Xcli','$Xcon','$Xdir','$X dis','$Xobs','$Xprov','$Xetransp','$Xtpaquete','$X fech','$Xtdoc','$Xnrec',$Xid_acceso,$Xman,$Xnumacc eso,$Xpeso,'$Xtpeso','$Xfactual')",$link);
  #4 (permalink)  
Antiguo 29/11/2005, 07:24
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
Código PHP:

mysql_query
("insert into distribuidores(item,nombres,n_sobre,cliente,consig nado,direccion,distrito,observacion,provincia,etra nsp,tpaq,fecha,trec,nrec,id_acceso,nman,nacceso,pe so,tpeso,fechaactual)
values ('$j','$Xnombres','$Xns','$Xcli','$Xcon','$Xdir','$X dis','$Xobs','$Xprov','$Xetransp','$Xtpaquete','$X fech','$Xtdoc','$Xnrec','$Xid_acceso','$Xman','$Xnumacceso','$Xpeso','$Xtpeso','$Xfactual')"
,$link); 
Agregué apostrofes en todos los campos. La idea es que si una variable que no va entre ' es vacía quedaría ..., ,... y generaría error en MySQL. Si le ponés apostrofes quedaría ..., '', ...
  #5 (permalink)  
Antiguo 29/11/2005, 07:27
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
esas variables que estan sin apostrofe con variables de tipo num entero eso no tendria nada que ver?. voy a probar. Gracias
  #6 (permalink)  
Antiguo 29/11/2005, 07:27
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
La otra opción es que las variables que no están entre apostrofes hacer que si son vacias se reemplacen por NULL. Ej.:

Código PHP:
if (empty($Xid_acceso)) {
  
$Xid_acceso "NULL";
}

if (empty(
$Xman)) {
  
$Xman "NULL";
}
if (empty(
$Xnumacceso)) {
  
$Xnumacceso "NULL";
}
if (empty(
$Xpeso)) {
  
$Xpeso "NULL";

  #7 (permalink)  
Antiguo 29/11/2005, 07:30
Avatar de deadlykyo  
Fecha de Ingreso: noviembre-2005
Ubicación: Cbba - Bolivia
Mensajes: 747
Antigüedad: 12 años
Puntos: 5
Bueno segun lo que probe (por lo menos en con mi mysql 4.1.7 ) si tienes un insert con datos en blanco igual haria el insert
INSERT INTO tabla VALUES ('', 'valor', 'valor2', ' ');
si es que no existen dos filas iguales por lo menos en sus llaves primarias
  #8 (permalink)  
Antiguo 29/11/2005, 07:34
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
Ok, amigos miren este es mi codigo completo, espero que no se aburran necesito que me ayuden miren esto.

<?php
$Xl = $txtl;
$Xp = $txtp;
$Xcant = $txtc;
$Xfactual = $factual;
if ($Xl == "")
{
Header("Location: acceso.php");
}
include('conexiond.php');
$link=Conectarse();

$Rsnumintreportes = mysql_query("select max(nacceso) as numacceso from distribuidores",$link);
$FilaClie = mysql_fetch_array($Rsnumintreportes);
$Xnumacceso = $FilaClie["numacceso"]+1;

$Rsnman = mysql_query("select nman from distribuidores",$link);
$Xnmanifiesto = mysql_fetch_array($Rsnman);

$Xman = $_POST['txtm'];
if ($Xnmanifiesto[0]==$Xman){}
else{
$j=0;
for ($i = 1;$i <= $Xcant;$i++)
{
$xchk = $_POST["chk".$i];

if ($xchk==""){
$Xns = ns.$i;
$Xcli = cli.$i;
$Xcon = con.$i;
$Xdir = dire.$i;

$Xdis = dis.$i;

$Xciu = ciu.$i;
$Xobs = obs.$i;
$Xpeso = peso.$i;
$Xtpeso = txttpeso.$i;
$Xtpaquete = tpaquete.$i;

$Xns = $_POST["$Xns"];
$Xcli = $_POST["$Xcli"];
$Xcon = $_POST["$Xcon"];
$Xdir = $_POST["$Xdir"];

$Xdis = $_POST["$Xdis"];

$Xobs = $_POST["$Xobs"];
$Xpeso = $_POST["$Xpeso"];
$Xtpeso = $_POST["$Xtpeso"];
$Xtpaquete = $_POST["$Xtpaquete"];

$Xid_acceso = trim($_POST['txtacceso']);
$Xnombres = trim($_POST['txtnombres']);
$Xetransp = trim($_POST['txtetransp']);
$Xtdoc = trim($_POST['tdoc']);
$Xnrec = trim($_POST['n_recibo']);
$Xfech = trim($_POST['txtfecha1']);
$Xprov = $_POST['txtprov'];

$j=$j+1;


mysql_query("insert into distribuidores(item,nombres,n_sobre,cliente,consig nado,direccion,distrito,observacion,provincia,etra nsp,tpaq,fecha,trec,nrec,id_acceso,nman,nacceso,pe so,tpeso,fechaactual)
values ($j,'$Xnombres','$Xns','$Xcli','$Xcon','$Xdir','$X dis','$Xobs','$Xprov','$Xetransp','$Xtpaquete','$X fech','$Xtdoc','$Xnrec',$Xid_acceso,$Xman,$Xnumacc eso,$Xpeso,'$Xtpeso','$Xfactual')",$link);
}
}
}?>

Las variables que guardo en los '$X...' son datos de mi formulario de la pagina anterior
  #9 (permalink)  
Antiguo 29/11/2005, 07:38
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
Gracias Sepo me sirvio el codigo que me diste, y gracias tambien a todos. NOs vemos.
Besitos
  #10 (permalink)  
Antiguo 29/11/2005, 07:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
lily_cv

El problema es solo eso si puedo insertar a mi base datos en blanco por siacaso envio este codigo

En principio si .. siempre que en tu tabla y campo implicado (el que desees dejarlo como null) no indiques "not null" .. por qué así forzaras a que tenga valor. Pero, .. aunque lo indiques así si tu haces values ($variable) ya le estás dando valor .. concretamente una "cadena vacia" (pero no es NULL es '').

Un saludo,
  #11 (permalink)  
Antiguo 29/11/2005, 07:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Cita:
Iniciado por Seppo
La otra opción es que las variables que no están entre apostrofes hacer que si son vacias se reemplacen por NULL. Ej.:

Código PHP:
if (empty($Xid_acceso)) {
  
$Xid_acceso "NULL";
}

if (empty(
$Xman)) {
  
$Xman "NULL";
}
if (empty(
$Xnumacceso)) {
  
$Xnumacceso "NULL";
}
if (empty(
$Xpeso)) {
  
$Xpeso "NULL";

Sólo una comprobación .. si tu campo es numérico . usa NULL como constante . .sin "comillas" para el NULL En:

$Xid_acceso = NULL;

Compruebalo .. por qué no es lo mismo "NULL" (Cadena) que NULL (vacio)

Un saludo,
  #12 (permalink)  
Antiguo 29/11/2005, 07:46
Avatar de lily_cv  
Fecha de Ingreso: noviembre-2005
Mensajes: 165
Antigüedad: 12 años
Puntos: 0
ok, gracias cluster ;)
  #13 (permalink)  
Antiguo 29/11/2005, 14:35
Avatar de jair20x  
Fecha de Ingreso: noviembre-2005
Ubicación: Madrid - España
Mensajes: 531
Antigüedad: 12 años
Puntos: 1
Sonrisa

**
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 03:55.