Visualizzazione risultati 1 fino 3 di 3

Discussione: Stampare dato estratto da MySql con funzione Echo

  1. #1
    CrimsonAlps non è connesso Neofita
    Data registrazione
    27-10-2019
    Messaggi
    5

    Predefinito Stampare dato estratto da MySql con funzione Echo

    Buongiorno,

    Da neofita quale sono sto incontrando difficoltà nel riuscire ad estrarre un dato dal mio database MySql e stamparlo nella pagina internet. Ho fatto diversi tentativi, consultando varie pagine di tutorial online ma non sono riuscito ad individuare l'errore. La tabella con cui dovrò lavorare è ben più ampia di quella che propongo di seguito, ma questa di prova mi è servita per semplificare il problema.

    a b c d
    1 2 3 4
    5 6 7 8

    Se non ho commesso errori il codice sotto riportato, che è quello che sto utilizzando dovrebbe selezionare sulla colonna "c" il valore massimo, quindi il valore "7" nella seconda riga e successivamente stamparmi a video il valore individuato con il comando "echo $row['c'];".

    Codice:
    <!DOCTYPE html>
    <html>
    <head>
      <meta charset="utf-8">
      <meta name="generator" content="AlterVista - Editor HTML"/>
      <title>Prova</title>
    </head>
    <body>
    <?php
    $host="localhost";
    $user="";
    $password="";
    $database="";
    $connection=mysqli_connect($host,$user,$password,$database);
    if (!$connection) {
        echo "Error: Unable to connect to MySQL." . PHP_EOL;
        echo "Debugging errno: " . mysqli_connect_errno() . PHP_EOL;
        echo "Debugging error: " . mysqli_connect_error() . PHP_EOL;
        exit;
    }
    echo "Success: A proper connection to MySQL was made! The my_db database is great." . PHP_EOL;
    echo "Host information: " . mysqli_get_host_info($link) . PHP_EOL;
    $result=mysqli_query($connection,"SELECT MAX(c) FROM PROVA");
    if (!$result) {
        die('Invalid query2: ' . mysqli_error());
    }
    $row=mysqli_fetch_array($result);
    echo $row['c'];
    echo "prova";
    mysqli_close($connection);
    ?>
    </body>
    </html>
    Oltre al codice riporto il link alla pagina che mostra il risultato che ottengo:
    http://crimsonalps.altervista.org/Statistica/PROVA.php

    Ricapitolo un'attimo i tentativi che ho fatto per capire dove si annida l'errore:
    1) Ho provato a inserire nel campo $password=""; la password sbagliata e correttamente mi compare un errore. Ho dedotto che con la password corretta riesca a connettersi al database.
    2) La query "SELECT MAX(c) FROM PROVA" per quanto semplice che sia ho verificato che sia corretta utilizzandola direttamente in phpMyAdmin e estrae il corretto valore "7" della seconda riga
    3)Ho probato a inserire alla riga "$result=mysqli_query" una query sbagliata, inserendo il nome della tabella "PROVAA" al posto di "PROVA" e restituisce giustamente un errore. Deduco che esegua correttamente la query.

    A questo punto mi viene da pensare che l'errore sia racchiuso nelle ultime 4 righe di codice:
    Codice:
    $row=mysqli_fetch_array($result);
    echo $row['c'];
    echo "prova";
    mysqli_close($connection);
    Fra i vari tentativi fatti, non sono riuscito proprio a capire quale è l'errore che commetto.

    Grazie a chi potrà aiutarmi.

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

    Predefinito

    Stai chiedendo il valore della colonna c, ma nel risultato della query non c'è nessuna colonna c. Hai solo una colonna che si chiama MAX(c).

    Puoi rinominare a piacere la colonna MAX(c), per esempio in max_c, e utilizzare lo stesso nome quando mostri il dato:
    Codice PHP:
    $result = mysqli_query($connection, "SELECT MAX(c) AS max_c FROM PROVA");
    ...
    echo
    $row['max_c'];

    I suggerimenti che do più spesso:


  3. #3
    CrimsonAlps non è connesso Neofita
    Data registrazione
    27-10-2019
    Messaggi
    5

    Predefinito

    Ho capito il mio errore: non è legato a errori di scrittura del codice ma ad una carenza delle conoscenze del linguaggio. Pensavo che con le funzioni AVG, MAX, MIN, SUM, etc. si estraesse la riga corrispondente al valore trovato, nel mio caso MAX e poi con la funzione $row[''] fosse possibile estrarre a piacimento la colonna desiderata.

    Grazie mille!

Regole di scrittura

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