Foros del Web » Programando para Internet » PHP »

problemas al listar

Estas en el tema de problemas al listar en el foro de PHP en Foros del Web. Por favor me ayudan con este codigo no me sale. RESULTADO. este es el resultado que yo quiero pero no me sale. M: 5 = ...
  #1 (permalink)  
Antiguo 01/10/2011, 09:49
 
Fecha de Ingreso: septiembre-2011
Mensajes: 8
Antigüedad: 12 años, 7 meses
Puntos: 0
Pregunta problemas al listar

Por favor me ayudan con este codigo no me sale.
RESULTADO. este es el resultado que yo quiero pero no me sale.
M: 5 = este es cinco
Comentario

M: 4 = este es cuatro
Comentario

M: 3 = este es tres
+C: 5 = hola tres 1
Comentario

M: 2 = este es dos
+C: 2 = hola dos 1
+C: 4 = hola dos 2
Comentario

M: 2 = este es dos
+C: 2 = hola dos 1
+C: 4 = hola dos 2
Comentario

M: 1 = este es uno
+C: 1 = hola uno 1
+C: 3 = hola uno 2
Comentario

Les agradesco sus ayudas.

Código PHP:
Ver original
  1. $link = mysql_connect("localhost","root","123");
  2. mysql_select_db("zunyweb",$link);
  3. $query = "SELECT * FROM mundo INNER JOIN mundo_c ON mundo.mids = mundo_c.mids2 order by mids desc limit 0,888888";
  4. $result = mysql_query($query,$link);
  5. while($row = mysql_fetch_array($result)){
  6. if ($row['mids'] == $row['mids2']){
  7. echo 'M: '.$row['mids'].' = '.$row['mctexto'].'<br />';
  8. $Mid=$row['mids'];
  9. }
  10. if($Mid==$row['mids2']){
  11. $qs3 =("select * from mundo_c where mids2='$Mid'");
  12. $result3 = mysql_query($qs3,$link);
  13. while($row3 = mysql_fetch_array($result3)){
  14.  echo '+C: '.$row3['ids'].' = '.$row3['ctexto'].'<br />';  
  15. }
  16. echo 'Comentario<br/><br/>';
  17. }
  18. }



Código SQL:
Ver original
  1. CREATE TABLE `mundo` (
  2.   `mids` INT(11) NOT NULL AUTO_INCREMENT,
  3.   `mctexto` text NOT NULL,
  4.   PRIMARY KEY (`mids`)
  5. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ;
  6.  
  7. INSERT INTO `mundo` VALUES (1, 'este es uno');
  8. INSERT INTO `mundo` VALUES (2, 'este es dos');
  9. INSERT INTO `mundo` VALUES (3, 'este es tres');
  10. INSERT INTO `mundo` VALUES (4, 'este es cuatro');
  11. INSERT INTO `mundo` VALUES (5, 'este es cinco');
  12.  
  13. CREATE TABLE `mundo_c` (
  14.   `ids` INT(11) NOT NULL AUTO_INCREMENT,
  15.   `mids2` text NOT NULL,
  16.   `ctexto` text NOT NULL,
  17.   PRIMARY KEY (`ids`)
  18. ) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
  19.  
  20. INSERT INTO `mundo_c` VALUES (1, '1', 'hola uno 1');
  21. INSERT INTO `mundo_c` VALUES (2, '2', 'hola dos 1');
  22. INSERT INTO `mundo_c` VALUES (3, '1', 'hola uno 2');
  23. INSERT INTO `mundo_c` VALUES (4, '2', 'hola dos 2');
  24. INSERT INTO `mundo_c` VALUES (5, '3', 'hola tres 1');

Última edición por jhessu; 01/10/2011 a las 11:49
  #2 (permalink)  
Antiguo 01/10/2011, 14:04
 
Fecha de Ingreso: marzo-2007
Mensajes: 15
Antigüedad: 17 años
Puntos: 2
Respuesta: problemas al listar

1 - En vez de emplear INNER JOIN deberías colocar LEFT JOIN.
2 - Deberías revisar bien tus condiciones ya que ellas esta condicionando tus salidas por ejemplo la linea 16 debería estar fuera del IF para que se imprima en cada recorrido del ciclo.
3 - Ya que quieres aparezcan los datos de la tabla mundo comenta las lineas 6 y 9;
4 - Por otro lado te recomiendo que verifiques bien la forma en que relacionas tus bases de datos ya que las comparaciones deberían hacerse sobre campos del mismo tipo de dato; fijate que mids es tipo integer y mids2 es de tipo text

Etiquetas: mysql
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 17:46.