Codice obsoleto per modificare record

di il
4 risposte

Codice obsoleto per modificare record

Ciao a tutti. Volevo chiedervi un piccolo aiuto per il codice inserito di seguito che ho revisionato (era obsoleto e non più funzionante sul DB - Altervista che è il mio hosting ha effettuato aggiornamenti e probabilmente alcune funzioni al momento risultano deprecate).
Quando richiamo un record e tento la modifica sembra funzionare tutto, con tanto di conferma dell'avvenuto aggiornamento inserita dopo la chiusura delle azioni, ma il record materialmente non si aggiorna e resta tutto invariato.

Tra l'altro ci sono forse delle imperfezioni anche sui richiami delle etichette dei vari campi.

Avete delle idee, per le quali vi ringrazio in anticipo, sono un vecchissimo amatore che aveva molti anni fa tirato giù questo codice per gestire la mia collezione di dischi. Non ho più aggiornato il mio bagaglio e onestamente non saprei quali siano le funzioni o le sintassi che risultano obsolete.
<?php
        
        $host = 'localhost';
        $user = 'legalys';
        $password = '';
        $db = 'my_legalys';
        
        $confirm=$_REQUEST['confirm'];
        $id=$_REQUEST['id'];
         
        
        $conne = mysqli_connect($host, $user, $password, $db) or die ("impossibile connettersi al server $host");
        mysqli_select_db($conne, $db) or die ("impossibile connettersi al database $db");
          
        if (!$confirm)
{                          
        
                $query = "SELECT * FROM lp WHERE id=$id";         

$dbresult = mysqli_query($conne, $query);
$AffectedRows = mysqli_affected_rows($conne);
if ($AffectedRows==0)
{
      print("<h3>Non esistono record con i criteri selezionati</h3>");  
       }
else
{
mysqli_data_seek($dbresult,0);
$row=mysqli_fetch_row($dbresult);

   print("<form method=\"post\"action=\"{$_SERVER['PHP_SELF']}\">");     
print("<table>");
   foreach ($row as $k => $v)
{

       $myfield = mysqli_fetch_field($dbresult,$k);       
print("<tr><td>$myfield->name</td>");

print("<td><input type=\"text\" value=\"" . $v . "\" name=\"" . $myfield->name . "\" size=\"100\" maxlength=\"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("<h3><a href=\"index1.html\">Torna al Menù</a></h3>");

print("</table>"); 
print("</form>");
 
mysqli_free_result($dbresult);
mysqli_close($conne);
}
}
else
{
$titolo=$_REQUEST['TITOLO'];
  $artista=$_REQUEST['ARTISTA'];  
    $sett=$_REQUEST['SETT'];
    $supp=$_REQUEST['SUPP'];
    $form=$_REQUEST['FORM'];
    $conf=$_REQUEST['CONF'];
        $ediz=$_REQUEST['EDIZ'];
        $naz=$_REQUEST['NAZ'];
        $st=$_REQUEST['ST'];
        $barcode=$_REQUEST['BARCODE'];
        $cod=$_REQUEST['COD'];
        $crisbc=$_REQUEST['CRISBC'];
        $anno_ed=$_REQUEST['ANNO_ED'];
            $anno=$_REQUEST['ANNO'];
        $etic=$_REQUEST['ETIC'];
        $brani=$_REQUEST['BRANI'];
            $note=$_REQUEST['NOTE'];
            $bustatesti=$_REQUEST['bustatesti'];
        $prezzo=$_REQUEST['PREZZO'];
            $cond=$_REQUEST['COND'];
            $dett=$_REQUEST['DETT'];
                $num=$_REQUEST['NUM'];
            $copie=$_REQUEST['COPIE'];
                        $link=$_REQUEST['LINK'];

    $query = "update lp set titolo=\"$titolo\"," . " artista=\"$artista\","
                      . " sett=\"$sett\"," 
                    . " supp=\"$supp\","
                         . " form=\"$form\","
                     . " conf=\"$conf\","
                      . " ediz=\"$ediz\","
                         . " naz=\"$naz\","
                            . " st=\"$st\","
                            . " barcode=\"$barcode\","
                                 . " cod=\"$cod\","
                                 . " crisbc=\"$crisbc\","
                                . " anno_ed=\"$anno_ed\","
                               . " anno=\"$anno\","
                                  . " etic=\"$etic\","
         . " brani=\"$brani\","
         . " note=\"$note\","
         . " bustatesti=\"$bustatesti\","
         . " prezzo=\"$prezzo\","
         . " cond=\"$cond\","
         . " dett=\"$dett\","
         . " num=\"$num\","
              . " copie=\"$copie\","
                  . " link=\"$link\""
                  . "where id=$id";
           
$dbresult = mysqli_query($conne, $query);
$AffectedRows = mysqli_affected_rows($conne);
if ($AffectedRows!=0)
{
print("<h3>Il Record è Stato Aggiornato Con Successo</h3>");
print("<h3><a href=\"index1.html\">Torna Al Menu</a></h3>");
print("<h3><a href=\"search_mob.html\">Nuova Ricerca</a></h3>");
print("<h3><a href=\"insert.html\">Inserimento Record</a></h3>");
}
mysqli_close($conne);
}
        
        ?>

4 Risposte

  • Re: Codice obsoleto per modificare record

    Io penso che non tutte le variabili siano definite, tra cui la data.
    error_reporting(-1); //tutti i bit impostati a 1 su un complenento a due
    ini_set('display_errors', '1'); // per visualizzare gli errori fatali dovrà essere impostato prima della pagina di esecuzione dello script, dunque su php.ini o pagea.php e poi dopo esegui pageb.php
    ini_set('display_startup_errors', true); 
    Copia/Incolla tutti i tuoi errori eccetto quelli privati (impiega il tuo tempo a leggere l'output ma soprattutto scegli sempre la via più lunga, anche se vuol dire più faticosa).
    Leggi anche cosa ti ho risposto in precedenza https://www.iprogrammatori.it/forum-programmazione/viewtopic.php?p=8677806#p8677806
  • Re: Codice obsoleto per modificare record

    Ciao. Ti ringrazio per la risposta ma in realtà errori non ne ottengo. Il codice fila liscio fino in fondo dandomi anche il responso che avevo creato in caso di record aggiornato e non si ferma prima o prende altri percorsi che possono aiutare a capire dove si arena.
    Sta di fatto che il record non viene aggiornato.
  • Re: Codice obsoleto per modificare record

    Ciao,
    metti il codice in un try e catch, in più potresti utilizzare le transazioni. Se fai una ricerca trovi tutto, esempi ecc.

    Altra cosa quando sviluppi e fai i test esegui un debug. Così ti rendi conto cosa viene eseguito se ci sono errori ecc.

    Ciao
  • Re: Codice obsoleto per modificare record

    Hormus ha scritto:


    Io penso che non tutte le variabili siano definite, tra cui la data.
    error_reporting(-1); //tutti i bit impostati a 1 su un complenento a due
    ini_set('display_errors', '1'); // per visualizzare gli errori fatali dovrà essere impostato prima della pagina di esecuzione dello script, dunque su php.ini o pagea.php e poi dopo esegui pageb.php
    ini_set('display_startup_errors', true); 
    Copia/Incolla tutti i tuoi errori eccetto quelli privati (impiega il tuo tempo a leggere l'output ma soprattutto scegli sempre la via più lunga, anche se vuol dire più faticosa).
    Leggi anche cosa ti ho risposto in precedenza https://www.iprogrammatori.it/forum-programmazione/viewtopic.php?p=8677806#p8677806
    Hai aggiunto questo codice in cima al tuo script php? Altrimenti non vedrai i NOTICE e WARNINGS poiché potrebbero essere nascosti dal default di error_reporting
Devi accedere o registrarti per scrivere nel forum
4 risposte