Originalmente inviato da
GraphOGLRisorse
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 ?>