Visualizzazione risultati 1 fino 5 di 5
Like Tree1Likes
  • 1 Post By dreadnaut

Discussione: Mostrare messaggio se la query non restituisce risultati [era: Domanda MySql]

  1. #1
    Guest

    Predefinito Mostrare messaggio se la query non restituisce risultati [era: Domanda MySql]

    Io ho creato un sito web in php con una select e funziona però vorrei fare che se la select è vuota mi dice: Nessuna verifica programmata.
    Come faccio?

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

    Predefinito

    Salve,
    per verifcare quando la query in MySql è vuota, può usare is_null().

    Esempio:
    Codice PHP:
    <?php
    $mysql
    = mysql_connect("localhost", "user", "password");
    mysql_select_db("database", $mysql);

    $result = mysql_query("SELECT ordine FROM table1", $mysql);
    if(!
    $result){
    echo
    "Errore: ".mysql_error();
    exit;
    }

    while(
    $Values=mysql_fetch_assoc($result)) {
    if(
    is_null($Values["ordine"])) echo "Nessuna verifica programmata!";
    }
    ?>
    Comunque il supporto a PHP 5.x è cessato l'1 gennaio 2019 e con esso anche MySql. Per evitare problemi futuri, sarebbe meglio usare fin da ora MySQLi o PDO.

    Un altra cosa, faccia attenzione a dove apre le discussioni. Questa sarebbe stata più pertinente in "PHP, MySql e Apache (.htaccess)", visto che tratta di php e MySql.

    Cordiali saluti.
    Ultima modifica di GraphOGLRisorse : 19-09-2020 alle ore 14.10.03

  3. #3
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,253

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Comunque il supporto a PHP 5.x è cessato l'1 gennaio 2019 e con esso anche MySql. Per evitare problemi futuri, sarebbe meglio usare fin da ora MySQLi o PDO.
    Facciamo un esempio con il codice aggiornato allora

    E proviamo un modo diverso: mentre puoi usare is_null su un singolo risultato, puoi anche controllare se l'array di tutti i risultati è vuoto, oppure no. Per controllare se un array contiene elementi si può usare
    Codice PHP:
    if (count($risultati) > 0) { ... }
    o più semplicemente
    Codice PHP:
    if ($risultati) { ... }
    Il secondo if funziona perché in PHP un array vuoto equivale a false.

    Codice PHP:
    <?php
    $database
    = new PDO('mysql:dbname=my_username', 'username', 'password');

    // prepariamo una query con il parametro "anno" da riempire più avanti
    $query = $database->prepare('
    SELECT * FROM `articoli`
    WHERE `visibile` IS TRUE
    AND YEAR(`data_pubblicazione`) = :anno
    LIMIT 10
    '
    );

    // eseguiamo la query per il 2020
    $query->execute([ 'anno' => 2020 ]);

    // e prendiamo tutti i risultati, come oggetti per comodità
    $articoli = $query->fetchAll(PDO::FETCH_OBJ);
    ?>

    <h1>Indice</h1>
    <?php if ($articoli): ?>
    <!-- l'elenco appare solo se ci sono articoli... -->
    <ul>
    <?php foreach ($articoli as $articolo): ?>
    <li>
    <a href="<?= htmlspecialchars($articolo->url) ?>">
    <?= htmlspecialchars($articolo->titolo) ?>
    </a>
    </li>
    <?php endforeach ?>
    </ul>
    <?php else: ?>
    <!-- ...altrimenti c'è un messaggio diverso -->
    <p>Nessun articolo pubblicato</p>
    <?php endif ?>
    Ultima modifica di dreadnaut : 19-09-2020 alle ore 17.38.58
    mzanella likes this.

  4. #4
    Guest

    Predefinito

    Grazie mille, sono riuscito a mettere il messaggio

  5. #5
    Guest

    Predefinito

    Citazione Originalmente inviato da GraphOGLRisorse Visualizza messaggio
    Salve,
    per verifcare quando la query in MySql è vuota, può usare is_null().

    Esempio:
    Codice PHP:
    <?php
    $mysql
    = mysql_connect("localhost", "user", "password");
    mysql_select_db("database", $mysql);

    $result = mysql_query("SELECT ordine FROM table1", $mysql);
    if(!
    $result){
    echo
    "Errore: ".mysql_error();
    exit;
    }

    while(
    $Values=mysql_fetch_assoc($result)) {
    if(
    is_null($Values["ordine"])) echo "Nessuna verifica programmata!";
    }
    ?>
    Comunque il supporto a PHP 5.x è cessato l'1 gennaio 2019 e con esso anche MySql. Per evitare problemi futuri, sarebbe meglio usare fin da ora MySQLi o PDO.

    Un altra cosa, faccia attenzione a dove apre le discussioni. Questa sarebbe stata più pertinente in "PHP, MySql e Apache (.htaccess)", visto che tratta di php e MySql.

    Cordiali saluti.
    Mi scusi è la prima volta che scrivo qui nel forum

Regole di scrittura

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