Quote Originariamente inviata da Alhazred Visualizza il messaggio
Non so che esercizio vuoi fare, ma questo codice serve a poco, 2 funzioni (fetch_array e query) sono semplicemente dei wrapper per funzioni native alle quali non aggiungi niente che ne giustifichi il finto override, potresti usare direttamente le funzioni native e avresti lo stesso identico risultato, ma usando meno risorse.
Una funzione, conferma(), che potresti evitare mettendo il die direttamente dopo mysqli_query().

Ricorda che le funzioni die() sono da usare solo per il debug, per applicazioni in produzione vanno tolti.

Comunque, ti sta dicendo che la variabile $ricercaProdotti non è definita, in realtà dovrebbe essere definita, assicurati che nella tabella prodotti ci sia qualcosa, oppure è probabile che il tuo giro di funzioni introduca un qualche side effect sulla variabile invalidandola.
Prova a modificare il codice in modo che il flusso sia quello che normalmente si userebbe, ovvero niente funzioni wrapper, usa direttamente le funzioni native mysqli_ e vedi se funziona, se va è colpa delle tue funzioni.
le avevo create per riutilizzarle velocemente nelle varie altre funzioni.
cmq ho cancellato tutto ed ho scritto cosi:
codice:
function mostraProdotti(){  global $connessione;
   $query = "SELECT * FROM prodotti";
   $scriviProdotti = mysqli_query($connessione, $query);
   if (!$scriviProdotti) {
     die("Non leggo" .mysqli_error($connessione));
   }
    while ($row = mysqli_fetch_array($scriviProdotti)) {
       echo $row['nome_prodotto']."<br>";
    }
    }
Funziona benissimo cosi
come lo modificheresti tu?