• Bannato User Attivo

    Script bugiardo!

    Ciao ragazzi ho questo sscript che dovrebbe modificare il database ma non capisco, perchè lo script mi da risultato positivo mentre poi il reord non viene modificato, qualcuno riesce a capire perchè mi fa questo?

    vi posto lo script

    <?php
    $confirm=$_REQUEST['confirm'];
    $id=$_GET[id];
    $id=$_REQUEST['id'];

    $db = mysql_connect($db_host, $db_user, $db_pass); if ($db == false )
        die ("Errore nella connessione al database");
    mysql_select_db($db_name, $db) or die ("Errore nella selezione del database");
    
    if(!$confirm){
        $query = "SELECT * FROM milano WHERE id=" . $_GET['id'];
        $result = mysql_query($query, $db);
        $AffectedRows = mysql_affected_rows($db);
        
        if($AffectedRows==0){
            print ("<b>NON ESISTONO ANNUNCI DA MODIFICARE</b>");
        }else{
            mysql_data_seek($result,0);
            
            $row=mysql_fetch_row($result);
            
            print("<table>");
            print("<form method=\"post\" action=\"{$_SERVER['PHP_SELF']}\">");
            
            foreach ($row as $k => $v){
                $myfield = mysql_fetch_field($result,$k);
                print("<tr><td>$myfield->name</td>");
                print("<td><input type\"text\" value=\"" . $v . "\" name=\"" . $myfield->name . "\" size=\"100\" maxlenght=\"100\"></td></tr>");
            }
            print ("<tr><td colspan=\"2\"><input type=\"submit\" value=\"conferma modifiche\"></td></tr> ");
            print("<input type\"hidden\" name=\"confirm\" value=\"1\">");
            print("</form>");
            print("</table>");
            
            mysql_free_result($result);
            mysql_close($db);
        }
        
    }else{
        $provincia=$_REQUEST['provincia'];
        $comune=$_REQUEST['comune'];
        $zona=$_REQUEST['zona'];
        $contratto=$_REQUEST['contratto'];
        $tipologia=$_REQUEST['tipologia'];
        $prezzo=$_REQUEST['prezzo'];
        $mq=$_REQUEST['mq'];
        $descrizione=$_REQUEST['descrizione'];
        
        $query = "UPDATE milano SET provincia=\"$provincia\",". "comune=\"$comune\","."zona=\"$zona\","."contratto=\"$contratto\","."tipologia=\"$tipologia\","."prezzo=\"$prezzo\","."mq=\"$mq\","."descrizione=\"$descrizione\",". "locali=\"$locali\"" . "WHERE id=$id";
      
      $result = mysql_query($query,$db);
      $AffectedRows = mysql_affected_rows($db);
      
      if($AffectedRows!=0){
        print ("<b>L'ANNUNCIO E' STATO MODIFICATO</b>");
    }else{
        print("errore nella modifica.");
    }
    mysql_close($db);
    
    }
    

    ?>

    grazie a tutti


  • Moderatore

    [php]
    $query = "UPDATE milano SET provincia="$provincia",". "comune="$comune","."zona="$zona","."contratto ="$contratto","."tipologia="$tipologia","."pre zzo="$prezzo","."mq="$mq","."descrizione="$de scrizione",". "locali="$locali"" . "WHERE id=$id";
    [/php]
    questa query ha un errore per me... sulla variabile prezzo scritta pre zzo
    inoltre scrivi così:
    [php]
    $result = mysql_query($query,$db) or die ("Query non valida: " . mysql_error());

    [/php]

    dimmi se ti funzica 🙂


  • Bannato User Attivo

    ciao massimux, dopo aver variato il codice mi ece questo errore:

    Query non valida: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

    cosa sarà?
    invece pre zzo è stato solamente un errore di copia e incolla.. magari fosse stato per quello


  • Consiglio Direttivo

    ciao tifo-milan.it

    prova un po a scriverlo così quell'UPDATE
    [php]$query = "UPDATE milano SET provincia='$provincia',comune='$comune', zona='$zona', contratto='$contratto', tipologia='$tipologia', prezzo='$prezzo', mq='$mq', descrizione='$descrizione', locali='$locali' WHERE id='$id'";[/php]

    facci sapere :ciauz:

    EDIT: oooops...ci siamo accavallati 😄


  • Moderatore

    Samyorn ti ha aggiustato la query 🙂

    doivrebbe funzionare inoltre prendi la sana abitudine di utilizzare i singoli apici per non confonderti le idee 🙂

    Ciao e facci sapere


  • Bannato User Attivo

    adesso l'errore non me lo da più come pria però mi stampa errore modifica che è un print impostato da me... non vorrei che risolvendo adesso questo errore mi esca nuovamente fuori query non valida...
    che sarà mai aesso? certo che php a volte è inspiegabile...


  • Consiglio Direttivo

    Hai verificato che i dati siano stati aggiornati intanto?


  • Bannato User Attivo

    ihih... l'errore veniva da lontano... esattamente dalla creazione del db.. per dover di cronaca ve lo devo spiegare

     $id=$_REQUEST['id'];
    

    qui viene memorizzato l'id del'annuncio, il probema che nel db non ho nessun id ma.... ho ID 😄

    meno male che ho risolto... grazie dell'aiuto ciao raga


  • Consiglio Direttivo

    L'importante è risolvere 😉


  • User Attivo

    Mi accodo ank'io perchè ho un problema simile e cioè ...

    Quando l'utente raggiunge la pagina di attivazione nel mio database faccio un UPDATE sulla riga dell'utente da attivare, il mio problema è questo ... come faccio a individuare dopo un UPDATE se il record è già stato aggiornato ?

    thanks all


  • Consiglio Direttivo

    Puoi fare un SELECT su quell'ID e verificare che il campo di attivazione abbia il valore di attivazione che hai stabilito. 😉


  • User Attivo

    ahh ... 2 query dunque ... una SELECT e poi un UPDATE ? Sono uno di quelli che tende a far meno query possibili 😄
    Non esiste un UPDATE e SELECT tuttoincluso ?

    thanks


  • Consiglio Direttivo

    veramente prima fai l'update e poi il select, senno' che controlli prima? XD


  • User Attivo

    .... come ? Se la riga già esiste col campo settato a 0 ... prima di farlo diventare 1(attivato) controllo con una SELECT no ??? E non il contrario ..... :S


  • Consiglio Direttivo

    come faccio a individuare dopo un UPDATE se il record è già stato aggiornato ?

    Scusa tu non vuoi verificare che l'UPDATE sia andato a buon fine??? :mmm:
    ovvero che quel campo sia diventato 1??:?


  • User Attivo

    ehm no volevo controllare che nn venga con un F5 magari ... rieseguito l'UPDATE inutilmente ... stampando a video una frase tipo "Utente già attivo inutile riattivarlo !!" 🙂

    thanks


  • Consiglio Direttivo

    Ah
    allora fai il SELECT prima se ti serve così 😉