Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

error en mi BD ??

Estas en el tema de error en mi BD ?? en el foro de Mysql en Foros del Web. .. tengo en mi la siguente estructura ... -- phpMyAdmin SQL Dump -- version 2.9.2-rc1 -- http://www.phpmyadmin.net -- -- Servidor: localhost -- Tiempo de generación: ...
  #1 (permalink)  
Antiguo 09/09/2008, 10:51
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta error en mi BD ??

.. tengo en mi la siguente estructura ...

-- phpMyAdmin SQL Dump
-- version 2.9.2-rc1
-- http://www.phpmyadmin.net
--
-- Servidor: localhost
-- Tiempo de generación: 28-08-2008 a las 13:20:08
-- Versión del servidor: 4.0.24
-- Versión de PHP: 5.0.3
--
-- Base de datos: `sigdocindus`
--
CREATE DATABASE `sigdocindus`;
USE sigdocindus;


--
-- Table structure for table `contabilizacioncp`
--

CREATE TABLE `contabilizacioncp` (
`idcont` int(11) NOT NULL auto_increment,
`numdoc` int(5) NOT NULL default '0',
`codcuenta` varchar(8) collate latin1_general_ci NOT NULL default '',
`nitcontab` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcucontab` char(2) collate latin1_general_ci NOT NULL default '',
`debito` double default NULL,
`credito` double default NULL,
`detacontab` text collate latin1_general_ci,
`vrbase` int(11) default NULL,
`naturaleza` char(1) collate latin1_general_ci default NULL,
PRIMARY KEY (`idcont`),
KEY `numdoc` (`numdoc`),
KEY `codcuenta` (`codcuenta`)
) ENGINE=MyISAM AUTO_INCREMENT=2272 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Table structure for table `contabilizacionlr`
--

CREATE TABLE `contabilizacionlr` (
`idcont` int(11) NOT NULL auto_increment,
`numdoc` int(5) NOT NULL default '0',
`codcuenta` varchar(8) collate latin1_general_ci NOT NULL default '',
`nitcontab` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcucontab` char(2) collate latin1_general_ci NOT NULL default '',
`debito` double default NULL,
`credito` double default NULL,
`detacontab` text collate latin1_general_ci,
`vrbase` int(11) default NULL,
`naturaleza` char(1) collate latin1_general_ci default NULL,
PRIMARY KEY (`idcont`),
KEY `numdoc` (`numdoc`),
KEY `codcuenta` (`codcuenta`)
) ENGINE=MyISAM AUTO_INCREMENT=23 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Table structure for table `contabilizacionsr`
--

CREATE TABLE `contabilizacionsr` (
`idcont` int(11) NOT NULL auto_increment,
`numdoc` int(5) NOT NULL default '0',
`codcuenta` varchar(8) collate latin1_general_ci NOT NULL default '',
`nitcontab` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcucontab` char(2) collate latin1_general_ci NOT NULL default '',
`debito` double default NULL,
`credito` double default NULL,
`detacontab` text collate latin1_general_ci,
`vrbase` int(11) default NULL,
`naturaleza` char(1) collate latin1_general_ci default NULL,
PRIMARY KEY (`idcont`),
KEY `numdoc` (`numdoc`),
KEY `codcuenta` (`codcuenta`)
) ENGINE=MyISAM AUTO_INCREMENT=1934 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


--
-- Table structure for table `documentocp`
--

CREATE TABLE `documentocp` (
`numdoc` int(5) NOT NULL auto_increment,
`tipo` char(2) collate latin1_general_ci NOT NULL default '',
`planilla` char(2) collate latin1_general_ci NOT NULL default '',
`anolapso` char(2) collate latin1_general_ci default NULL,
`meslapso` char(2) collate latin1_general_ci default NULL,
`nit` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcu` char(2) collate latin1_general_ci NOT NULL default '',
`anodoc` char(2) collate latin1_general_ci default NULL,
`mesdoc` char(2) collate latin1_general_ci default NULL,
`diadoc` char(2) collate latin1_general_ci default NULL,
`vrdoc` double default NULL,
`detadoc` text collate latin1_general_ci,
`descripuser` varchar(15) collate latin1_general_ci NOT NULL default '',
`cheque` varchar(4) collate latin1_general_ci NOT NULL default '0000',
PRIMARY KEY (`numdoc`),
KEY `indcu` (`indcu`),
KEY `nit` (`nit`),
KEY `tipo` (`tipo`,`planilla`),
KEY `descripuser` (`descripuser`)
) ENGINE=MyISAM AUTO_INCREMENT=889 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Table structure for table `documentolr`
--

