Ver Mensaje Individual
  #12 (permalink)  
Antiguo 05/04/2010, 21:08
Avatar de reborn
reborn
 
Fecha de Ingreso: febrero-2010
Mensajes: 440
Antigüedad: 14 años, 2 meses
Puntos: 1
Respuesta: Un solo voto por usuario

Creo q entendi lo de las consultas multitablas.
Ahora bien, como aplico esa consulta para el problema q planteo?
Tengo por un lado un archivo visor.php q es el q muestra la noticia y, ademas de hacer la consulta para mostrar las noticias, tambien hago el include a los comentarios (comentarios_ram.php) y los votos (votar.php).

visor.php
Código PHP:
<?php
      
include('db-cnx.php');
      
$not_ID $_GET['not_ID'];
 
$sqlQueryNot mysql_query("SELECT not_ID, notUser, notTitulo, notTexto, notVoto, notPunto FROM sn_noticias WHERE not_ID = '$not_ID'"$db_link)
      or die(
mysql_error);
      include(
'comments_ram.php');
      while(
$rowNot mysql_fetch_array($sqlQueryNot)){
      echo 
$rowNot['notTitulo'];
      echo 
$rowNot['notTexto'];
      echo 
$rowNot['notUser'];
      
view_comments ($rowNot['not_ID']);
      include (
'votar.php');
      echo 
$rowNot['notVoto'];      
}
?>
...el de comentarios no interesa en este caso pero si el de votar q es el siguiente:
Código PHP:
<?
#####CONEXIÓN A MYSQL
@mysql_connect('****','****','****')or die ('Ha fallado la conexión: '.mysql_error());
@
mysql_select_db('****')or die ('Error al seleccionar la BD: '.mysql_error());
////end conexión
$SSQL_=mysql_query("SELECT * FROM sn_noticias WHERE not_ID='".$_GET[not_ID]."'")or die(mysql_error());
$array_d=mysql_fetch_array($SSQL_);
$valoracioN_total=@round($array_d[notPunto]/$array_d[notVoto],2);

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

 
'<strong>Valoración Media : '.$valoracioN_total.'</strong> <div style="background-color:#EFEFEF; width:50px"><img width="'.($valoracioN_total*5).'" height="6" style="background-color: #000099"></div> <br>Total de votos: '.$array_d[notVoto];

?>
<hr>
<form action="<? echo $REQUEST_URI;?>" method="post">
Nueva valoración:
<select name="valor" id="valor">
<? for ($i=1$i<=10 $i++) echo '<option value="'.$i.'">'.$i.'</option>';?>
</select>
<input type="submit" value="Votar por este artículo" style="width: 194px">
</form>
Entonces se me aconseja q haga otra tabla y arme una consulta con inner join para relacionar las tablas y las columnas q contienen los id (usuario, noticia y voto)...quedaria algo asi:

CREATE TABLE `votos` (
`id` int(11) NOT NULL auto_increment,
`id_user` int(11) NOT NULL,
`not_ID` int(11) NOT NULL,
`notVoto` varchar(25) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM;

Código PHP:
SELECT FROM (votos INNER JOIN authuser ON votos.id_user authuser.idINNER JOIN sn_noticias ON votos.not_ID=sn_noticias.not_ID AND votos.notVoto=sn_noticias.notVoto 

...y ahora me trabe otra vez porq no se como seguir para conseguir q solo haya un voto por usuario