Visualizzazione risultati 1 fino 21 di 21

Discussione: Query modifica record che non funziona più

  1. #1
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito Query modifica record che non funziona più

    Buongiorno a tutti,
    premetto di essere un vecchio utilizzatore di php e mysql ormai non più al passo con i tempi.
    Il codice che avevo creato per gestire la mia collezione di dischi non è più perfettamente funzionante con le ultime versioni php (ho l'hosting su Altervista).
    Sono riuscito a modificare il codice sostituendo alcune funzioni deprecate per quanto riguarda aggiunta record, cancellazione record e ricerca ma ho problemi sulla modifica, nel senso che il record riesco a ricercarlo, entro in modifica sul record e sembra andare tutto bene ma la modifica non si salva.
    Questo è il codice relativo alla modifica dei record e ringrazio tutti quanti in anticipo:

    Codice PHP:
    <!DOCTYPE html>
    <!--
    To change this license header, choose License Headers in Project Properties.
    To change this template file, choose Tools | Templates
    and open the template in the editor.
    -->
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Modifica Record</title>
    </head>
    <body>
    <?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);
    }


    ?>

    </body>
    </html>
    Ultima modifica di alemoppo : 26-09-2021 alle ore 07.31.24 Motivo: sistemati tag [php]

  2. #2
    GraphOGLRisorse non è connesso AlterGuru 2500
    Data registrazione
    14-02-2015
    Messaggi
    3,980

    Predefinito

    Salve,
    Per prima cosa quando riportia nel forum dei codici, dovrebbe aggiungere il tag bb per il codcie, per renderlo adeguatamente visisbile. In questo caso per il tag php [php ] [/php ].

    Nel codice ci sono degli errori sull'utilizzo degli apici.

    Prendendo questo come esempio:
    Codice PHP:
    print("<td><input type="text" value="" . $v . "" name="" . $myfield->name . "" size="100" maxlength="100" ></td></tr>");
    ci sono solo i doppi apici sia per l'apertura e la ciusura della stringa che per i valori del codice html. Si devono usare sia gliapici doppi che i singoli.
    Codice PHP:
    print("<td><input type='text' value='" . $v ."' name='" . $myfield->name . "' size='100' maxlength='100' ></td></tr>");
    Analogamente l'errore è ripetuto anche in altre parti del codice php. Ricontrolli tutto il codice e corregga gli eventuali errori.

    Cordiali saluti.

  3. #3
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    @GraphOGLRisorse e @legalys Semplicemente l'editor di altervista non permette l'uso di backslash esempio \" o comunque bisogna raddoppiare il backslash . Cioè condividi il codice tramite https://pastebin.com/ e sintassi php (sei sicuro che non verrà modificato).

    @legalys Ovviamente aggiungi anche
    Codice PHP:
    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);
    in cima al tuo script php. (Come ti ho indicato anche altrove).
    Ultima modifica di darbula : 26-09-2021 alle ore 10.21.05

  4. #4
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Buongiorno,

    ringrazio per la risposta e per le indicazioni su come comporre i messaggi con codice. Mi scuso per l'errore.
    Li avevo messi sotto i Tab [code] ma in effetti non ho visto formati differenti nel messaggi ofinale.
    Grazie per i consigli.
    Provo subito a correggere gli apici. Grazie mille.

  5. #5
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Niente da fare. Ho modificato gli apici per bene (ed infatti in alcuni casi mi ha dato errore di sintassi alle linee rispettive che sono andato a correggere) ma la modifica che apporto ai campi non viene salvata e resta il dato che c'era prima del tentativo. Stavo pensando, può essere che l'errore sia dovuto al fatto che i campi vengono stampati a video senza il rispettivo titolo e quindi la variazione non viene salvata in Db per questo motivo?
    Questo è il codice dopo le modifiche che ho apportato:

    Codice PHP:
    <?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'></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);
    }

    ?>

  6. #6
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Con il codice originale questo passaggio quando lo svolge? Nel 2030 https://forum.it.altervista.org/php-...ml#post1475193
    Su questo sito può visualizzare il suo codice con l'aggiunta di error_reporting impostato a tutto. https://pastebin.com/XYNKiapA
    Ultima modifica di darbula : 26-09-2021 alle ore 10.33.00

  7. #7
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Con il codice originale questo passaggio quando lo svolge? Nel 2030 https://forum.it.altervista.org/php-...ml#post1475193
    Su questo sito può visualizzare il suo codice con l'aggiunta di error_reporting impostato a tutto. https://pastebin.com/XYNKiapA
    Con l'aggiunta delle righe indicate mi vanno in errore i ":" proprio in quella funzione alla riga 15. E' un unto e virgola per caso?

    Codice PHP:
    error_reporting(-1):
    Parse error: syntax error, unexpected ':' in /membri/legalys/dischi/modifica.php on line 15
    Ultima modifica di legalys : 26-09-2021 alle ore 10.49.00

  8. #8
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Errore di battitura sostituisci il semicolonna: con il punto e virgola; sorry :)

  9. #9
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Errore di battitura sostituisci il semicolonna: con il punto e virgola; sorry :)
    Figurati. Lo immaginavo.

    In effetti il responso è abbastanza agghiacciante :)

    Notice: Undefined index: confirm in /membri/legalys/dischi/modifica.php on line 23

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

    Warning: mysqli_fetch_field() expects exactly 1 parameter, 2 given in /membri/legalys/dischi/modifica.php on line 51

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 52

    Notice: Trying to get property 'name' of non-object in /membri/legalys/dischi/modifica.php on line 54

  10. #10
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Ecco è proprio ciò che cercavo e volevo farti intendere :)
    Generalmente $_REQUEST indica da una richiesta GET/POST/HEADER Notice: Undefined index: confirm in /membri/legalys/dischi/modifica.php on line 23 TI dice che non esiste $_REQUEST['confirm'] poiché non lo passi via GET http://example.com/index.php?confirm=1 (query string se è aggiunto alla url) se è vera il valore 1 mentre 0 per falso.
    Mentre il porting dalla libreria mysql a mysqli è
    Codice PHP:
    $dbresult = mysqli_query($conne, $query);

    /* Get field information for all fields */
    while ($myfield = mysqli_fetch_field($dbresult)) { //un solo argomento
    Ultima modifica di darbula : 26-09-2021 alle ore 11.21.56

  11. #11
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Citazione Originalmente inviato da darbula Visualizza messaggio
    Ecco è proprio ciò che cercavo e volevo farti intendere :)
    Generalmente $_REQUEST indica da una richiesta GET/POST/HEADER Notice: Undefined index: confirm in /membri/legalys/dischi/modifica.php on line 23 TI dice che non esiste $_REQUEST['confirm'] poiché non lo passi via GET http://example.com/index.php?confirm=1 (query string se è aggiunto alla url).
    Grazie delle info. MA devo quindi la sostituire REQUEST con una GET?

  12. #12
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Non proprio dal cliente devi chiamare tale pagina con http://example.com/index.php?confirm=1 (il cliente può essere la url del tuo browser o php che effettua una richiesta a tale url) non dovresti riscontrare difficoltà perché $_REQUEST['id'] è già presente nella tua richiesta GET/POST quindi è solo un'aggiunta.
    Se preferisci valutare la condizione vera o comunque qualsiasi cosa passa il cliente
    Codice PHP:
    $confirm = 0; //default
    if(isset($_REQUEST['confirm'])) {
    $confirm = (int) $_REQUEST['confirm'];
    }
    Ho editato il messaggio precedente per il tuo secondo errore https://forum.it.altervista.org/php-...ml#post1475204
    Adesso invece di valutare if(!$confirm) puoi if($confirm) poiché il valore zero indica falso mentre altro è vero.
    Ultima modifica di darbula : 26-09-2021 alle ore 11.32.41

  13. #13
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Intanto ancora grazie per il preziosissimo aiuto. Ecco la situazione attuale:

    Codice PHP:
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Modifica Record</title>
    </head>
    <body>
    <?php

    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);
    $host = 'localhost';
    $user = 'legalys';
    $password = '';
    $db = 'my_legalys';

    $confirm = 0; //default
    if(isset($_REQUEST['confirm'])) {
    $confirm = (int) $_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)
    {

    $dbresult = mysqli_query($conne, $query);

    /* Get field information for all fields */
    while ($myfield = mysqli_fetch_field($dbresult))
    {
    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'></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);
    }

    ?>

    </body>
    </html>
    ora l'unico errore è arrivato alla riga 72
    Parse error: syntax error, unexpected 'else' (T_ELSE) in /membri/legalys/dischi/modifica.php on line 72

  14. #14
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Puoi verificare se update solo se la variabile è con valore 1. Dunque modifica if (!$confirm) in if ($confirm) e giustamente nella stessa richiesta ove invii $_REQUEST['id'] (se GET o POST) invia anche $_REQUEST['confirm']

  15. #15
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Corretto il !$confirm in $confirm. Non ho capito bene (perdonami) come inviare il $_REQUEST['confirm']

  16. #16
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    Citazione Originalmente inviato da legalys Visualizza messaggio
    Corretto il !$confirm in $confirm. Non ho capito bene (perdonami) come inviare il $_REQUEST['confirm']
    Nell'identico modo come invii $_REQUEST['id'] probabilmente da un form html con metodo POST (il tuo input type="hidden" name="confirm").

    Davvero non comprendi quale codice stai usando nel tuo script? Forse è il caso di abbandonare :)
    Comunque prova sostituendo
    Codice PHP:
    $dbresult = mysqli_query($conne, $query);

    /* Get field information for all fields */
    while ($myfield = mysqli_fetch_field($dbresult))
    {
    in
    Codice PHP:
    $myfield = mysqli_fetch_field($dbresult);
    poiché $dbresult esiste già nel tuo script.
    e nuovamente sostituisci in if (!$confirm)
    Solitamente il ciclo while itera tutti i resultset ma se il tuo id è una chiave primaria e dunque univoca è semplicemente un resultset
    Ultima modifica di darbula : 26-09-2021 alle ore 22.55.58

  17. #17
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Sei stato chiarissimo. Hai ragione, non fa per me... spero solo di arrivare a risolvere ciò che non mi consente di apportare queste variazioni.
    In effetti sostituendo il $dbresult non da più errore proseguendo però nell'analisi e fermandosi a un errore di sintassi sulla prima $_REQUEST (quella di riga 71):
    Codice PHP:
    $titolo=$_REQUEST['TITOLO'];
    dando Notice: Undefined index: TITOLO in /membri/legalys/dischi/modifica.php on line 71
    ovviamente come poi per tutte le righe analoghe seguenti.

  18. #18
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    riassumendo le due parentesi graffe di chiusura indicano la precedente apertura:
    Codice PHP:
    if (!$confirm) // Questo significa quando la condizione è falsa inverte in true che verrà valutata, else altrimenti è invertita in false e valuta else
    {
    //altro tuo codice
    if ($AffectedRows==0)
    {
    //tuo codice
    }
    }
    else
    {
    //Uso inconsapevole di $_REQUEST
    }
    Devi utilizzare $_REQUEST per recuperare i dati POST/GET/HEADER. Lo sai solo tu perché è lì.
    Ultima modifica di darbula : 27-09-2021 alle ore 23.39.47

  19. #19
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    mi servono per richiamare i campi del DB contenenti i dati del record che voglio modificare.

  20. #20
    legalys non è connesso Neofita
    Data registrazione
    01-10-2013
    Messaggi
    16

    Predefinito

    Anche perchè senza quelle Request se cerco un record e lancio il php di modifica, allo stato attuale con le ultime modifiche, me lo cancella direttamente.

  21. #21
    darbula non è connesso AlterGuru 2500
    Data registrazione
    24-04-2011
    Messaggi
    2,894

    Predefinito

    $_REQUEST['TITOLO'] non significa recupera i dati restituiti dal resultset (del database) ma di una richiesta con parametri GET o POST o HEADER testo=valore per GET e POST mentre
    Codice PHP:
    header('Set-Cookie: testo=valore');
    per HEADER COOKIE.
    Invece devi effettuare una query e recuperare i dati di quel id.
    Quando non esiste l'indice di una matrice php assegna il null e di conseguenza $titolo=$_REQUEST['TITOLO']; $titolo è uguale a null.
    Con mysqli_fetch_row ottieni una riga di risultati come array enumerato, la stai salvando in $row prova var_dump($row) e mostra la riga con il valore dei campi.
    Ultima modifica di darbula : 28-09-2021 alle ore 20.12.23

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •