Foros del Web » Programando para Internet » PHP »

Error con la consulta...

Estas en el tema de Error con la consulta... en el foro de PHP en Foros del Web. salu2 foreros... bien aqui mi pregunta tengo 2 tablas y estoy haciendo un listado, en el cual quiero hacer la consulta a esas 2 tablas ...
  #1 (permalink)  
Antiguo 10/01/2008, 15:05
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Error con la consulta...

salu2 foreros...
bien aqui mi pregunta tengo 2 tablas y estoy haciendo un listado, en el cual quiero hacer la consulta a esas 2 tablas y luego poner el listado, la cosa es que solo pone los campos de las primer tabla los de la segunda no lo inserta y no se por q sea aqui les dejo el codigo:

Código:
<h1>Listado - Especificaciones</h1>
<table width="100%" border="1" cellspacing="0">
  <tr>
    <td>
<form action="esp_editar.php" method="get">
	<table width="100%" border="0">
  <tr>
    <th width="6%" scope="col">Eliminar</th>
    <th width="28%" scope="col">Especificaciones</th>
    <th width="21%" scope="col">Descripcion</th>
    <th width="26%" scope="col">R. Progress</th>
    <th width="19%" scope="col">Editar</th>
  </tr><?php
				include ("conexion.php");
				mysql_error();
//	$consulta = "SELECT * FROM especificaciones";
	$consulta = "SELECT especificaciones.id_especificaciones, especificacion, descripcion, desarrolladores.desarrolladores FROM especificaciones LEFT JOIN desarrolladores ON (especificaciones.r_progress = desarrolladores.id_desarrolladores)";
	
	$resultado = mysql_query("$consulta");

		if(!$resultado) {
			$message  = 'Query invalido: ' . mysql_error() . "\n";
			$message .= 'Query completo: ' . $query;
		die($message);
		}


		while ($renglon = mysql_fetch_assoc($resultado)) {
		echo mysql_error();
echo "<tr>";
echo " <td><div align='center'> <input type=\"checkbox\" name=\"seleccion[]\" value=\"".$renglon['id_especificaciones']."\"><br></div></td>";
echo "<td><div align='center'> $renglon[especificacion]</div></td>";
echo "<td><div align='center'> $renglon[descripcion]</div></td>";
echo "<td><div align='center'> $renglon[r_progress]</div></td>";
echo "<td><div align='center'><a href='esp_editar.php?especificacion=".$renglon['especificacion']."'>Editar</a>";
echo "</tr>\n";
		}		
  ?>
</table>
<input type="hidden" name="id_especificacion" value="<? echo $renglon['especificacion']; ?>"> 
<input type="submit" name="Submit" value="Borrar">
</form>
	</td>	
  </tr>
  <tr>
    <td><table width="100%">
      <tr>
        <td><div align="center"><a href="esp_captura.php">Agregar</a></div></td>
        <td><div align="center"><a href="esp_baja.php">Borrar</a></div></td>
      </tr>
    </table></td>
  </tr>
</table>
</body>


como le hago para q me muestre bien la consulta??
  #2 (permalink)  
Antiguo 10/01/2008, 15:21
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

Lo que veo es que tu consulta esta bien, pero a la hora de armar tu tabla nunca descargas los campos, así que solo completa tu tabla con los demás campos y ya tienes todo listo.

Saludos.
  #3 (permalink)  
Antiguo 10/01/2008, 15:33
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

Hola GatorV, bueno pues te comento q si me da respuesta, pero solo de algunos campos los q son de la seguna tabla no me los muestra aqui te dejo la foto:



lo q quiero es q me muestre los resultados de esos campos. salu2
  #4 (permalink)  
Antiguo 10/01/2008, 16:23
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

alguien podria ayudarame?
  #5 (permalink)  
Antiguo 10/01/2008, 16:25
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

En tu Select no veo donde selecciones el campo r_progress, ya que tu select solo haces una seleccion de estos campos:
especificaciones.id_especificaciones,
especificacion,
descripcion,
desarrolladores.desarrolladores

Saludos.
  #6 (permalink)  
Antiguo 10/01/2008, 16:31
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

ok, no aparece por q esa consulta es a otra tabla de mysql, la cual se llama desarrolladores y un campo se llama desarrolladores tambien, luego hago el comparativo de las tablas para q traiga de la otra tabla a esta el valor de ese campo, con est sentencia; especificaciones.r_progress = desarrolladores.id_desarrolladores. pero el problema es q solo me salen algunas y de la otra tabla no aparecen y no me marca error. no se a q se deba.
  #7 (permalink)  
Antiguo 10/01/2008, 18:16
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

No aparecen porque no los seleccionas, para que puedas obtener el dato debes FORZOSAMENTE seleccionarlos en tu consulta SQL, si los ocupas para comparaciones o para joins, estos no se seleccionan, es por eso que debes de seleccionarlos primeramente en tu SELECT.

Saludos.
  #8 (permalink)  
Antiguo 11/01/2008, 10:28
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

Hola GatorV gracias por contestar. ok mira cambie la consulta a como mas o menos te entendi

