Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    22

    SELECT sbagliato dopo UPDATE

    Salve, ho un problema con il MySQL.

    Ho necessita, caricando una pagina php, di aggiornare una tabella e mostrare i valori aggiornati.

    Il problema è che a volte lo script mi funziona, a volte no, quindi credo che il problema potrebbe essere che a volte la SELECT viene eseguita prima che l'UPDATE abbia successo.

    E' possibile che accada questo? Come faccio ad essere sicuro che la SELECT avvenga solo dopo che l'UPDATE ha avuto successo???

    Grazie a quanti risponderanno.

  2. #2
    metti una struttura di controllo che solo se il file è uploadato allora fa la select oO

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    22
    Scusa non capisco, che c'entra il file uploadato???

    Sto parlando di UPDATE, non UPLOAD.

  4. #4
    stò impazzendo oggi o.o

    ad ogni modo, la select è messa dopo l'update immagine nella tua pagina php, se mostri il codice magari potremmo (la community) notare errori e consigliarti per il meglio.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    22
    eccolo

    codice:
    $appelloid=$_GET['id'];		
    $qdisable="SELECT * FROM appelli WHERE appelli_id = $appelloid";
    $qqdisable = mysql_query($qdisable) or die("Query fallita1");
    	
    $lineadisable = mysql_fetch_array($qqdisable, MYSQL_ASSOC);
    if($lineadisable['appelli_abilitato']==0){
    	$qqqdisable="UPDATE appelli SET appelli_abilitato = 1 WHERE appelli_id = $appelloid";
    	print "Appello abilitato con successo
    ";
    }
    else{ 
    	$qqqdisable="UPDATE appelli SET appelli_abilitato = 0 WHERE appelli_id = $appelloid";
    	print "Appello disabilitato con successo
    ";
    }
    print $qqqdisable;
    $qqqqdisable = mysql_query($qqqdisable) or die("Query fallita2");
    $query="SELECT * FROM appelli ORDER BY appelli_data";
    $risultato = mysql_query($query) or die("Query fallita");
    Grazie!

  6. #6
    ora, non ricordo a memoria tutti i codici php ma quando lanci una query mysql dovresti in teoria specificare due parametri no? o.0

    Codice PHP:
    $db mysql_connect($db_host$db_user$db_password);
    if (
    $db == FALSE)
    die (
    "Errore nella connessione. Verificare i parametri nel file conf.php");
    mysql_select_db($db_name$db)
    or die (
    "Errore nella selezione del database. Verificare i parametri nel file conf.php");
    $query_controllo "SELECT blocco FROM $var1 WHERE codice_lavoro LIKE $codice_now";
    $ris_query_controllo mysql_query($query_controllo$db);
    $r_q_c mysql_fetch_array($ris_query_controllo); 
    Ovviamente nel tuo caso questi sono esempi eh o.0

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    22
    Si, la connessione al database avviene con successo, non è quello il problema.Il problema è che la SELECT mi da risultati non aggiornati.

    Come dicevo nel primo post, credo che la SELECT vada in esecuzione prima del corretto aggiornamento dell'UPDATE.

  8. #8
    potresti mettere una variabile stile contatore, parte che è 1, sinchè non è impostata a 2 non fa la 2° select o.0

    Codice PHP:
    $count 1;
    $appelloid=$_GET['id'];        
    $qdisable="SELECT * FROM appelli WHERE appelli_id = $appelloid";
    $qqdisable mysql_query($qdisable) or die("Query fallita1");
        
    $lineadisable mysql_fetch_array($qqdisableMYSQL_ASSOC);
    if(
    $lineadisable['appelli_abilitato']==0){
        
    $qqqdisable="UPDATE appelli SET appelli_abilitato = 1 WHERE appelli_id = $appelloid";
        print 
    "Appello abilitato con successo
    "
    ;
            
    $count++;
    }
    else{ 
        
    $qqqdisable="UPDATE appelli SET appelli_abilitato = 0 WHERE appelli_id = $appelloid";
        print 
    "Appello disabilitato con successo
    "
    ;
            
    $count++;
    }
    print 
    $qqqdisable;
    $qqqqdisable mysql_query($qqqdisable) or die("Query fallita2");
    $query="SELECT * FROM appelli ORDER BY appelli_data";
    if(
    $count 2)
    {
      
    $risultato mysql_query($query) or die("Query fallita");


  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2006
    Messaggi
    22
    Ma scusa, il problema non è nella sequenzialità del codice, altrimenti si sarebbe risolto da sé.
    Il problema sta nel fatto che la chiamata all'UPDATE non è sincrona, quindi il codice continua a scorrere.

  10. #10
    mi pare molto strano questo tuo problema :S cioè che l'update sia lento ed il codice scorra, cioè di norma, sinchè non ha finito quel punto non passa al successivo, nonostante il database che puoi avere dico

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.