Visualizzazione risultati 1 fino 8 di 8
Like Tree2Likes
  • 1 Post By alemoppo
  • 1 Post By alemoppo

Discussione: PHP, MySql, Ajax e jQuery e tabelle Inline:non scrive a DB

  1. #1
    VSA
    VSA non è connesso Neofita
    Data registrazione
    30-07-2014
    Messaggi
    12

    Question PHP, MySql, Ajax e jQuery e tabelle Inline:non scrive a DB

    Ciao
    spero di scrivere nella sezione giusta...

    Sto cercando di editare delle tabelle inline con jQuery e Ajax partendo da questo esempio:
    https://phppot.com/jquery/jquery-aja...crud-with-php/
    ma non mi funziona bene, legge correttamente il Db se lo edito da PhpMyAdmin, ma non scrive all'interno
    :-(

    Non so più che pesci pigliare.

    Dove può essere l'errore?

    Grazie!
    E-

  2. #2
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Quello script utilizza il file "dbcontroller" per interfacciarsi al database, ma non sapendo come lavora è difficile aiutarti.

    Piuttosto perché non provi a scrivere manualmente il codice di interfaccia mysql usando mysqli (o pdo)?

    Ciao!

  3. #3
    VSA
    VSA non è connesso Neofita
    Data registrazione
    30-07-2014
    Messaggi
    12

    Predefinito

    Ciao, dbcontroer è uno dei file che si scarica con lo zip...

    <?php
    class DBController {
    private $conn = "";
    private $host = "localhost";
    private $user = "pippo";
    private $password = "pippo";
    private $database = "my_pippo";

    function __construct() {
    $conn = $this->connectDB();
    if(!empty($conn)) {
    $this->conn = $conn;
    }
    }

    function connectDB() {
    $conn = mysqli_connect($this->host,$this->user,$this->password,$this->database);
    return $conn;
    }

    function runSelectQuery($query) {
    $result = mysqli_query($this->conn,$query);
    while($row=mysqli_fetch_assoc($result)) {
    $resultset[] = $row;
    }
    if(!empty($resultset))
    return $resultset;
    }

    function executeInsert($query) {
    $result = mysqli_query($this->conn,$query);
    $insert_id = mysqli_insert_id($this->conn);
    return $insert_id;

    }
    function executeUpdate($query) {
    $result = mysqli_query($this->conn,$query);
    return $result;

    }

    function executeQuery($sql) {
    $result = mysqli_query($this->conn,$sql);
    return $result;

    }

    function numRows($query) {
    $result = mysqli_query($this->conn,$query);
    $rowcount = mysqli_num_rows($result);
    return $rowcount;
    }
    }
    ?>
    La connessione avviene (in lettura) ma perché è ko in scrittura?

    DB, password e user ovviamente ora non son quelle ;-)

  4. #4
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    In quel codice non c'è alcuna gestione degli errori: se si verifica un errore non si sa nulla su cosa è accaduto:

    Codice PHP:
    function executeInsert($query) {
    $result = mysqli_query($this->conn,$query);
    $insert_id = mysqli_insert_id($this->conn);
    return
    $insert_id;

    }
    dovresti controllare $result cosa vale, e soprattutto quando vale false, leggere il messaggio di errore con mysqli_error($this->conn).

    (in ogni caso, la variabile password lasciala pure vuota, non inserirla nello script che funzionerà comunque).

    Ciao!

  5. #5
    VSA
    VSA non è connesso Neofita
    Data registrazione
    30-07-2014
    Messaggi
    12

    Predefinito

    Ciao,

    sarò gnugnu, ma non so come tirar fuori $result cosa vale
    e leggere il messaggio di errore con mysqli_error($this->conn)...

    Cosa e dove devo impostare per avere il risultato a video con una classe?

    Ho visto che quando richiamo index.php viene richiamata add.php
    che da coonsole restituisce errore di 'auth required'.

    Grazie.

    E-

  6. #6
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Codice PHP:
    function executeInsert($query) {
    $result = mysqli_query($this->conn,$query);
    if(
    $result === false)
    {
    echo
    'Errore insert: '.mysqli_error($this->conn);
    return
    false; //valuta tu se inserire die() oppure return false o altro.
    }
    else
    $insert_id = mysqli_insert_id($this->conn);
    return
    $insert_id;
    }
    Ciao!
    VSA likes this.

  7. #7
    VSA
    VSA non è connesso Neofita
    Data registrazione
    30-07-2014
    Messaggi
    12

    Predefinito

    Grazie,

    ho provato e non funziava lostesso, per cui m'è venuto un dubbio...

    essendo annidato in qualche strana forma di tabella da qualche parte nel codice quando lo spara a video, ho aggiunto una mia <table>...

    Codice:
        function executeInsert($query) {
    		$result = mysqli_query($this->conn,$query);
          if($result === false)
          {
          ?>
          <table>
            <tr>
              <td><?
                  echo 'Errore insert: '.mysqli_error($this->conn);
                  return false; //valuta tu se inserire die() oppure return false o altro.
          }
          else
          {
              $insert_id = mysqli_insert_id($this->conn);
          }
              ?>
              </td>
            </tr>
          </table>
          <?
          return $insert_id;
    }
    e così funzia.
    L'errore era dovuto al DB che non aveva chiave primaria e auto_increment

    Il problema ora è :

    1)
    Devo fare F5 per vedere il dato aggiornato del DB o commentare il codice di controllo errore perchè si auto aggiorni...
    :-(


    2)
    Vorrei che

    spostandomi in su e in giu con le freccie potessi
    salvare e cambiare record evitando di visualizzare/usare il pulsante 'Save'


    <alternativa>
    con 'Invio' o 'CTRL + INVIO' potessi evitare di visualizzare il pulsante 'Save' e salvasse in automatico
    o, mi lancio, cliccando in una altra cella salvasse...
    </alternativa>

    Grazie!

    E-
    Ultima modifica di VSA : 11-04-2018 alle ore 12.59.05

  8. #8
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,145

    Predefinito

    Premetto che non ho capito molto. Cerco di risponderti comunque:

    1) dovresti far in modo di elaborare la richiesta a inizio pagina, così da poter vedere il dato aggiornato (se prima mostri la pagina e poi aggiorni il dato nel database è normale che lo visualizzi non aggiornato)

    2) qui non ho capito granché. Però forse dovresti usare gli eventi onKeyDown di javascript per intercettare i tasti premuti e quindi agire di conseguenza.

    Ciao!
    VSA likes this.

Tags for this Thread

Regole di scrittura

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