• 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ì 😉