Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150

    [Mysql] modifica dei campi

    Ciao a tutti, leggendo post simili non riesco a capire che tipo di errore io abbia commesso.

    Come da titolo, devo modificare dei campi di un db di una particolare entry

    La tabella contiene i seguenti campi:
    $query = "CREATE TABLE Users (
    id_usr INT (5) UNSIGNED NOT NULL AUTO_INCREMENT,
    username VARCHAR (16) NOT NULL,
    password VARCHAR (16) NOT NULL,
    fullname VARCHAR (24) NOT NULL,
    email VARCHAR (36) NOT NULL,
    administrator ENUM ('0','1') NOT NULL,
    enabled ENUM ('0','1') NOT NULL,
    PRIMARY KEY (id_usr)
    )";

    Ora, in un file io richiamo i dati di una entry e li passo tramite form alla pagina di modifica.
    La pagina di modifica e' la seguente:

    codice:
    <?php
    
    include ("db_connect_data.php");
    include ("top_foot.php");
    
    session_start();
    if (! (autentica ($_SESSION ['user'], $_SESSION ['password']))) {
    	
    	@ header ("Location: home.htm"); exit;
    	}
    
    $id= clin ($_POST['id']);
    $newuser= clin ($_POST['usrname']);
    $fullname= clin ($_POST['fullnm']);
    $email= clin ($_POST['email']);
    
    $result=doquery ("UPDATE users SET username='$newuser' fullname='$fullname' email='$email' WHERE id_usr='$id'");
    
    ?>
    La funzione doquery e' contenuta nel file db_connect_data.php e inoltra semplicemente la query (la ho sempre usata cosi').(la tabella e' chiamata 'users').
    Unico possibile errore penso stia nella sintassi della query.

    In poche parole io devo aggiornare solo determinati campi di una entry (devo modificare username, fullname ed email e lasciare intatto id, password, administrator ed enabled) e individuo questa entry tramite id (che e' univoco).
    Dove sbaglio?

  2. #2
    Prova così, mettendo le virgole tra un campo e l'altro:

    ...username='$newuser', fullname='$fullname', email='$email'...
    En la habana hay una pila 'e locos!

  3. #3
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    non si capisce che errore riscontri...

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Hai ragione, ora provo come proposto da scudo.

    Cmq non mi da errori la query scritta da me, ma semplicemente non fa nulla, ovvero non modifica i campi.

  5. #5
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    mancano le vorgole?!?

    $result=doquery ("UPDATE users SET username='$newuser' , fullname='$fullname' ,email='$email' WHERE id_usr='$id'");

  6. #6
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    sono un pò lento... aveva già risp scudo... scusate

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Grazie delle risposta, ma sembra non cambiare nulla.

    Questa e' la query con le virgole ora:

    Codice PHP:
    $idclin ($_POST['id']);
    $newuserclin ($_POST['usrname']);
    $fullnameclin ($_POST['fullnm']);
    $emailclin ($_POST['email']);

    echo (
    "$id
    "
    );
    echo (
    "$newuser
    "
    );
    echo (
    "$fullname
    "
    );
    echo (
    "$email
    "
    );
    $result=doquery ("UPDATE users SET username='$newuser' , fullname='$fullname' ,email='$email' WHERE id_usr='$id'"); 
    (ho messo gli echo per vedere che le variabili siano riempite correttamente, e lo sono).

    Questa e' la funzione doquery:
    Codice PHP:
    function doquery($laquery){
          
    $temp1 mysql_connect("localhost""root""");
            if (!
    $temp1){
                die (
    "Connessione fallita. Controlla i connect data su ".$db_host); exit; @ mysql_close($temp1);
            }
        
            if(!
    mysql_select_db("progetto"$temp1)){
                die (
    "mi sono connesso malamente al db ".$temp1." Controllare i connect data"); 
                echo 
    mysql_error(); exit;
                
    mysql_close($temp1);
            }
            
    $temp2=mysql_query($laquery);
            
    //echo $laquery;
            
    mysql_close($temp1);
            return 
    $temp2;
        } 
    Come detto non mi da nessun errore, semplicemente non mi modifica i campi..deve essere un errore banale ma non riesco a scovarlo , sono abbastanza fuso.

    p.s. vorrei farvi una domanda su una form inviata con metodo post. posso farla qui o apro un nuovo thread?

    ciao e grazie

  8. #8
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    difficile stampi qualche errore...

    aggiungi

    $temp2=mysql_query($laquery) or die ("errore nella esecuzione : " . mysql_error());

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2007
    Messaggi
    150
    Niente, non mi da errori.

  10. #10
    Utente di HTML.it L'avatar di mariox
    Registrato dal
    Nov 2006
    Messaggi
    837
    prova inserendo la parola "User" con la prima lettera in maiuscolo:

    Codice PHP:
    $idclin ($_POST['id']);
    $newuserclin ($_POST['usrname']);
    $fullnameclin ($_POST['fullnm']);
    $emailclin ($_POST['email']);

    echo (
    "$id
    "
    );
    echo (
    "$newuser
    "
    );
    echo (
    "$fullname
    "
    );
    echo (
    "$email
    "
    );
    $result=doquery ("UPDATE Users SET username='$newuser' , fullname='$fullname' ,email='$email' WHERE id_usr='$id'"); 

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.