Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: SrTrp en 12 Enero 2018, 05:45 am



Título: Obtener campos unicamente distintos mysqli
Publicado por: SrTrp en 12 Enero 2018, 05:45 am
Bueno tengo una tabla la cual tienes varios campos iguales lo que quiero es que estos muestre solo los que no son iguales solo se me ocurre una forma pero necesitaria mil variables si uno tiene 1000 registros diferentes :v por eso queria saber si me pueden ayudar a hacer esto menos tedioso.
Código
  1. $d1 = "SELECT id_chatter FROM msjs WHERE id_usersend='$tds' OR id_userre='$tds' ORDER BY id_msj DESC";
  2.            $df1 = $link->query($d1);
  3.            $dfan1 = $df1->num_rows;
  4.            if($dfan1 > 0){
  5.                while($rows1 = $df1->fetch_assoc()) {
  6.                    if(!isset($d1)){
  7.                       $d1 = $rows1['id_chatter'];
  8.                    }else{
  9.                        if($d1 != $rows1['id_chatter']){
  10.                            //Y AQUI NUEVAMENTE HACER OTRO IF CON EL ISSET $d2..
  11.                        }
  12.                    }
  13.                }
  14.            }
  15.  


Título: Re: Obtener campos unicamente distintos mysqli
Publicado por: EFEX en 12 Enero 2018, 17:19 pm
Desde la linea 6 no entiendo a que quieres llegar. Quieres obtenes todos los chat de un usuario ? podrias explicar un poco mas y mostrar mas el codigo ?


Título: Re: Obtener campos unicamente distintos mysqli
Publicado por: SrTrp en 12 Enero 2018, 18:49 pm
Pues eso sería todo desde donde quiero empezar a selecionar los chat del usuario, $tds es el id del usuario, y a lo que voy que quiero es solo tomar y saber cuantos chats son diferentes.


Título: Re: Obtener campos unicamente distintos mysqli
Publicado por: EFEX en 13 Enero 2018, 00:49 am
Si entendi bien, podes usar GROUP BY id_chatter y despues contar cuantas filas devuelve.

O con una consulta deberia devolver la cantidad de chats en que el usuario participa
Código
  1. SELECT COUNT(total_chats) AS total FROM (
  2.  SELECT COUNT(id_chatter) AS total_chats
  3.  FROM msjs
  4.  WHERE id_usersend='$tds' OR id_userre='$tds'
  5.  GROUP BY id_chatter
  6.  ORDER BY id_msj DESC
  7. ) AS a

Esto es lo que quieres lograr? corrobora bien con la db.


Título: Re: Obtener campos unicamente distintos mysqli
Publicado por: SrTrp en 15 Enero 2018, 05:13 am
Si es lo que buscaba ahora solo tengo una duda como podria usar un AND y un OR al mismo tiempo es parece que solo toma 2 valores si uso tal como este comando me muestra lo de todos los chats que me escriben..
Código
  1. SELECT * FROM msjs WHERE id_userre='$tds' OR id_usersend='$tds' AND id_chatter='$idderchat' ORDER BY id_msj ASC
  2.  

Y como este chat solo me da todo lo recibido de ese chat y todo lo que eh enviado a diferentes chats..
Código
  1. SELECT * FROM msjs WHERE id_chatter='$idderchat AND id_userre='$tds' OR id_usersend='$tds' ' ORDER BY id_msj ASC
  2.  

aHHH ya logre solucionarlo con unos corchetes..
Código
  1. SELECT * FROM msjs WHERE  (id_userre='$tds' OR id_usersend='$tds') AND id_chatter='$idderchat' ORDER BY id_msj ASC
  2.