• ModSenior

    Allora, la cosa è strana, modifica questo:
    [php]
    $query = "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";
    $dbResult = mysql_query($query, $db);
    [/php]
    In questo:
    [php]
    $query = "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";
    $dbResult = mysql_query($query, $db) or die(mysql_error());
    [/php]
    Vedi se da errore.
    L'unica cosa che mi viene in mente è che puoi avere i magic_quotes impostati a off nel php.ini, e in uno dei campi mandi un ' modificando cosi la query, anche se non sono molto convinto che il problema può essere questo.

    Evita di chiamare i campi con caratteri accentati ed anche le variabili. Al posto di città usa citta, può dare effetti indesiderati.


  • User

    Modificato come da tuoi suggerimenti ma la risposta è sempre
    1Modificati: 0 records

    Vuoi sapere una cosa carina?
    Se agisco direttamente in myPHPadmin a modifico uno dei records, vedo la modifica nella tabella nella pagina PHP nel mio browsers.

    Quando poi tento di modificarla tramite questa "simpatica" pagina di modifica il risultato è che i records vengono cancellati...

    Può esserti utile?


  • ModSenior

    La cosa strana è che c'è il record con quell'id, infatti il mysql_num_rows che abbiamo fatto lo conferma, la query non dà errore ma non modifica nulla.
    L'unica cosa che penserei in questo caso, è aver il nome di qualche campo che dià problemi.
    Stampa la query con:
    [php]
    echo "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id';
    [/php]
    E vedi lanciandola dal phpmyadmin che fà.

    Proverei a togliere anche dalla query la modifica del campo città, magari quella à da fastidio.

    Oltre questo francamente non sò più che dirti, perchè non trovo un altra spiegazione logica.


  • User

    Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in /home/.........../............/............../................/modifica.php on line 93

    😞 Questo è ciò che ottengo ... naturalmente ho sostituito l'indirizzo completo con dei puntini per motivi di privacy ....

    ho rimesso tutto come prima e ho cancellato i parametri del campo "città" e naturalmente ottengo la solita risposta

    1Modificati: 0 records

    Waaaaaaa!!!! 😢


  • ModSenior

    Si errore mio, dovevi fare:
    [php]
    echo "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";
    [/php]


  • User

    update rubrica set promotore='', nome_azienda='', settore='', città='', indirizzo='', nome_contatto='', telefono='', email='', sede_estero='', azioni='', progressione='', risultato_finale='', note='' where id='7'1Errore:Query was emptyQuery was empty

    😞 😞 😞


  • ModSenior

    Query was empty?
    Puoi postare il codice completo, non vorrei che abbiamo fatto un pò di confusione con questi aggiungi qua e là.
    La query stampata se la lanci dal phpmyadmin dice record modificati 0?


  • User

    Ecco il codice completo

    [php]<?
    include ("config.inc.php");
    include ("top_foot.inc.php");
    //intestazione
    top();
    ?>
    <html><head>
    <title>Modifica di un record</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
    <!--
    body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    }
    -->
    </style>
    </head>
    <body>
    <?php
    $host = 'localhost' ;
    $user = 'user' ;
    $password = 'password' ;
    $db_name = 'database';
    $confirm=$_REQUEST['confirm'];
    $id=$_REQUEST['id'];
    $db = mysql_connect($host, $user, $password)
    or die ("Impossibile connettersi al server $host");
    mysql_select_db($db_name, $db)
    or die ("Impossibile connettersi al database $db_name");
    if (!$confirm)
    {
    $query = "select * from rubrica where id=$id";
    $dbResult = mysql_query($query, $db);
    $AffectedRows = mysql_affected_rows($db);
    if ($AffectedRows==0)
    {
    print("<h3>Non esistono record con i criteri selezionati</h3>");
    }
    else
    {
    mysql_data_seek($dbResult,0);
    $row=mysql_fetch_row($dbResult);
    print("<table>");
    print("<form method="post"action="{$_SERVER['PHP_SELF']}">");
    foreach ($row as $k => $v)
    {
    $myfield = mysql_fetch_field($dbResult,$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($dbResult);
    mysql_close($db);
    }
    }
    else
    {
    $promotore=$_REQUEST['promotore'];
    $nome_azienda=$_REQUEST['nome_azienda'];
    $settore=$_REQUEST['settore'];
    $città=$_REQUEST['città'];
    $indirizzo=$_REQUEST['indirizzo'];
    $nome_contatto=$_REQUEST['nome_contatto'];
    $telefono=$_REQUEST['telefono'];
    $email=$_REQUEST['email'];
    $sede_estero=$_REQUEST['sede_estero'];
    $azioni=$_REQUEST['azioni'];
    $progressione=$_REQUEST['progressione'];
    $risultato_finale=$_REQUEST['risultato_finale'];
    $note=$_REQUEST['note'];

    echo "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";

    echo mysql_num_rows(mysql_query("SELECT id FROM rubrica where id='$id'"));

    if(mysql_query($query)== true)
    {
    echo "Modificati: ",mysql_affected_rows(), " records";
    }
    else
    {
    echo "Errore:" . mysql_error();
    }
    $dbResult = mysql_query($query, $db) or die(mysql_error());
    $AffectedRows = mysql_affected_rows($db);

    if ($AffectedRows!=1)
    {
    print("<h3>Il record è stato aggiornato</h3>");
    print("<a href="query.php"><img src="http://www.giorgiotave.it/forum/images/vedi.jpg" border="0"></a><br><br><br>");
    print("<a href="logout.php"><img src="http://www.giorgiotave.it/forum/images/logout.jpg" border="0"></a>");
    }
    mysql_close($db);
    }
    ?>
    </body>
    </html>
    [/php]

    e scusa la mia beata ignoranza 🙂 ma come si fa a lanciare da PHPMyAdmin? 😊


  • ModSenior

    Apri il phpmyadmin, selezioni il database da sinistra, al centro in alto trovi SQL, li incolli quella query e fai esegui.

    EDIT:
    Non ho controllato tutto ciò che c'è prima, visto che la query la stampa si spera corretta, se hai provato a mettere ovunque i campi vuoti.
    Ti sei perso una variabile durante le modifiche fai cosi:
    [php]
    <?
    include ("config.inc.php");
    include ("top_foot.inc.php");
    //intestazione
    top();
    ?>
    <html><head>
    <title>Modifica di un record</title>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
    <!--
    body,td,th {
    font-family: Verdana, Arial, Helvetica, sans-serif;
    font-size: 12px;
    }
    -->
    </style>
    </head>
    <body>
    <?php
    $host = 'localhost' ;
    $user = 'user' ;
    $password = 'password' ;
    $db_name = 'database';
    $confirm=$_REQUEST['confirm'];
    $id=$_REQUEST['id'];
    $db = mysql_connect($host, $user, $password)
    or die ("Impossibile connettersi al server $host");
    mysql_select_db($db_name, $db)
    or die ("Impossibile connettersi al database $db_name");
    if (!$confirm)
    {
    $query = "select * from rubrica where id=$id";
    $dbResult = mysql_query($query, $db);
    $AffectedRows = mysql_affected_rows($db);
    if ($AffectedRows==0)
    {
    print("<h3>Non esistono record con i criteri selezionati</h3>");
    }
    else
    {
    mysql_data_seek($dbResult,0);
    $row=mysql_fetch_row($dbResult);
    print("<table>");
    print("<form method="post"action="{$_SERVER['PHP_SELF']}">");
    foreach ($row as $k => $v)
    {
    $myfield = mysql_fetch_field($dbResult,$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($dbResult);
    mysql_close($db);
    }
    }
    else
    {
    $promotore=$_REQUEST['promotore'];
    $nome_azienda=$_REQUEST['nome_azienda'];
    $settore=$_REQUEST['settore'];
    $città=$_REQUEST['città'];
    $indirizzo=$_REQUEST['indirizzo'];
    $nome_contatto=$_REQUEST['nome_contatto'];
    $telefono=$_REQUEST['telefono'];
    $email=$_REQUEST['email'];
    $sede_estero=$_REQUEST['sede_estero'];
    $azioni=$_REQUEST['azioni'];
    $progressione=$_REQUEST['progressione'];
    $risultato_finale=$_REQUEST['risultato_finale'];
    $note=$_REQUEST['note'];

    echo "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";

    echo mysql_num_rows(mysql_query("SELECT id FROM rubrica where id='$id'"));
    $query = "update rubrica set promotore='$promotore', nome_azienda='$nome_azienda', settore='$settore', città='$città', indirizzo='$indirizzo', nome_contatto='$nome_contatto', telefono='$telefono', email='$email', sede_estero='$sede_estero', azioni='$azioni', progressione='$progressione', risultato_finale='$risultato_finale', note='$note' where id='$id'";

    if(mysql_query($query)== true)
    {
    echo "Modificati: ",mysql_affected_rows(), " records";
    }
    else
    {
    echo "Errore:" . mysql_error();
    }
    $dbResult = mysql_query($query, $db) or die(mysql_error());
    $AffectedRows = mysql_affected_rows($db);

    if ($AffectedRows!=1)
    {
    print("<h3>Il record è stato aggiornato</h3>");
    print("<a href="query.php"><img src="http://www.giorgiotave.it/forum/images/vedi.jpg" border="0"></a><br><br><br>");
    print("<a href="logout.php"><img src="http://www.giorgiotave.it/forum/images/logout.jpg" border="0"></a>");
    }
    mysql_close($db);
    }
    ?>
    </body>
    </html>
    [/php]


  • User

    update rubrica set promotore='', nome_azienda='', settore='', città='', indirizzo='', nome_contatto='', telefono='', email='', sede_estero='', azioni='', progressione='', risultato_finale='', note='' where id='7'1Modificati: 0 records

    Io non ce la faccio più ... e tu credo anche 😞 sto seriamente meditando di picchiare la testa su uno spigolo ...


  • ModSenior

    Anche lanciando dal phpmyadmin non modifica nulla?
    Prova a lanciare questa query dal phpmyadmin:
    [php]
    update rubrica set promotore='' where id='7'
    [/php]
    E vedi se cosi modifica.


  • User

    Righe interessate: 0 (La query ha impiegato 0.0002 sec)


  • ModSenior

    :bho:
    Lanciando dal phpmyadmin:
    [php]
    SELECT * FROM rubrica where id='7'
    [/php]
    Prima lo abbiamo fatto da php e trovava il record con id 7, ma se non modifica l'unica cosa è che non c'è un record con id 7.


  • User

    Visualizzazione record 0 - 0 (1 Totali, La query ha impiegato 0.0003 sec)
    eppure io lo vedo in PHPMyAdmin


  • ModSenior

    Non saprei dare una spiegazione a ciò.


  • User

    Beh, senti... in ogni caso sei stato più che gentilissimo e ti ringrazio molto per tutto il tempo che mi hai dedicato! Sei un grande :figo2:


  • User Attivo

    Ciao,
    non ho riletto tutti i post, sto guardando solo gli ultimi... vediamo se riassumo bene

    Hai eseguito la query:

    update rubrica set promotore='' where id='7'
    

    ed il risultato è stato:
    Righe interessate: 0 (La query ha impiegato 0.0002 sec)

    Hai eseguito la query:

    SELECT * FROM rubrica where id='7' 
    ```ed il risultato è stato:
    Visualizzazione record 0 - 0 (1 Totali, La query ha impiegato 0.0003 sec)
     
    Quindi, ricapitolando, il record con ID 7 è presente nel database e viene trovato, ma la query di aggiornamento non sembra aggiornarlo.
     
    Domanda:
    Che valore ha il campo "promotore" per il record con ID=7 ?
     
    Perchè mysql_affected_rows() ti segnala il numero di record effettivamente modificati. 
    Ovvero, se modifici un record inserendo per i campi valori che ha già, nessuna riga viene modificata e il risultato è appunto 0.
     
    Alessandro

  • User

    Grazie Magicale per il tuo interessamento.
    Purtroppo esiste questo problema.
    Se tutti i campi del form vengono riempiti, l'inserimento dei dati nel database funziona benissimo.
    Il problema si ha quando si tenta di modificare uno qualsiasi dei dati che hai visto.
    A quel punto il risultato è che non viene modificato quel campo da te digitato nuovamente (cioè per esempio voglio cambiare il nome dell'azienda perchè ha cambiato ragione sociale) ma tutti i valori presenti in quella riga (cioè in quel ID) vengono cancellati .... tranne il numero di ID.

    Quindi se tenti di inserire nuovamente i dati, anche parzialmente, non si ottiene alcun aggiornamento.

    Pertanto, per rispondere alla tua domanda, non c'è alcun valore nel campo "promotore" .... ma neanche in tutti gli altri.


  • User Attivo

    Ciao,
    ho creato sul mio db locale una tabella con gli stessi campi. Ho creato una pagina copiando l'ultima versione del codice che ti ha postato Thedarkita e l'ho testata. L'unica cosa che posso dirti è che accade quanto presumevo: funziona tutto correttamente.

    Non so che altro dirti. L'unico controllo che mi viene di suggerirti è fare un
    [php]var_dump($_REQUEST);[/php]
    subito prima o dopo dell'echo della query. Giusto per verificare che i dati arrivino correttamente alla pagina.

    Alessandro


  • User

    Alessandro,
    grazie per il tuo aiuto.
    Non riesco a capire perchè a me non funziona.
    Ho aggiunto la riga di codice che hai suggerito e questo è il risultato:

    update rubrica set promotore='', nome_azienda='', settore='', città='', indirizzo='', nome_contatto='', telefono='', email='', sede_estero='', azioni='', progressione='', risultato_finale='', note='' where id='8'1array(16) { ["id"]=> string(1) "8" ["Promotore"]=> string(5) "pippo" ["Nome_azienda"]=> string(5) "Apple" ["Settore"]=> string(11) "Informatica" ["Città"]=> string(9) "Cupertino" ["Indirizzo"]=> string(15) "1 Infinite Loop" ["Nome_contatto"]=> string(10) "Steve Jobs" ["Telefono"]=> string(16) "001 212 555 4433" ["Email"]=> string(15) "[email protected]" ["Sede_estero"]=> string(14) "California USA" ["Azioni"]=> string(8) "azione 1" ["Progressione"]=> string(8) "azione 2" ["Risultato_finale"]=> string(8) "azione 3" ["Note"]=> string(4) "note" ["confirm"]=> string(1) "1" ["PHPSESSID"]=> string(32) "a7157b78fcd4e275f0c13751de9ca0fa" } Modificati: 0 records

    Come vedi i dati che ho messo nel form ci sono ma nell'output non si vede nulla e comunque ciò che ho postato appena qui spra è un errore ....
    guardate, io vi ringrazio ancora per la pazienza ma a questo punto mi affido alla vostra clemenza ....