Salve a tutti!
E' da molto che non programmo e sinceramente mi trovo bloccato in un problema abbastanza fastidioso.
Ho creato un sito, sono solo 2 pagine che si interfacciano con un database.
Ora, il problema è che il sito in locale funziona... ma quando lo metto su altervista smette di funzionare...
In pratica ho capito che il problema è che altervista non supporta il nuovo codice "mysqli"
visto che ho provato a caricare un codice molto piu semplice che semplicemente si connetta al database e stampi un campo e non fa nulla.
Invece con un vecchio codice senza mysqli. Funziona perfettamente.
Ora il problema quale sarebbe...
Se provo il codice in locale (quindi con server, database e tutto) funziona.
Premetto che il database è completamente identico a quello che ho su altervista, quindi stessa password stesso nome, stessi dati.
Su altervista semplicemente non carica i dati. cioè la pagina parte... ma è come se non trovasse nulla.
Scusate se mi sono prolungato ma vorrei essere il più chiaro possibile.
Ora il problema reale è che se uso il codice mysqli
<?php
// connessione a MySQL con l'estensione MySQLi
$mysqli = new mysqli("localhost", "xxxx", "xxxxxx", "xxxxx");
// verifica dell'avvenuta connessione
if (mysqli_connect_errno()) {
// notifica in caso di errore
echo "Errore in connessione al DBMS: ".mysqli_connect_error();
// interruzione delle esecuzioni i caso di errore
exit();
}
# estrarre risultati con il metodo mysqli_result::fetch_array
// query argomento del metodo query()
$query = " SELECT * FROM xxxx ORDER BY data DESC LIMIT 3 ";
// esecuzione della query
$result = $mysqli->query($query);
?>
e a questo aggiungo un ciclo foreach che mi permette di stampare i dati in una tabella.
<?php if (count($result) > 0): ?>
<table summary="" border="1" align="center" >
<tbody>
<?php foreach ($result as $row): array_map('htmlentities', $row); ?>
<tr>
<td valign="top" width="200">
<img alt="Immagine <?php echo $row["nome"]; ?>" src="<?php echo $row["cognome"]; ?>" height="250" width="200"/>
</td>
<td valign="top" width="500" height="250">
<font color="#1560BD" size="4"><?php echo $row["nome"]; ?></font>
</br>
</br>
<font color="black" size="2">
<?php
$maxCaratteri = 770;
$caratteri = strlen($row["storia"]);
if ($caratteri > $maxCaratteri) { echo substr($row["trama"], 0, $maxCaratteri)."(Continua a leggere...)"; }
else { echo $row["storia"]; }
?>
e fino ad ora testando il tutto in locale funziona perfettamente!
Se carico questo codice però non funziona su altervista.
Quindi ho provato a fare un downgrade e riportare tutto a prima di Mysqli ma comincia a darmi errori e davvero non riesco a capire come uscirne.
In pratica mi servirebbe sapere come posso fare a collegarmi al database e quindi fare la query e poi stamparla in una tabella (usando per esempio quel ciclo foreach) ma senza usare Mysqli.
Grazie a tutti in anticipo!
Ovviamente se servono ulteriori chiarimenti per capire il problema, contattatemi senza esitare!