Foros del Web » Programando para Internet » PHP »

2 veces el dato.

Estas en el tema de 2 veces el dato. en el foro de PHP en Foros del Web. Hola, la cuestion es que estoy haciendo una consulta a mysql para que me muestre todos los datos de 2 tablas. y todo bien . ...
  #1 (permalink)  
Antiguo 04/08/2012, 08:24
Avatar de novamix  
Fecha de Ingreso: enero-2007
Ubicación: Getafe, Spain
Mensajes: 50
Antigüedad: 17 años, 3 meses
Puntos: 1
Busqueda 2 veces el dato.

Hola, la cuestion es que estoy haciendo una consulta a mysql para que me muestre todos los datos de 2 tablas. y todo bien . pero cuando voy a verla aparecen 2 veces los mismos datos.. y no encuentro el problema.:S gracias por vuestra ayuda.

Código PHP:
<?php 
include_once( dirname(dirname(__FILE__)) . '/classes/check.class.php');
protect("1");

if(empty(
$_POST))
    include_once(
'header.php');
    
    if(empty(
$_POST))
    include_once(
'conect.php');

?>

 <?php $idconcierto $_GET["id"];?>
 
 
<div class="container-fluid">
  <div class="row-fluid">
    <div class="span2">
    <?php include('sidebarevent.php'); ?>
    </div>
    <div class="span10">
     <h1 > Los Eventos </h1>
  <?php $result mysql_query("SELECT concierto.*,  entradas.*  FROM concierto, entradas WHERE concierto.concierto_id= $idconcierto and entradas.concierto_id=$idconcierto"$conexion);
  
  
  
  
  if (!
$result) {
    echo 
"No se pudo ejecutar con exito la consulta ($sql) en la BD: " mysql_error();
    exit;
}

if (
mysql_num_rows($result) == 0) {
    echo 
"No se han encontrado NINGUNA información";
    exit;
}

while (
$rsEmp mysql_fetch_assoc($result)) {
 
?>
 
 
 <div class="row-fluid">
  <div class="span12">
    <div class="row-fluid">
      <div class="span6"><?PHP echo "<img src='../imagenes/$rsEmp[imagen]' width='400' height='600'/>\n"?></div>
      <div class="span6"><?PHP echo "<h1>$rsEmp[artista] </h1> <br> \n";
    echo 
"<td>$rsEmp[concierto_id] </br> \n";

echo 
"<td>$rsEmp[fecha] </br> \n";
echo 
"<td>$rsEmp[hora] </br> \n";
echo 
"<td>$rsEmp[sala] </br> \n";
echo 
"<td>$rsEmp[direccion] </br> \n";
echo 
"<td>$rsEmp[localidad] </br> \n";
echo 
"<td>$rsEmp[provincia] </br> \n";  
echo 
" $rsEmp[rango]</br> \n";



?> </div>
    </div>
  </div>
</div>
 
 <?
}


mysql_free_result($result);
?>
  
</table>

    </div>
  </div>
</div>

<?php include_once('footer.php'); ?>
  #2 (permalink)  
Antiguo 04/08/2012, 08:38
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: 2 veces el dato.

El problema esta en la manera como lo estas planteando, no estas creando entre ellas una relación por decirlo así.
prueba de esta forma

Código SQL:
Ver original
  1. SELECT tb1.*, tb2.* FROM concierto AS tb1
  2. JOIN entradas AS tb2 ON tb1.concierto_id = tb2.concierto_id
  3. WHERE tb1.concierto_id = $idconcierto

Saludos!

Última edición por gjx2; 04/08/2012 a las 08:43 Razón: Se me había olvidado el where :-d
  #3 (permalink)  
Antiguo 04/08/2012, 09:12
Avatar de novamix  
Fecha de Ingreso: enero-2007
Ubicación: Getafe, Spain
Mensajes: 50
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: 2 veces el dato.

Aun me sigue apareciendo doble :s te explico como deberia de aparecer.

para la tabla concierto.. debe aparecer una fila pero para las entradas 2. por asi decirlo.

es un usuario, que tiene 2 entradas. y quiero mostrarlo asi. tambien puede tener 3 o 4..
  #4 (permalink)  
Antiguo 04/08/2012, 09:22
Avatar de novamix  
Fecha de Ingreso: enero-2007
Ubicación: Getafe, Spain
Mensajes: 50
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: 2 veces el dato.

ok he descubierto que... como tenia 2 filas en la tabla entrada por eso me duplicaba todo el contenido... pero entonces como hago para que no me lo duplique y me muestre esas 2 filas de entradas?
  #5 (permalink)  
Antiguo 04/08/2012, 09:35
Avatar de gjx2  
Fecha de Ingreso: agosto-2008
Ubicación: R.D
Mensajes: 1.153
Antigüedad: 15 años, 8 meses
Puntos: 139
Respuesta: 2 veces el dato.

Ok entonces lo que tienes que sumar la cantidad de entradas que tiene ese concierto
seria algo como

Código SQL:
Ver original
  1. SELECT tb1.*, COUNT(tb2.concierto_id) AS Entradas FROM concierto AS tb1
  2. JOIN entradas AS tb2 ON tb1.concierto_id = tb2.concierto_id
  3. WHERE tb1.concierto_id = $idconcierto

Verifica si esto te sirve.

Saludos!
  #6 (permalink)  
Antiguo 04/08/2012, 09:43
Avatar de novamix  
Fecha de Ingreso: enero-2007
Ubicación: Getafe, Spain
Mensajes: 50
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: 2 veces el dato.

gjx2 , no me funciona, al final lo que hice fue hacer 2 consultas diferentes. una para los datos del concierto, y otra para las entradas. .. asi me funciono bien.

Etiquetas: mysql+php, select, tablas
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 15:16.