CREATE TABLE `documentolr` (
`numdoc` int(5) NOT NULL auto_increment,
`tipo` char(2) collate latin1_general_ci NOT NULL default '',
`planilla` char(2) collate latin1_general_ci NOT NULL default '',
`anolapso` char(2) collate latin1_general_ci default NULL,
`meslapso` char(2) collate latin1_general_ci default NULL,
`nit` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcu` char(2) collate latin1_general_ci NOT NULL default '',
`anodoc` char(2) collate latin1_general_ci default NULL,
`mesdoc` char(2) collate latin1_general_ci default NULL,
`diadoc` char(2) collate latin1_general_ci default NULL,
`vrdoc` double default NULL,
`detadoc` text collate latin1_general_ci,
`descripuser` varchar(15) collate latin1_general_ci NOT NULL default '',
`cheque` varchar(4) collate latin1_general_ci default '0000',
PRIMARY KEY (`numdoc`),
KEY `indcu` (`indcu`),
KEY `nit` (`nit`),
KEY `tipo` (`tipo`,`planilla`),
KEY `descripuser` (`descripuser`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Table structure for table `documentosr`
--

CREATE TABLE `documentosr` (
`numdoc` int(5) NOT NULL auto_increment,
`tipo` char(2) collate latin1_general_ci NOT NULL default '',
`planilla` char(2) collate latin1_general_ci NOT NULL default '',
`anolapso` char(2) collate latin1_general_ci default NULL,
`meslapso` char(2) collate latin1_general_ci default NULL,
`nit` varchar(11) collate latin1_general_ci NOT NULL default '',
`indcu` char(2) collate latin1_general_ci NOT NULL default '',
`anodoc` char(2) collate latin1_general_ci default NULL,
`mesdoc` char(2) collate latin1_general_ci default NULL,
`diadoc` char(2) collate latin1_general_ci default NULL,
`vrdoc` double default NULL,
`detadoc` text collate latin1_general_ci,
`descripuser` varchar(15) collate latin1_general_ci NOT NULL default '',
`cheque` varchar(4) collate latin1_general_ci default '0000',
PRIMARY KEY (`numdoc`),
KEY `indcu` (`indcu`),
KEY `nit` (`nit`),
KEY `tipo` (`tipo`,`planilla`),
KEY `descripuser` (`descripuser`)
) ENGINE=MyISAM AUTO_INCREMENT=86 DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;

--
-- Table structure for table `tipodocum`
--

CREATE TABLE `tipodocum` (
`cpte` char(2) collate latin1_general_ci NOT NULL default '',
`tipo` char(2) collate latin1_general_ci NOT NULL default '',
`planilla` char(2) collate latin1_general_ci NOT NULL default '',
`detatipo` varchar(30) collate latin1_general_ci NOT NULL default '',
PRIMARY KEY (`tipo`,`planilla`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 COLLATE=latin1_general_ci;


LA BD DE DATOS ES UN POCO MAS EXTENSA .. Funciona bien ... ingresa registro, visualiza, eliminar .. etc.

Pero cuando estoy generando un plano de la informacion a partir de la consulta

Código PHP:
  $sql=mysql_query("select s.empresa,t.cpte,e.destino,e.tipodestino,
                                   c.codcuenta,c.nitcontab,c.indcucontab,c.credito,c.debito,c.detacontab,c.vrbase,
                                   d.cheque,d.indcu,d.planilla,d.anolapso,d.meslapso,d.tipo,d.anodoc,d.mesdoc,d.diadoc,d.numdoc,
                                   b.nit,b.descripbenef,b.tipobenef,b.direccion,b.ciudad,b.departamento,b.telefono,b.tiponit    
                            from documentosr d,contabilizacionsr c,usuario s,cu u,tipodocum t,beneficiario b, cuentas e
                            where c.numdoc = d.numdoc  && d.descripuser = s.descripuser && c.codcuenta = e.codcuenta &&
                            d.tipo = t.tipo && d.planilla = t.planilla && u.indcu = d.indcu && t.tipo = 'SR' && c.nitcontab = b.nit && 
                            d.anodoc between $anodoc1 and $anodoc2 && d.mesdoc between $mesdoc1 and $mesdoc2 && d.diadoc between $diadoc1 and $diadoc2"
); 
Este no visualiza datos .. que hayan sido ingresado ... pero si se encuentran en la BD, y a la misma los deja modificar o eliminar.

Pero si elimino la linea d.planilla = t.planilla, ahora si exporta datos.

Otro detalle que eh observado .. cuando reviso la tabla documentosr atraves de phpmyadmin ... los idices aparecen asi

Índices: Nombre de la clave Tipo Cardinalidad Acción Campo
PRIMARY PRIMARY 85 numdoc
indcu INDEX Ninguna indcu
nit INDEX Ninguna nit
tipo INDEX Ninguna tipo
planilla
descripuser INDEX Ninguna descripuser

... Gracias por la ayuda ...

__________________
"La vida sigue su curso, tú toma parte de ella."
  #2 (permalink)  
Antiguo 10/09/2008, 11:05
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: error en mi BD ??

... alguna idea ???
__________________
"La vida sigue su curso, tú toma parte de ella."
  #3 (permalink)  
Antiguo 10/09/2008, 13:16
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Pregunta Respuesta: error en mi BD ??

Pregunta ... si en ves de tanto = uso join para optimizar la busqueda ??

Si puede realizarce ?? ... Algun ejemplo ... Asi es como se tiene actualmente ...

Código PHP:
$sql=mysql_query("select s.empresa,t.cpte,e.destino,e.tipodestino, 
                                   c.codcuenta,c.nitcontab,c.indcucontab,c.credito,c.debito,c.detacontab,c.vrbase, 
                                   d.cheque,d.indcu,d.planilla,d.anolapso,d.meslapso,d.tipo,d.anodoc,d.mesdoc,d.diadoc,d.numdoc, 
                                   b.nit,b.descripbenef,b.tipobenef,b.direccion,b.ciudad,b.departamento,b.telefono,b.tiponit     
                            from documentosr d,contabilizacionsr c,usuario s,cu u,tipodocum t,beneficiario b, cuentas e 
                            where c.numdoc = d.numdoc  && d.descripuser = s.descripuser && c.codcuenta = e.codcuenta && 
                            d.tipo = t.tipo && d.planilla = t.planilla && u.indcu = d.indcu && t.tipo = 'SR' && c.nitcontab = b.nit &&  
                            d.anodoc between $anodoc1 and $anodoc2 && d.mesdoc between $mesdoc1 and $mesdoc2 && d.diadoc between $diadoc1 and $diadoc2"
); 
Gracias por la ayuda que puedan brindarme ...
__________________
"La vida sigue su curso, tú toma parte de ella."
  #4 (permalink)  
Antiguo 12/09/2008, 14:54
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: error en mi BD ??

alguna idea ...

__________________
"La vida sigue su curso, tú toma parte de ella."
  #5 (permalink)  
Antiguo 12/09/2008, 15:07
Avatar de Genetix  
Fecha de Ingreso: febrero-2002
Ubicación: Lima - Perú
Mensajes: 1.600
Antigüedad: 22 años, 2 meses
Puntos: 45
Respuesta: error en mi BD ??

Es preferible que uses Join, aquí tienes una muy buena explicación de de nuestro amigo gnzsoloyo.
http://www.forosdelweb.com/f86/hay-a...e-join-623363/

Sobre tu consulta, primero debes probarlo en la consola de mysql para verificar que funcione bien, luego lo pasas a tu programación.

Saludos!
__________________
"El conocimiento nos hace responsables."
twitter: @benjamingb
blog personal: http://codigolinea.com
ZF Manual en español http://manual.zfdes.com
  #6 (permalink)  
Antiguo 26/09/2008, 11:42
Avatar de Superlinux  
Fecha de Ingreso: octubre-2005
Ubicación: Colombia
Mensajes: 662
Antigüedad: 18 años, 6 meses
Puntos: 1
De acuerdo Respuesta: error en mi BD ??

... Gracias foros del web .. siguiendo sugerencias asi queda la consulta ..
Código PHP:
      $sql mysql_query("SELECT *
                              FROM ((cu INNER JOIN (beneficiario INNER JOIN ((contabilizacionsr INNER JOIN cuentas ON contabilizacionsr.codcuenta = cuentas.codcuenta) INNER JOIN documentosr ON contabilizacionsr.numdoc = documentosr.numdoc) ON beneficiario.nit = documentosr.nit) ON cu.indcu = documentosr.indcu) INNER JOIN tipodocum ON documentosr.planilla = tipodocum.planilla) INNER JOIN usuario ON documentosr.descripuser = usuario.descripuser
                              WHERE (((documentosr.tipo)='SR') AND ((documentosr.anodoc) between $anodoc1 and $anodoc2) AND ((documentosr.mesdoc)between $mesdoc1 and $mesdoc2) AND ((documentosr.diadoc)between $diadoc1 and $diadoc2))"
); 
__________________
"La vida sigue su curso, tú toma parte de ella."
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 13:18.