Creado sia a causa del fatto che stai mescolando una array php con della sintassi SQL. Non credo sia accettabile per il motore di Mysql.
Prova a fare una unica delete come segue:
codice:
$st=mysql_query("DELETE FROM contatto WHERE (id NOT IN (SELECT ip FROM presenti where logout=0) ) and (idaut NOT IN (SELECT ip FROM presenti where logout=0))",$conn) or die("ciao".mysql_error());
oppure, se come mi sembra di capire richiami spesso questi dati sulla tabella PRESENTI, meglio se ti fai una vista, molto piu' performante...
codice:
CREATE VIEW pres_view AS SELECT ip FROM presenti WHERE logout=0
e quindi il tuo codice diventa:
codice:
$st=mysql_query("SELECT * FROM pres_view",$conn) or die(mysql_error());
$temp=array();
while ($row=mysql_fetch_array($st))
$temp[]=$row['ip'];
$temp=implode(",",$temp);
print $temp;
$st=mysql_query("DELETE FROM contatto WHERE (id NOT IN (SELECT * FROM pres_view)) and (idaut NOT IN (SELECT * FROM res_view))",$conn) or die("ciao".mysql_error());
ovviamente se non devi stampare l'array l'unica istruzione che ti serve e' l'ultima.....
Enjoy