Visualizzazione risultati 1 fino 9 di 9

Discussione: Query per avere riga del penultimo id

  1. #1
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito Query per avere riga del penultimo id

    Buongiorno, sto cercando di avere un dato relativo al penultimo inserimento in tabella del db. La colonna da cui estrarre il dato è denominata 'LIV_CISTERNE'. In una pagina 'estrai_ultimi_dati.php' estraggo l' ultima riga caricata (corrispondente all' ultimo id), mentre in un' altra 'dati_accesso_db.php' ho salvato i dati per la connessione ed effettuo la connessione. Le due pagine funzionano, non danno errori. Dovrei fare la differenza di due dati (ultimo-penultimo) e lo faccio così
    Codice PHP:
    <?php //questa pagina calcola quanta acqua è uscita dalle cisterne
    require_once 'dati_accesso_db.php';//variabili per connessione e connessione
    require_once 'estrai_ultimi_dati.php';//estrae l' ultima riga caricata nel db
    $current_level = $array1['LIV_CISTERNE'];//valore dell' ultimo inserimento
    $array2 = $array1['id'];//id dell' ultimo inserimento
    echo ($array2 . "<br>");
    $array2--;//id del penultimo inserimento
    echo ($array2 . "<br>");
    $query2 = "SELECT * FROM prova_inserimento WHERE id= '$array2'";// . $array2;
    $select2 = mysqli_query($con,$query2);
    if (!
    $select2) {echo("Error description: " . mysqli_error($con) . "<br>");}
    $array_new = mysqli_fetch_array($select2,MYSQLI_ASSOC);
    echo (
    $array_new['LIV_CISTERNE'] . " penultimo inserimento<br>");
    echo (
    $current_level-$array_new['LIV_CISTERNE']);
    mysqli_close($con);
    ?>
    Stampando a video ottengo id dell' ultimo inserimento, id del penultimo inserimento. Quest' ultimo lo vado ad utilizzare per fare la query ma non mi estrae il dato e visualizzo 'Error description:' senza niente dopo.
    Avete idea del perchè?

  2. #2
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Rischiando di dire una banalità: la variabile $con esiste ed è correttamente inizializzata?

    Aggiungi un
    Codice PHP:
    error_reporting(E_ALL);
    all'inizio del codice, prima di "require_once 'dati_accesso_db.php';", in modo da far mostrare alla pagina eventuali errori.

    I suggerimenti che do più spesso:


  3. #3
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Fatto. Mi esce questo:
    Warning: mysqli_query(): Couldn't fetch mysqli in /membri/honeyecompost/differenza_livello.php on line 11
    Warning: mysqli_error(): Couldn't fetch mysqli in /membri/honeyecompost/differenza_livello.php on line 12
    Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in /membri/honeyecompost/differenza_livello.php on line 13
    Warning: mysqli_close(): Couldn't fetch mysqli in /membri/honeyecompost/differenza_livello.php on line 16
    Ho capito che non effettua la query. La variabile $con esiste in 'dati_accesso_db.php', a cui accede anche 'estrai_ultimi_dati.php'. Se $array1['LIV_CISTERNE'] contiene il record giusto, presumo che $ con sia utilizzabile, no?

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

    Predefinito

    mysqli_query ritorna TRUE per la SELECT, usa l'espressione FALSE
    Codice PHP:
    if ($select2 === FALSE) {echo("Error description: " . mysqli_error($con) . "<br>");}
    Sospetto che $array2 sia null.
    Se effettivamente il file sarà incluso $con sarà una variabile globale per lo script chiamante, usa error_reporting(-1); dopo il tag di apertura php <?php
    Ultima modifica di darbula : 16-11-2020 alle ore 19.49.18

  5. #5
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Codice PHP:
    $array2 = $array1['id'];//id dell' ultimo inserimento
    echo ($array2 . "<br>");
    $array2--;//id del penultimo inserimento
    echo ($array2 . "<br>");
    Me li stampa tutti e due, quindi $array2 non è vuoto

  6. #6
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Codice PHP:
    $array2 = $array1['id'];//id dell' ultimo inserimento
    echo ($array2 . "<br>");
    $array2--;//id del penultimo inserimento
    echo ($array2 . "<br>");
    Me li stampa tutti e due, quindi $array2 non è vuoto
    ma mi stampa sempre i soliti Warnings

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

    Predefinito

    var_dump($con); //Diverso da null?
    Ultima modifica di darbula : 16-11-2020 alle ore 20.08.20

  8. #8
    honeyecompost non è connesso Utente giovane
    Data registrazione
    21-09-2020
    Messaggi
    39

    Predefinito

    Effettivamente $con era null. Mi sono accorto che nella pagina 'estrai_ultimi_dati.php' chiudevo la connessione.
    Adesso il tutto funziona.
    Se posso fare un' ultima domanda, se mi ritrovo nella tabella del db una riga caricata non da me (e non saprei da chi), potrebbe essere un tentativo di accesso/hackeraggio?

  9. #9
    mzanella non è connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Se posso fare un' ultima domanda, se mi ritrovo nella tabella del db una riga caricata non da me (e non saprei da chi), potrebbe essere un tentativo di accesso/hackeraggio?
    Non conta come "hackeraggio" se non hai preso nessuna misura di restrizione !
    Però sì, può essere un tentativo di accesso.

    I suggerimenti che do più spesso:


Regole di scrittura

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