Ver Mensaje Individual
  #4 (permalink)  
Antiguo 16/07/2008, 11:31
jurena
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Cáceres
Mensajes: 3.735
Antigüedad: 16 años, 7 meses
Puntos: 300
Respuesta: contar coincidencias

He reportado a los moderadores el mensaje para darte una solución en PHP con arrays. Si te soy sincero, no me gusta nada, pues preferiría un cambio en la estructura de la base de datos, pero dada tu situación...:

Código PHP:

<?php
$conexion 
mysql_connect('localhost','root','tuclave');
mysql_select_db("moquehua"$conexion);
$e="2";//carga del botón 1
$f="4";//carga del botón 2
$g="3";//carga del botón 3
$h="1";//carga del botón 4
function busqueda ($a$b$c$d$opcion) {//función que tras introducir los valores de los cuatro botones genera una cadena para la búsqueda con preg_match_all
$patron="([";
if (isset (
$a) && !empty($a)) {$patron.="|$a";}
if (isset (
$b) && !empty($b)) {$patron.="|$b";}
if (isset (
$c) && !empty($c)) {$patron.="|$c";}
if (isset (
$d) && !empty($d)) {$patron.="|$d";}
$patron.="]{1})";
$patron=str_replace("[|""["$patron);
preg_match_all($patron$opcion$cuenta);
return 
count($cuenta[0]);//cuenta de los localizados, situados en el índice [0] del array
}
$query="SELECT vendedores, opciones FROM vendedores WHERE tipo = 'MOTOS'";
$res=mysql_query($query);//consulta
$data= array();//defino un array
while($d mysql_fetch_array($res))  {
$dopcion=$d['opciones'];
$resultados busqueda ($e$f$g$h$dopcion);//aplico la función a la cadena traída de la base
$data[$d['vendedores']] = $resultados;}//cargo los datos de los vendedores y sus coincidencias en el array
arsort($data);//ordeno el array por las coincidencias de forma descendente
reset($data);
foreach (
$data as $key => $valor){echo $key.' '.$valor.'</br>';}//muestro los datos del array
?>
EDITO: Ves todo esto: con una estructura del tipo que te dije y una sintaxis SQL simple, lo lograrías, y hasta creo que sería más rápido, aunque de eso no estoy seguro.

Última edición por jurena; 16/07/2008 a las 13:54