Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/06/2010, 10:32
xaviarg
 
Fecha de Ingreso: mayo-2010
Mensajes: 102
Antigüedad: 14 años, 8 meses
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!