Foros del Web » Programando para Internet » PHP »

Duda seleccionado registros

Estas en el tema de Duda seleccionado registros en el foro de PHP en Foros del Web. Que tal, le spongo mi codigo primero Código PHP: <?php include( "conexion.php" ); Conectarse (); $query  =  mysql_query ( "SELECT * FROM noticias  LIMIT 20" ); while( $row = mysql_fetch_array ...
  #1 (permalink)  
Antiguo 19/09/2004, 16:39
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 15 años, 9 meses
Puntos: 2
Duda seleccionado registros

Que tal, le spongo mi codigo primero

Código PHP:

<?php


include("conexion.php");
Conectarse();

$query mysql_query("SELECT * FROM noticias  LIMIT 20");
while(
$row=mysql_fetch_array($query)){

$ID_Noticia $row[ID_Noticia];
$Texto $row[Texto];
$resto substr("$Texto"0200);
}
$query mysql_query("SELECT * FROM atomoticias  LIMIT 20");
while(
$row=mysql_fetch_array($query)){

$ID_Usuario $row[ID_Usuario];
$ID_Atomoticia $row[ID_Atomoticia];
$Fecha $row[Fecha];
$Titulo $row[Titulo];

  
?>



noticias <br>
ID_Noticia  --------- <? echo $ID_Noticia?><br>
Texto breve --------- <?php echo wordwrap($resto,100,"<br>",1);?><br>
Text----------------- <? echo $Texto?><br>
atomoticias<br>

ID_Atomoticia-------- <? echo $ID_Atomoticia?><br>
Titulo -------------- <? echo $Titulo?> <br>
ID_Usuario ---------- <? echo $ID_Usuario?><br>
Fecha---------------- <? echo $Fecha?><br>
ID_IPv6 ???<p><p>
<?php
}
 
mysql_free_result($query); ?>
La duda es, si yo ejecuto este script me devuelve lo sigte (solo tengo2 registros en cada tabla,

noticias
ID_Noticia --------- 2
Texto breve --------- texto2
Text----------------- texto2
atomoticias
ID_Atomoticia-------- 1
Titulo -------------- titulo
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:13
ID_IPv6 ???

noticias
ID_Noticia --------- 2
Texto breve --------- texto2
Text----------------- texto2
atomoticias
ID_Atomoticia-------- 2
Titulo -------------- titulo2
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:56
ID_IPv6 ???


Si se fijan, lo q esta con naranjo los repite!! (se supone q abajo debe mostrarme lo que tenga ID_XXXX = 1, y arriba ID_XXXX = 2, asi sucesivamente, siempre mostrandome el registro mas nuevo primero)

no asi los otros registros, alguna ayuda?

gracias
  #2 (permalink)  
Antiguo 19/09/2004, 17:22
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Por supuesto que se repite lo que has puesto ...

Estas usando bucles anidados .. y presentas todos los datos en el bucle interiro ..

Este bloque:

ID_Noticia --------- <? echo $ID_Noticia; ?><br>
Texto breve --------- <?php echo wordwrap($resto,100,"<br>",1);?><br>
Text----------------- <? echo $Texto; ?><br>

Debes hacer sus echo (o como tu haces ahí "romper" ?> <? PHP ..) en el primer while() que tienes:

while($row=mysql_fetch_array($query)){

$ID_Noticia = $row[ID_Noticia];
$Texto = $row[Texto];
$resto = substr("$Texto", 0, 200);

// aquí tus echo $ID_Notica ... etc ..
}

Por lo demás .. si ambas tablas guardan algún tipo de relación . deberías hacer una consulta SQL donde emplees ambas tablas simultánemante y no dos anidadas (el rendimiento caeeeeee en picado así . no es optimo para nada).

Un saludo,
  #3 (permalink)  
Antiguo 19/09/2004, 17:28
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 15 años, 9 meses
Puntos: 2
claro, comprendo perfetamente, asi funciona, solo q las dos tablas guardan relacion y deberian mostrarse como dije antes, y me comentas hacer una consulta usando las dos tablas y me gustaria saber como.
  #4 (permalink)  
Antiguo 19/09/2004, 17:45
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Pues si describes la estructura de ambas tablas y que relación (bajo que campo usado como "cláve foránea") guardan entre ellas .. se te podría recomendar alguna sentencia SQL más adecuada + algo de PHP que te hará falta para no repetir el nombre del "titulo" de la noticia .. Por qué, lo que vas a obtener con esa consulta SQL es una "tabla" que contendrá los datos que requiereas de ambas tablas, y .. en ese caso se va a repetir los de la tabla "padre". En estos casos hay que evaluar hasta que punto sería recomendable usar o no una sentencia SQL más compleja o bien usar la ténica "subconsultas anidadas" que estás empleando.

Un saludo,
  #5 (permalink)  
Antiguo 19/09/2004, 18:14
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 15 años, 9 meses
Puntos: 2
Pues ID_Atomoticia e ID_Noticia son iguales, (si Atomoticia = 4, debo mostrar noticia 4)

Yo agrego datos desde un formulario (Ej, titulo en la tabla "atomoticia" y el texto en "noticias") ---lo hago asi, pues pq me dieron la db y yo tengo a hacer los php--

se me ocurrio hacer algo, que sirvio en cierta medida.

Código PHP:
<?php


include("conexion.php");
Conectarse();

$query mysql_query("SELECT * FROM noticias,atomoticias ORDER BY ID_Noticia,ID_Atomoticia DESC LIMIT 20");
while(
$row=mysql_fetch_array($query)){

$ID_Noticia $row[ID_Noticia];
$Texto $row[Texto];
$resto substr("$Texto"0200);

$ID_Usuario $row[ID_Usuario];
$ID_Atomoticia $row[ID_Atomoticia];
$Fecha $row[Fecha];
$Titulo $row[Titulo]; 

?>

  noticias <br>
ID_Noticia  --------- <? echo $ID_Noticia?><br>
Texto breve --------- <?php echo wordwrap($resto,100,"<br>",1);?><br>
Text----------------- <? echo $Texto?><br>


atomoticias<br>

ID_Atomoticia-------- <? echo $ID_Atomoticia?><br>
Titulo -------------- <? echo $Titulo?> <br>
ID_Usuario ---------- <? echo $ID_Usuario?><br>
Fecha---------------- <? echo $Fecha?><br>
ID_IPv6 ???<p><p>
<?php  }

mysql_free_result($query); ?>

pero al ejecutar me duevelve:

noticias
ID_Noticia --------- 1
Texto breve --------- texto
Text----------------- texto
atomoticias
ID_Atomoticia-------- 2
Titulo -------------- titulo2
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:56
ID_IPv6 ???

noticias
ID_Noticia --------- 1
Texto breve --------- texto
Text----------------- texto
atomoticias
ID_Atomoticia-------- 1
Titulo -------------- titulo
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:13
ID_IPv6 ???


noticias
ID_Noticia --------- 2
Texto breve --------- texto2
Text----------------- texto2
atomoticias
ID_Atomoticia-------- 2
Titulo -------------- titulo2
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:56
ID_IPv6 ???


noticias
ID_Noticia --------- 2
Texto breve --------- texto2
Text----------------- texto2
atomoticias
ID_Atomoticia-------- 1
Titulo -------------- titulo
ID_Usuario ---------- 3
Fecha---------------- 2004-09-18 16:58:13
ID_IPv6 ???



..................



Me lo repite...
Sigo buscando..

Gracias
  #6 (permalink)  
Antiguo 19/09/2004, 18:23
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 15 años, 9 meses
Puntos: 2
Y lo que yo quiero es algo asi...


Id_nombre: 1
Nombre:Juan
Id_apellido:1
Apellido:perez

Id_nombre: 2
Nombre:Juanito
Id_apellido:2
Apellido:Alcayaga



Los nombres estan en una tabla, con un ID y los apellidos en otra con el mismo ID de su par...deseo listarlos... se entiende?
  #7 (permalink)  
Antiguo 19/09/2004, 18:55
 
Fecha de Ingreso: febrero-2002
Ubicación: Chile
Mensajes: 1.573
Antigüedad: 15 años, 9 meses
Puntos: 2
$query = mysql_query("SELECT * FROM Noticias,Atomoticias WHERE ID_Noticia=ID_Atomoticia ORDER BY ID_Noticia DESC LIMIT 20");



se soluciono asi,

gracias por todo!!
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 12:19.