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?
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?
Salve,
per verifcare quando la query in MySql è vuota, può usare is_null().
Esempio:
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.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!";
}
?>
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.
Facciamo un esempio con il codice aggiornato allora :mrgreen:
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
o più semplicementeCodice PHP:
if (count($risultati) > 0) { ... }
Il secondo if funziona perché in PHP un array vuoto equivale a false.Codice PHP:
if ($risultati) { ... }
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 ?>
Grazie mille, sono riuscito a mettere il messaggio