Foros del Web » Programando para Internet » PHP »

Sistema de votos

Estas en el tema de Sistema de votos en el foro de PHP en Foros del Web. Buenas, estoy haciendo un sistema del estilo siguiente: 1 0 Tengo este código, pero queria saber como hacerlo mas compacto y que no me recargue ...
  #1 (permalink)  
Antiguo 05/06/2010, 10:32
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 14 años
Puntos: 1
Sonrisa Sistema de votos

Buenas, estoy haciendo un sistema del estilo siguiente: 1 0

Tengo este código, pero queria saber como hacerlo mas compacto y que no me recargue toda la pagina, solo actualice los votos...


------------ POSITIVO ------------

<?php
include("includes/conexion.php");

mysql_connect($host, $user, $pass) or die('Connection failed');
mysql_select_db($db) or die('DB selection failed');

$valor = $_GET['tv'];
$result = mysql_query("SELECT num_votos FROM canales WHERE img='$valor'") or die(mysql_error());

while($row = mysql_fetch_assoc($result)){
printf("

<b>%s</b>

", $row['num_votos']);}
?>


<?
include("includes/conexion.php");

@mysql_connect($host, $user, $pass)or die ('Ha fallado la conexión: '.mysql_error());
@mysql_select_db($db)or die ('Error al seleccionar la BD: '.mysql_error());

$SSQL_=mysql_query("SELECT * FROM canales WHERE img='".$_GET[tv]."'")or die(mysql_error());

if(isset($_POST[valor])){
if(mysql_num_rows($SSQL_)==0){
@mysql_query("INSERT INTO canales VALUES('".$_GET[tv]."','1','".$_POST[valor]."')")or die ('ERROR AL INSERTAR REGISTRO: '.mysql_error());
}else{
@mysql_query("UPDATE canales SET num_votos=num_votos+1 WHERE img='".$_GET[tv]."'")or die ('ERROR AL MODIFICAR REGISTRO: '.mysql_error());
}
header('Location:.$REQUEST_URI.');

if(isset($error))
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=canal.php>";

else
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=canal.php>";

exit;
}

echo '
<form action="" method="post" class="buscar">
<select name="valor" size="1" id="valor" style="visibility:hidden" class="valor-oculto">
<option value="1">1</option>
</select>
<input type="submit" value=" " class="voto">
</form>
';
?>



------------ NEGATIVO ------------


<?php
include("includes/conexion.php");

mysql_connect($host, $user, $pass) or die('Connection failed');
mysql_select_db($db) or die('DB selection failed');

$valor = $_GET['tv'];
$result = mysql_query("SELECT num_votos_negativo FROM canales WHERE img='$valor'") or die(mysql_error());

while($row = mysql_fetch_assoc($result)){
printf("

<b>%s</b>

", $row['num_votos_negativo']);}
?>


<?
include("includes/conexion.php");

@mysql_connect($host, $user, $pass)or die ('Ha fallado la conexión: '.mysql_error());
@mysql_select_db($db)or die ('Error al seleccionar la BD: '.mysql_error());

$SSQL_=mysql_query("SELECT * FROM canales WHERE img='".$_GET[tv]."'")or die(mysql_error());

if(isset($_POST[valor2])){
if(mysql_num_rows($SSQL_)==0){
@mysql_query("INSERT INTO canales VALUES('".$_GET[tv]."','1','".$_POST[valor2]."')")or die ('ERROR AL INSERTAR REGISTRO: '.mysql_error());
}else{
@mysql_query("UPDATE canales SET num_votos_negativo=num_votos_negativo+1 WHERE img='".$_GET[tv]."'")or die ('ERROR AL MODIFICAR REGISTRO: '.mysql_error());
}
header('Location:.$REQUEST_URI.');

if(isset($error))
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=canal.php>";

else
echo "<META HTTP-EQUIV='Refresh' CONTENT='0; URL=canal.php>";

exit;
}

echo '
<form action="" method="post" class="buscar">
<select name="valor2" size="1" id="valor2" style="visibility:hidden" class="valor-oculto">
<option value="1">1</option>
</select>
<input type="submit" value=" " class="voto2">
</form>
';
?>



El codigo me funciona bien, solo tenia esa duda, hacer el codigo mas compacto y que no me recargue toda la pagina, solo donde estan los votos...

Otra cosa (que no corre prisa), como hacer para que solo se pueda votar una vez por usuario... Esto es por si alguien quiere ponerme el codigo, pero no lo necesito ya mismo.

Muchas gracias desde ya!
  #2 (permalink)  
Antiguo 05/06/2010, 16:44
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: Sistema de votos

lo que necesitas es hacerlo vía petición AJAX, busca algo de información en el el foro correspondiente.

Etiquetas: votos, sitemap
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 19:57.