Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 27
  1. #1

    La tabella non si aggiorna! ... e io impazzisco

    Ciao a tutti,
    so che non sarò il primo a dirlo ma ho un disperato bisogno di aiuto per risolvere un problema di codice PHP.
    Dato che non sono un genio di tale materia ma solo alle prime armi, spero mi possiate aiutare.

    Ho creato un database in MySQL che viene alimentato da un form in una pagina PHP che funziona perfettamente.
    L'output generato è una tabella con le sue celle perfettamente riempite con i dati forniti dal form appenza menzionato e si auto-incrementa ogni volta che si aggiungono altri dati con questo form.

    Ho poi creato una pagina php per cancellare una riga della tabella nel caso in cui mi serva cancellare tutti i dati di quel "id" ed un'altra pagina php per modificare i dati di una determinata riga della tabella.

    Nella tabella di fianco ad ogni "id" ci sono due link per le summenzionate pagine di cancellazione e modifica.

    La pagina di cancellazione funziona perfettamente ...... la pagina di modifica no!

    La risposta che ottengo è che i dati sono stati modificati ma in realtà se guardo la tabella (l'output) nella riga che ho scelto di modificare non è successo assolutamente nulla!

    Facendo l'upload della pagina di modifica non ottengo nessuna risposta di errore; quindi significa che il codice è giusto .... peccato che non fa il mestiere che dovrebbe fare e cioè modificare i dati di una specifica riga nel database.

    Qui di seguito il codice della pagina "incriminata". Dove diavolo sta l'errore ???

    Grazie grazie grazie grazie mille e mille per tutto l'aiuto che potrete darmi!

    <?
    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'];

    $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);
    $AffectedRows = mysql_affected_rows($db);

    if ($AffectedRows!=0)
    {
    print("<h3>Il record è stato aggiornato</h3>");
    print("<h3><a href=\"query.php\">Torna alla lista</a></h3>");
    }
    mysql_close($db);
    }
    ?>
    </body>
    </html>

  2. #2
    prova scrivere dopo l'update
    Codice PHP:
    var_dump($query); 
    e guarda cosa restituisce

  3. #3
    Grazie per la pronta risposta!
    Se intendi che devo mettere il codice qui

    $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";
    var_dump($query);

    La risposta è

    string(213) "update rubrica set promotore="", nome_azienda="", settore="", città="", indirizzo="", nome_contatto="", telefono="", email="", sede_estero="", azioni="", progressione="", risultato_finale="", note="",where id=7"

  4. #4
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    Strano che non ti venga dato nessun errore, quella query è sbagliata! Tralasciando il fatto che sono tutti valori vuoti percui e darebbe problemi nel caso in cui hai dei campi not null, ma tieni conto che la "," prima del wher è un errore!
    Tieni conto che in sql si usano gli apici singoli per delimitare una stringa, inoltre vedo che ti vengono fuori tutti valori vuoi percui perchè non prendi in considerazione di usare l'array $_GET oppure $_POST?

    Tra l'altro la mysql_affected_rows puoi usarla senza argomento e tieni conto che serve solo per le query di modifica / cancellazione, per quelle di selezione serve la mysql_num_rows (ho visto che usi anche per questa la affeted_rows)

  5. #5
    Scusa , come ho anticipato sono veramente un novizio di php.
    Significa che al posto di $query devo scrivere $_POST ?
    Ho provato anche questo ma il risultato è il medesimo ....
    per quanto riguarda affected_rows ... dici che si usa per cancellazione/modifica ... ma lo scopo è appunto quello di modificare dei dati .... non capisco

  6. #6
    Utente di HTML.it L'avatar di r1cky`
    Registrato dal
    Feb 2007
    Messaggi
    432
    No io intendevo ad esempio:

    codice:
    $promotore=$_POST['promotore'];
    al posto di
    codice:
    $promotore=$_REQUEST['promotore'];
    Comunque, sotto al codice che esegue la query metti:

    codice:
    mysql_error();
    In modo da visualizzare l'errore che si verifica.

  7. #7
    Fatto: ho cambiato $_REQUEST in $_POST e ho aggiunto mysql_error(); alla fine.
    Il risultato è che quando compilo il form per la modifica dei dati ottengo come risposta una pagina completamente bianca

  8. #8
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    scrivi
    Codice PHP:
    if($result=mysql_query($query))
    {
      
    tuo codice
    }
    {
      echo 
    mysql_error();

    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


  9. #9
    Fatto.
    if($result=mysql_query($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";
    }
    {
    echo mysql_error();
    }

    $dbResult = mysql_query($query, $db);
    $AffectedRows = mysql_affected_rows($db);
    Non succede nulla. Il risultato è sempre lo stesso....

  10. #10
    Moderatore di Javascript L'avatar di ciro78
    Registrato dal
    Sep 2000
    residenza
    Napoli
    Messaggi
    8,509
    Originariamente inviato da RockerC
    Fatto.

    Non succede nulla. Il risultato è sempre lo stesso....
    Codice 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
    "
    ;
    if(
    $result=mysql_query($query)) 

      echo 
    $query;


      echo 
    "Errore:" mysql_error(); 

    dovrebbe darti errore
    Ciro Marotta - Programmatore JAVA - PHP
    Preferisco un fallimento alle mie condizioni che un successo alle condizioni altrui.


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 © 2024 vBulletin Solutions, Inc. All rights reserved.