Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Query con not in non funzionante

    Nella query di delete ho dei problemi infatti le clausole deve c'è il not in danno sempre vero anche se id o idaut compaiono nella lista temp e mi si cancella tutto.
    Come devo fare?
    Grazie

    codice:
    $st=mysql_query("SELECT ip FROM presenti where logout=0",$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 ('".$temp."')) and (idaut NOT IN ('".$temp."'))",$conn) or die("ciao".mysql_error());

  2. #2
    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
    <<E' una decisione molto importante. Pensaci bene, Ataru!>>
    <<STOLTO! Non lo sai che io AGISCO SEMPRE PRIMA DI PENSARE???>>

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.