Foros del Web » Programando para Internet » PHP »

Resultado duplicado array

Estas en el tema de Resultado duplicado array en el foro de PHP en Foros del Web. Hola buenas tardes, traigo un pequeño lio, que no eh podido solucionar se que es un poco bobo, pero no lo puedo lograr, les comento ...
  #1 (permalink)  
Antiguo 23/12/2008, 17:38
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Resultado duplicado array

Hola buenas tardes, traigo un pequeño lio, que no eh podido solucionar se que es un poco bobo, pero no lo puedo lograr, les comento tengo una consulta que hace lo siguiente:

select * from catalogo where productoId ='$row21[$i]' group by clasificacion
while($row31 = mysql_fetch_array($sql31)){

$numelentos2 = count($row31['clasificacion']);

for ($ii=4; $ii < $numelentos2; $ii++)


donde el arreglo '$row21[$i]' contiene 1,2,3,4 y sus clasificaciones de ellos se repiten pero cuando group by se filtra y quedan solo una clasificacion pero cuando lo mando a imprimir el arreglo $row31 me imprime varias veces la misma clasificacion, me podrias hechar una manita, por que de verdad no veo el priblema el query esta bien lo hace perfecto en sql. Gracias
  #2 (permalink)  
Antiguo 23/12/2008, 18:21
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Resultado duplicado array

esta estructura no es correcta cuando usas un group by
que es lo que buscas conseguir con la consulta??
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #3 (permalink)  
Antiguo 23/12/2008, 18:25
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Resultado duplicado array

Gracias por contestar, lo que busco es que la clasificacion no se repita, pero esa consulta la ejecuto en sql y me marca lo que necesito, sin problemas.
  #4 (permalink)  
Antiguo 23/12/2008, 18:32
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Resultado duplicado array

bueno pues si partes de un error lo mas seguro es que termine dandote un error. pero bueno veamos en que podemos ayudart

supongo que sql31 es "select * from catalogo where productoId ='$row21[$i]' group by clasificacion"

si enlistas cada uno de los resultados en el while debe de aparecer diferentes y unicos valores de clasificacion.
el proceso que le das despues con el count no le encuentro para que.
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #5 (permalink)  
Antiguo 23/12/2008, 18:38
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: Resultado duplicado array

Cuando imprimes los valores de imprimen:

Clasificacion 1:
- Esto esta dentro de clasificacion 1
Clasificacion 1:
- Esto esta dentro de clasificacion 1
Clasificacion 1:
- Esto esta dentro de clasificacion 1

Pero quieres que salga:

Clasificacion 1:
- Esto esta dentro de clasificacion 1
- Esto esta dentro de clasificacion 1
- Esto esta dentro de clasificacion 1

:P Eso es lo que entiendo. Si es asi, pasate por este tema:
http://www.forosdelweb.com/f18/lista...-foros-651610/
  #6 (permalink)  
Antiguo 24/12/2008, 08:38
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Resultado duplicado array

Hola muchas gracias por contestar a ambos, Avatar si saco el resultado sin o con el count me repite los registros de las clasificaciones, por eso es mi pregunta quise meterlo en un arreglo para ver si se pudiese evitar la duplicacion, Ronruby dejame verificar lo que me mandaste.
  #7 (permalink)  
Antiguo 24/12/2008, 10:13
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Resultado duplicado array

podrias poner un bloque mas amplio de codigo para er que es lo que hace y si hay algun detalle adicional que no estamos viendo.

Saludos
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #8 (permalink)  
Antiguo 29/12/2008, 10:06
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: Resultado duplicado array

Ok, dejo en pedazo mas amplio del codigo, gracias por contestar y por ayudarme. Saludos

<option>SELECT</option>
$sql11=mysql_query("select * from clientes where clientesUsuario='$PHP_AUTH_USER'",$con);
$row11 = mysql_fetch_array($sql11);
$usu=$row11['clientesId'];


$sql21=mysql_query("select * from productos_clientes where indice='$usu'",$con);

while($row21 = mysql_fetch_array($sql21)){

$numelentos = count($row21['producto']);

for ($i=2; $i < $numelentos; $i++)
{
print ("$row21[$i] <BR>\n");
}

$sql31=mysql_query("select * from catalogo where productoId ='$row21[$i]' group by clasificacion",$con);

while($row31 = mysql_fetch_assoc($sql31)) {





?>
<option value="<?php echo $row31['clasificacion'];?>" > <?php echo $row31['clasificacion'];?> </option>
<?php
} }
?>
</select>
  #9 (permalink)  
Antiguo 29/12/2008, 10:29
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Resultado duplicado array

Oye este no es el codigo que habias puesto en el inicio del tema... lo modificaste?

Y siendo sincero sigo sin poder entender que e slo que consigues ni que quieres conseguir,
Segun interpreto, sacas una matris con el sql21 de todos los productos de un cliente especifico, despues cuentas los elementos del campo 'producto' para cada una de las filas encontradas en la matriz (segun yo eso deberia de resultar un 1 siempre... por lo que nunca entra al for...
ya que la logica indica que el campo 1 de cada tabla es el ID sobreentiendo que eso es lo que buscas al generar el sql31
y ya que el sql31 esta dentro del while del sql21 este tiende a repetirse a cada iteración...

Ahora puedes mostrar que te genera y que deseas generar con este codigo y no con el que pusiste al inicio.

Saludos y espero poderte ayudar con esta informacion...
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #10 (permalink)  
Antiguo 29/12/2008, 12:08
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Sonrisa Respuesta: Resultado duplicado array

Mira, si lo cambie ya no esta el ersultado en un count, que quiero:

Tengo 1 cliente, a ese se le asiga 1 a N productos, entonces busco todos los productos que se le asigno y los meto en un array los cuento y no hay problema, de esos productos necesito su clasificacion, algunos de ellos tiene la misma aunque sean diferentes productos, ahora lo que yo requiero es poner esas clasificaciones en un combo para que de ahi se relize un filtro el cual ya tengo, pero lo que pasa es que en el combo que es el codigo que tengo arriba, me muestran las clasificaciones repetidas.


Lo que me sale:

Madera
Madera
Electro
Tela

Lo que requiero:
Madera
Elctro
Tela.

Muchas gracias y saludos, espero haber sido mas clara.
  #11 (permalink)  
Antiguo 29/12/2008, 13:07
Avatar de Avatar810  
Fecha de Ingreso: agosto-2007
Ubicación: Por rumbos Regios
Mensajes: 485
Antigüedad: 16 años, 8 meses
Puntos: 23
Respuesta: Resultado duplicado array

Si creo que ya lo tengo, osea que lo que tu necesitas son las clasificaciones que tienen los productos de tu cliente (indstintamente de los productos...

Veamos si te sirve esto.

Código:
<?
$qry1="select * from clientes where clientesUsuario='$PHP_AUTH_USER'";
echo $qry1.";<br>";
$sql11=mysql_query($qry1,$con);
$row11 = mysql_fetch_array($sql11);
$usu=$row11['clientesId'];
$qry2="SELECT DISTINCT c.clasificacion FROM productos_clientes AS p INNER JOIN catalogo AS c ON c.productoId=p.id WHERE p.indice='$usu'";
echo $qry2.";<br>";
$sql21=mysql_query($qry2,$con);
?>
<select name="categoria">
	<option>SELECT</option>
    <?
    while($row21 = mysql_fetch_array($sql21))
	{ 
		?>
		<option value="<?=$row21['clasificacion']; ?>" > <?= $row21['clasificacion']; ?></option>
		<?
	}
    ?>
</select>
Como recomendacion adicional trata de no usar el * para el select si tu web es de mucha demanda consumira recursos extra. (esto solo como una buena practica para mejorar el desempeño).

Comentas si te sirve o si no es lo que buscas
__________________
Una demo siempre funcionará correctamente hasta que toque algo tu (hasta ahora) cliente.
Avatar810
  #12 (permalink)  
Antiguo 29/12/2008, 13:39
rpm
 
Fecha de Ingreso: septiembre-2008
Ubicación: Estado de México
Mensajes: 84
Antigüedad: 15 años, 7 meses
Puntos: 1
Sonrisa Respuesta: Resultado duplicado array

Muchisimas gracias, exactamente eso era lo que estaba buscando, y si tomare en cuenta las recomendaciones adicionales, solo cambie algunos campos, y corrio perfecto, asi que ahora si que estaba metiendo 2 array sin cerrar el otro pero no se me ocurrio poner el inner join, te lo agradezco saludos.
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 04:42.