le puse;
Código:
$consulta = "SELECT especificaciones.id_especificaciones, especificacion, descripcion, desarrolladores.desarrolladores FROM especificaciones INNER JOIN desarrolladores ON especificaciones.r_progress = desarrolladores.id_desarrolladores";
y de todos modos no me la muestra. claro q si pongo la consulta haciendo SELECT * FROM especificaciones si aparecen todos los campos, pero como estoy haciendo una especie de ctalogo necesito algunas cosas de la otra tabla. cual es mi error?
  #9 (permalink)  
Antiguo 11/01/2008, 12:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

Como te comente anteriormente, en la parte de tu SELECT, jamas seleccionas el campo r_progress, por eso no podrás descargarlo, debes de seleccionar el campo r_progress de la tabla para poderlo posteriormente obtener.

Saludos.
  #10 (permalink)  
Antiguo 11/01/2008, 12:28
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

muchas gracias por contestar GatorV, pero creo q no me explico bien o aun no me entiendes.

Código:
SELECT especificaciones.id_especificaciones, especificacion, descripcion, desarrolladores.desarrolladores FROM especificaciones INNER JOIN desarrolladores ON especificaciones.r_progress = desarrolladores.id_desarrolladores
segun yo la consulta esa toma 2 tablas, una q es especificacion de la cual toma los campos; id_especificaciones, especificacion, descripcion y el el 4 q es solo un de numeros es esta tabla q se llama r_progress. pero para q pueda poner el nombre de l campo como es, debo de hacer un join a la otra tabla el cual lo hago con desarrolladores(1).desarrolladores(2), siendo; 1.-la tabla y 2.-el campo requerido. luego con el INNER JOIN intento ordenarle hacer eso para q luego cambie el valor de 1,2,3,4,5 por los nombres de tienen los campos de la tabla desarrolladores.

aqui el problemas q es no puedo hacer q aparezcan los campos de la tabla 2. a ver si ahora si me explique bien. salu2
  #11 (permalink)  
Antiguo 11/01/2008, 12:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

¿Porque no pruebas tu consulta en un gestor de bases de datos? Así podrás ver si te esta recibiendo bien tu consulta y te imprime las variables que tienes.

También seria ideal que publicaras el diagrama de tus tablas y como es que las tienes relacionadas, ya que con lo que pones no es claro que llave es la foránea de tu tabla especificaciones.

Saludos.
  #12 (permalink)  
Antiguo 11/01/2008, 12:48
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

Hola.
aqui estan las tablas de las q me refiero

tabla 1:
Código:
CREATE TABLE `especificaciones` (
  `id_especificaciones` bigint(11) NOT NULL auto_increment,
  `especificacion` varchar(255) character set utf8 collate utf8_spanish2_ci NOT NULL,
  `descripcion` varchar(255) character set utf8 collate utf8_spanish2_ci NOT NULL,
  `tipo` int(11) NOT NULL,
  `r_progress` int(11) NOT NULL,
  `r_hd` int(11) NOT NULL,
  `recepcion` date NOT NULL,
  `envio` date NOT NULL,
  `revision1` date NOT NULL,
  `envio_revision_1` date NOT NULL,
  `rec_adec` date NOT NULL,
  `envio_adec` date NOT NULL,
  `estimado` int(11) NOT NULL,
  `demora_real` int(11) NOT NULL,
  PRIMARY KEY  (`id_especificaciones`)
)
tabla 2:
Código:
CREATE TABLE `desarrolladores` (
  `id_desarrolladores` bigint(11) NOT NULL auto_increment,
  `desarrolladores` varchar(255) character set utf8 collate utf8_spanish2_ci NOT NULL,
  PRIMARY KEY  (`id_desarrolladores`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=9 ;
  #13 (permalink)  
Antiguo 11/01/2008, 13:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

¿Cual es la llave foránea que te identifica que campo de especificaciones te relaciona con desarrolladores?

Saludos.
  #14 (permalink)  
Antiguo 11/01/2008, 13:26
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

es esta
Código:
especificaciones.r_progress = desarrolladores.id_desarrolladores
aqui dice q el campo r_progress de la tabla especificaciones sera reemplazado por el campo desarrolladores de la tabla desarrolladores siempre y cuando este se determine gracias al numero con el q cuenta el campo de especificaciones. salu2
  #15 (permalink)  
Antiguo 11/01/2008, 13:40
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Re: Error con la consulta...

Entonces tu consulta SQL debe de ser asi:
Código:
SELECT 
    especificaciones.id_especificaciones, 
    especificaciones.especificacion, 
    especificaciones.descripcion, 
    desarrolladores.desarrolladores 
FROM 
    especificaciones 
INNER JOIN 
    desarrolladores 
          ON 
             especificaciones.r_progress = desarrolladores.id_desarrolladores
Luego lees los campos correspondientes, y en lugar de leer $row['r_progress'] (que no esta seleccionado) lees $row['desarrolladores'].

Saludos.
  #16 (permalink)  
Antiguo 11/01/2008, 13:46
Avatar de lobonegro6  
Fecha de Ingreso: enero-2005
Ubicación: Monterrey, México.
Mensajes: 145
Antigüedad: 19 años, 3 meses
Puntos: 1
Re: Error con la consulta...

mmmmm gracias carnal ya quedo, tanta jala nomas pa cambiar un campo XD. aveces me siento muy pero muy novato.
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 05:22.