Ver Mensaje Individual
  #2 (permalink)  
Antiguo 05/02/2009, 16:29
Avatar de rockasvivas
rockasvivas
 
Fecha de Ingreso: julio-2008
Mensajes: 16
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: Saber si los elementos de un array son iguales o no

Ok, tal vez no fui tan explícito, pero encontré una forma de hacerlo. He aquí mi aportación por si a alguien se le ofrece. Sin embargo si hubiese otra forma más óptima Soy Todo Oídos.

Tengo una tabla llamada PRESUPUESTOS, en la cual nos interesan 2 campos:


idpres
idcliente


Se trata de que el sistema nos genere un Formato o Informe para imprimirselo a un Cliente si es que así lo requiriera. Pero el sistema nos debe dar oportunidad de incluir más de 2 Presupuestos en el Informe, es decir 2 o más registros de nuestra BD (2 o más idpres). Para ello se nos muestra en una primer página los idpres cargados en un SELECT múltiple, y al dar clic en un botón "Generar Informe" nos lleve a una segunda página que pasará los idpres por URL separados por coma:

http://10.56.20.72/admindigitalpro/formcot.php?idords=15,14,13,

PERO!... el sistema nos debe validar si esos presupuestos corresponden a un mismo Cliente, de otra forma debe advertirnoslo. En este ejemplo los idpres corresponden a los siguientes Clientes:

15 para el cliente 4
14 para el cliente 4
13 para el cliente 3

Como se observa, por culpa del PRESUPUESTO 13, el sistema ya no nos generará el Informe

Primeramente hay que poner en un array los valores de la URL y contarlos para saber si el usuario seleccionó previamente más de 2 PRESUPUESTOS:

Código PHP:
$ords explode(",",$_GET[idords]);
 for (
$i=0;$i<count($ords)-1;$i++)
 {
       
$datos[] .= $ords[$i];

 }
                
$elementos = @implode(",",$datos);
$dat = @explode(",",$elementos);
                        
$contardat count(@explode(",",$elementos));

if (
$contardat>1){ 

Después tomar como base a cualquier elemento escogido, para luego poder ser comparado (Aquí es donde no encontré otra forma más óptima):
Código PHP:
$res mysql_query("select idcliente from presupuestos
where idpres = '$_GET[idords]'"
);
$row mysql_fetch_array($res);
$elembase $row[idcliente]; 
En este caso la consulta arroja el último registro, que en éste ejemplo es 14 y será el elemento base para compararlo con los demás.

Luego, empezar a validar si corresponden a un mismo Cliente a partir del array llamado $dat:

Código PHP:
foreach ($dat as $numero){
$rescomp mysql_query("select idcliente from presupuestos
where idpres = '$numero'"
);
$rowcomp mysql_fetch_array($rescomp);
   if (
$elembase==$rowcomp[idcliente]){
       continue;
   }else{
      echo 
'Lo siento, los elementos que usted seleccionó 
no corresponden al mismo Cliente... no se Vale!'
;
   }

Denme su opinión por favor... GRACIAS!