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.id) INNER 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