Originariamente inviato da beta_persei
come fai a mettere tutti i nick in $nickinviante, lo consideri come un array?
E successivamente come fai a fare il controllo? Fai un esempio concreto...
Si...$nickinviante contiene il valore estrapolato da un array chiamata $row..
Codice PHP:
$nickinviante=$row['nick_votoinviante'];
praticamente nel campo nick_votoinviante nel momento in cui un utente vota...il suo nome va a inserirsi in questo campo..quindi la variabile$nickinviante contiene tutti i nick che danno dei voti ad altri utenti...mentre
Codice PHP:
$nickricevente=$row['nick_votoricevente'];
contiene tutti i nick degli utenti che hanno ricevuto il voto...
Ecco ciò che succede nella tabella quando un utente vota..il suo nick e memorizzato nel campo nick_votoinviante ,il nick_votoricevente contiene il nick a cui ha dato il voto,votoricevuto contiene il voto dato,e a letto do sempre il valore 1 che uso poi per il controllo..
Codice PHP:
nick_votoinviante |nick_votoricevente| votoricevuto | letto | data
Codice PHP:
laura | carlitos | 8 | 1 | 2009-04-17 04:31:05
Codice PHP:
laura | Gigio78 | 8 | 1 | 2009-04-17 04:30:01
Codice PHP:
Gigio78 | laura | 7 | 1 | 2009-04-10 04:34:01
Ora qui succede per esempio che se l utente Gigio78 voglia votare carlitos mi da che ho già votato quell utente
anche se non l ho votato...e quà che sta il problema...
Il controllo viene fatto cosi...
Codice PHP:
//Se nel campo nickinviante quel nick ha valore 1 nel campo "letto" non fare votare...qui manda l alert...
if($nickinviante ==$haivotato)
{
echo "<script>
alert(\"Mi dispiace...ma hai già votato questo utente\");
location = \"http://italiawebchat.altervista.org/profiloaltri.php?nickname=$cdestinatario\"
</script>";
}
Purtroppo e un controllo approssimativo...perchè non potrà mai funzionare del tutto...o almeno funzionerà finchè nel campo "nickinviante"della tabella non sia presente il nick di chi vuole votare con valore uguale a 1....so già che è sbagliato cosi'..purtroppo però non ho trovato ancora come risolvere questa cosa...
Codice PHP:
//seleziono il nick di chi riceve il voto e il campo letto che contiene il nick di chi ha già votato
$sql="SELECT nick_votoricevente,letto FROM voti WHERE nick_votoricevente='".$cdestinatario."'AND letto=1 ";
$query1=@mysql_query("$sql",$link) or die("Errore query database: " . mysql_error());
//ciclo e racchiudo i valori in un array di nome $row
while($row=mysql_fetch_array($query1)){
//variabili che contengono valori racchiusi in array
$nickinviante=$row['nick_votoinviante'];
$nickricevente=$row['nick_votoricevente'];
$votodato=$row['votoricevuto'];
$haivotato=$row['letto'];
}
//Qui controllo che il nick che vuole votare quell utente abbia valore uguale ad 1 nel campo letto..se cosi fosse dai l alert
if($nickinviante ==$haivotato)
{
echo "<script>
alert(\"Mi dispiace...ma hai già votato questo utente\");
location = \"http://italiawebchat.altervista.org/profiloaltri.php?nickname=$cdestinatario\"
</script>";
}
//se il valore non è uguale a 1 nel campo letto può votare...
else {
$strsql="INSERT INTO voti (nick_votoinviante,nick_votoricevente,votoricevuto,letto,data) VALUES ('$cmittente','$cdestinatario','$cvoto','1',NOW())";
@mysql_query("$strsql",$link) or die("Errore query database: " . mysql_error());
echo "<script>
alert(\"Voto inviato!!!\");
location = \"http://italiawebchat.altervista.org/profiloaltri.php?nickname=$cdestinatario\"
</script>";
}
?>