Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 21

Discussione: sql Update anomala

  1. #1

    sql Update anomala

    Prima di tutto ciao a tutti è molto che non frequento + il forum purtroppo....

    cmq ora sono qua con un grosso problema, ho una update che non funziona a dovere, ecco la query:

    UPDATE `dipendenti` SET `f_res` = '8',`f_ass` = '8' WHERE `id` = '473' LIMIT 1

    Vedete la condizione where? il campo id è univoco, ovvere solo un dipendente ha il codice 473.

    Vedete LIMIT 1? che dovrebbe appunto limitare l'operazione ad una riga?

    Ebbene, l'update viene eseguita su tutti i record!
    Non riesco proprio a capire dove sta il problema, xkè se la copio/incollo in phpmyadmin funziona perfettamente.

    Ecco alcune info sul sistema:
    MySQL 3.23.53-max-nt
    PHP 4.3.4
    IIS non ricordo, ma quello di win 2000 server (credo sia il 5)

    La funzione in altre pagine su altre tabelle ha sempre funzionato, e funziona, perfettamente.
    File Reality.sys corrupted. Reboot universe (Y/N)? Y_

  2. #2
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Se l'attributo della tabella è un intero non vanno messi gli apici, altrimenti te lo legge come stringa (id=473).
    Non credo sia questo il problema, però intanto prova a togliere gli apici.

  3. #3
    Sì è un intero, già provato in tutti i modi con e senza apici.

    Se faccio la modifica "manuale" da phpmyadmin la query che crea è con gli apici x cui avevo provato mettendoli è per questo che ci sono.
    File Reality.sys corrupted. Reboot universe (Y/N)? Y_

  4. #4
    Proprio nessuno sa rispondermi?
    File Reality.sys corrupted. Reboot universe (Y/N)? Y_

  5. #5
    [supersaibal]Originariamente inviato da LonelyWolf
    Proprio nessuno sa rispondermi? [/supersaibal]
    Escludendo miracoli... prova a postare lo script in php. cosi' com'e' ovviamente.

    Prova anche a stampare la query, magari scopri il perche'.



    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    Mi stai suggerendo le cose di "base" per il tracking dell'errore!

    cmq visto che così secondo te è meglio eccoti il codice, che è una normale mysql_query!

    Codice PHP:

    $id 
    $_POST["id"];
    // altre var con post e composizione di $qry in base ai campi

    $db mysql_connect($host$user$pass)    //Connessione a mysql
            
    or die("<center><font class=error>Impossibile connettersi a MySQL!
    "
    .mysql_error()."</font></center>");

    mysql_select_db($dbname) or die("<center><font class=error>Impossibile selezionare il database
    "
    .mysql_error()."</font></center>");
    $query "UPDATE `dipendenti` SET ".$qry." WHERE `id` = '$id' LIMIT 1";

    $risultato mysql_query($query,$db) or die ("<center><font class=error>Impossibile Modificare Anagrafica!
    "
    .$query."
    "
    mysql_error()."</font></center>");
    printf ("Updated records: %d\n"mysql_affected_rows());

     
    mysql_close($db);
         echo 
    $query
    File Reality.sys corrupted. Reboot universe (Y/N)? Y_

  7. #7
    Utente di HTML.it L'avatar di Teuzzo
    Registrato dal
    Mar 2002
    Messaggi
    969
    Prova a fare un

    print $query;

    e vedi cosa ti stampa.

  8. #8
    Certo che si ... sono le norme basilari.

    L'echo della query e' corretto? Sono poche le cose controllabili.

    Non ci sono errori di query (abortirebbe la query)

    Hai il LIMIT 1 che e' ridondante associato all' id univoco.

    mysql_affected_rows quante righe dichiara.

    Sei dentro a una o piu' funzioni?

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  9. #9
    echo della query è corretto, come già scritto, infatti se copio e incollo in phpmyadmin lo esegue aggiornando solo quella riga.

    mysql_affected_rows restituisce il numero di tutti i record: 63, vedendoli poi da phpmyadmin effettivamente ha cambiato il valore a tutte le righe.

    con o senza limit il risultato (errato) non cambia.

    è una semplice pagina che prende da un form (altra pagina) i dati da modificare e l'ID, niente funzioni/cicli cose strane, semplicemente un update ed alla fine se corretto scrive eseguito correttamente.

    Non mi capacito proprio xkè dalla pagina php non si limita alla chiave mentre da phpmyadmin sì!


    Mi stai suggerendo le cose di "base" per il tracking dell'errore!
    L'ho scritto proprio xkè sono state le prime cose ke ho fatto!
    File Reality.sys corrupted. Reboot universe (Y/N)? Y_

  10. #10
    La spiegazione e' una soltanto. La query viene troncata prima del where. In quella variabile del set che hai?

    Metti uno spazio prima del punto....
    codice:
    ". $qry ."

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

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.