Ver Mensaje Individual
  #1 (permalink)  
Antiguo 27/12/2010, 21:06
Fonsiman
 
Fecha de Ingreso: septiembre-2010
Mensajes: 13
Antigüedad: 13 años, 6 meses
Puntos: 0
Sistema de votación

Hola a todo el mundo. Hace poco aprendí MySQL. Creé una BB y la volqué en mi web y hasta ahí todo bien. El problema vino porque quiero hacer un sistema de votación que se auto-actualice.
La base de datos guarda "objeto" que es lo que someto a votación, sus datos en lista: posición más alta, semanas en la lista y el puesto de la semana anterior y los votos tanto de la semana como del mes y del año (estos dos últimos los actualizaría con otro script). Además también una imagen. El código es el siguiente:

Código HTML:
<?php
	
	include ("../usarBaseDatos.php");

	$consulta="SELECT * FROM votacion ;";
	
	$hacerConsulta = mysql_query ($consulta, $conectado);
	$numeroDeRegistros=mysql_num_rows ($hacerConsulta);
	
	$votosaux=0;
	
	for($i=0;$i<$numeroDeRegistros;$i++){	
	
		for($j=0;$j<$numeroDeRegistros;$j++){
		$votos =  mysql_result ($hacerConsulta, $j, "votos_semana");
			if ($votos>$votosaux){
			$posaux = mysql_result ($hacerConsulta, $j, "posicion");
			}
		}
	$k= ($posaux - 1);
	
	$objetonew= mysql_result ($hacerConsulta, $k, "objeto");
	$semanaPasadanew= $posaux;
	if($aux1=mysql_result ($hacerConsulta, $k, "puesto_alto") > $posaux){
	$puestoAltonew= mysql_result ($hacerConsulta, $k, "puesto_alto");
	}else{
	$puestoAltonew = $posaux;
	}
	$aux2= mysql_result ($hacerConsulta, $k, "semanas_lista");
	$semanasListanew= $aux2 + 1;
	$imagennew= mysql_result ($hacerConsulta, $k, "imagen");
	$votossemnew= 0;
	$votosmesnew= mysql_result ($hacerConsulta, $k, "votos_mes") ;
	$votosanualnew= mysql_result ($hacerConsulta, $k, "votos_anual") ;
	
	$objetoaux= mysql_result ($hacerConsulta, $i, "objeto");
	$semanaPasadaaux= mysql_result ($hacerConsulta, $i, "semana_pasada");
	$puestoAltoaux= mysql_result ($hacerConsulta, $i, "puesto_alto");
	$semanasListaaux= mysql_result ($hacerConsulta, $i, "semanas_lista");
	$imagenaux= mysql_result ($hacerConsulta, $i, "imagen");
	$votossemaux= mysql_result ($hacerConsulta, $i, "votos_semana");
	$votosmesaux= mysql_result ($hacerConsulta, $i, "votos_mes");
	$votosanualaux= mysql_result ($hacerConsulta, $i, "votos_anual");
	
	$consulta2="UPDATE votacion SET posicion='".$i."',  objeto='".$objetonew."'semana_pasada='".$semanaPasadanew."', puesto_alto='".$puestoAltonew."'semanas_lista='".$semanasListanew."', imagen='".$imagennew."' votos_semana='".$votossemnew."', votos_mes='".$votosmesnew."'votos_mes='".$votosanualnew."' WHERE posicion=".$i.";";
	$hacerConsulta2 = mysql_query ($consulta2, $conectado);
	$consulta2="UPDATE votacion SET posicion='".$k."', objeto='".$objetoaux."'semana_pasada='".$semanaPasadaaux."', puesto_alto='".$puestoAltoaux."'semanas_lista='".$semanasListaaux."', imagen='".$imagenaux."' votos_semana='".$votossemaux."', votos_mes='".$votosmesaux."'votos_mes='".$votosanualaux."' WHERE posicion=".$posaux.";";
	}/*}*/
?>
El código no me da ningún fallo aparente, es decir, la página se me carga sin problemas. Para comprobarlo he puesto un botón en un formulario que en el onSubmit lo dirijo al archivo php y no cambia nada en la web. Aún así me surgen varias dudas:

1. En el UPDATE - SET , ¿puedo utilizar "posicion" en el WHERE si lo utilizo también en el SET?
2. Para realizar operaciones (sumas y restas) con mysql_result lo igualo antes a un auxiliar. ¿Esto está bien o puedo compararlo directamente?

Por otra parte para que se actualice automáticamente pienso utilizar el siguiente IF:

if ( date("w") == 2 && date("H") == 2 && date("i") == 49 && date("s") == 00 )

¿Está bien escrito o tengo que utilizar también auxiliares?

Espero que me podáis ayudar, que no sea esto un tostón y que no me peguéis mucho si no tengo mucho idea de esto, aprendí mysql y php hace muy muy poco. También agradecería si se puede hacer lo que quiero de forma más breve, que no sé yo si me he liado mucho je, je.

Un saludo y muchas gracias de antemano.