Ciao a tutti,
vado dritto al problema.
ho la seguente tabella tab1
Mettiamo che minni voglia impadronirsi di 10 persone che siano diverse da brigitta e battista, visto che le appartengono di già.id | uid | ref |
1 | pippo | pluto |
2 | pippo | minni !
3 | pippo | orazio !
4 | pippo | paperino !
5 | pluto | qui |
6 | pluto | quo |
7 | pluto | qua |
8 | minni | brigitta |
9 | minni | battista |
Quindi può impadronirsi di pluto, orazio, paperino, qui, quo e qua, senza però che vengano rimossi dai legittimi propretari.
Ora....come si può ben capire non ci sono 10 persone, ma solo 6 persone di cui si può impadronire....lo faccio apposta....perchè è qui che ho il problema...
Ecco quindi il risultato che dovrei ottenere:
Ecco....posto le query...id | uid | ref |
1 | pippo | pluto |
2 | pippo | minni !
3 | pippo | orazio !
4 | pippo | paperino !
5 | pluto | qui |
6 | pluto | quo |
7 | pluto | qua |
8 | minni | brigitta |
9 | minni | battista |
10 | minni | pluto |
11 | minni | orazio |
12 | minni | paperino |
13 | minni | qui |
14 | minni | quo |
15 | minni | qua |
// Estraggo tutti i personaggi già appartenenti a minni ( ovvero brigitta e battista )
$query = mysql_query("SELECT * FROM tab1 WHERE uid='minni' GROUP BY ref ");
while($result=mysql_fetch_array($query))
{
$ref = $result['ref];
}
// Cerco 10 personaggi nella colonna ref diversi da 'se stessi' (ovvero minni) escludendo anche quelli della precedente query (ovvero brigitta e battista).
$queryb = mysql_query("SELECT * FROM tab1 WHERE ref!='$ref' AND ref!='minni' limit 10");
while($resultb=mysql_fetch_array($queryb))
{
$risultato= $resultb['ref'];
// Inserisco nella tabella i 10 personaggi
$query_finale = "INSERT INTO tab1 (uid, ref) VALUES('minni','$risultato')";
}
Bene.....è due giorni che ci sbatto...e non riesco a risolvere....anche se minni può impadronirsi solamente di 6 personaggi, e non di 10( come da query ) la query me ne assegna 10, di cui 4 sono doppioni...
quindi un risultato simile
...che non va bene in quanto ci sono doppioni....id | uid | ref |
1 | pippo | pluto |
2 | pippo | minni !
3 | pippo | orazio !
4 | pippo | paperino !
5 | pluto | qui |
6 | pluto | quo |
7 | pluto | qua |
8 | minni | brigitta |
9 | minni | battista |
10 | minni | pluto |
11 | minni | orazio |
12 | minni | paperino |
13 | minni | qui |
14 | minni | quo |
15 | minni | qua |
16 | minni | paperino |
17 | minni | paperino |
18 | minni | qui |
19 | minni | quo |
Come fare per evitare tutto ciò?
Ovvero evitare che la query inserisca doppioni se il limit è impostato a 10 e i personaggi che si può impradonire minni sono solo 6?
Ho provato con miriadi di soluzioni, dal semplicissimo DISTINCT(ref) ad altre istruzioni....
Spero in un vostro aiuto.
Grazie