Internal Server Error

Un saluto a tutta la comunità. Complimenti per il forum, è molto interessante.

Spero di aver postato nella sezione giusta.

Espongo il mio problema:

Premetto che uso un php su Linux, server  Apache,  db  mysql  4.0.

500 Internal server error. E' l'errore che mi fà una pagina web, che in sostanza è un modulo la cui index  (elenco) contiene  una  40ina  di  query fatte da me.  Se  ne faccio  solo una  la  pagina  web si  apre  subito.

In  pratica si visualizza una tabella divisa in celle che contengono l'elenco dei titoli  azionari  ed altre voci quali chiusura,  variazione,  min,  max, apertura,  volumi).  Poichè  per  ogni  pagina  devo  inserire  una  40ina  di  titoli  ho  fatto  singole  query  per  ogni  titolo. Inoltre per generare la variazione, dovendo fare un calcolo tra 2 righe, ho preparato una query a parte per ogni singolo titolo azionario come potete vedere da questo estratto. Esiste un modo diverso per fare tutte queste query?

echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"#ffffff\" width=\"500\" align=\"center\" style=\"border: 1 #F7F7F7; margin-top: 8px\"><tr><td bgcolor=\"#FFFFFF\" align=\"left\"><span class=\"liste\" align=\"center\">Elenco<span></td></tr></table>";

$oggieieri = "SELECT DISTINCT ticker, timeStamps, closeData FROM mytable WHERE ticker = 'AAA' ORDER BY timeStamps DESC LIMIT 2";

$d_oggieieri = $db->sql_query($oggieieri);

$row = $db->sql_fetchrow($d_oggieieri);

$dato_oggi = $row['closeData'];

$row = $db->sql_fetchrow($d_oggieieri);

$dato_ieri = $row['closeData'];

$percentuale = (($dato_oggi - $dato_ieri) * 100)/$dato_ieri;

$percentuale = number_format($percentuale, 2, '.', '');

if ($percentuale>0.0) {

    $perc="<span class=\"percp\">&nbsp;+" . $percentuale . "</span>&nbsp;<img src=\"images/frecciasu.gif\">";

    }

else if ($percentuale<0.0) {

    $perc="<span class=\"percn\">&nbsp;" . $percentuale . "</span>&nbsp;<img src=\"/images/frecciagiu.gif\">";

    }

else {

    $perc="<span class=\"percneu\"> 0.00</span>";

    }

$result = $db->sql_query("SELECT DISTINCT ticker, DATE_FORMAT(timeStamps,'%d.%m.%Y') as date, closeData, openData, highData, lowData, volData From mytable Where ticker = 'AAA' ORDER BY timeStamps DESC LIMIT 1");

    $numrows = $db->sql_numrows($result);

    if ($numrows > 0) {

            echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"#ffffff\" width=\"500\" align=\"center\" style=\"border: 1 #F7F7F7; margin-top: 3px\">";

 echo " <tr>

 <td bgcolor=\"#263B64\" align=\"left\"><span class=\"realtime\">Nome</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Chiusura</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Var %</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Min</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Max</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Apertura</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Volumi</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Grafici</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Data</span></td></tr>";

        while ($row = $db->sql_fetchrow($result)) {

            $timeStamps = $row['date'];

            $ticker = $row['ticker'];

            $closeData = $row['closeData'];

            $openData = $row['openData'];

            $highData = $row['highData'];

            $lowData = $row['lowData'];

            $volData = $row['volData'];

               echo "<tr>

      <td bgcolor=\"#F7F7F7\"><a href=\"\"><span class=\"liste\">AAA</span></a></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$closeData</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$perc</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$lowData</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$highData</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$openData</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"right\"><span class=\"liste\">$volData</span></td>

      <td bgcolor=\"#F7F7F7\" align=\"center\"><a href=\"\"><span class=\"listeD\">D</a>&nbsp;&nbsp;<a href=\"\"><span class=\"listeW\">W</a>&nbsp;&nbsp;<a href=\"\"><span class=\"listeM\">M</span></a></span></td>

      <td bgcolor=\"#F7F7F7\" align=\"center\"><span class=\"liste\">$timeStamps</span></td></tr>";

        }

 }

$oggieieri = "SELECT DISTINCT ticker, timeStamps, closeData FROM eod WHERE ticker = 'BBB' ORDER BY timeStamps DESC LIMIT 2";

$d_oggieieri = $db->sql_query($oggieieri);

$row = $db->sql_fetchrow($d_oggieieri);

$dato_oggi = $row['closeData'];

$row = $db->sql_fetchrow($d_oggieieri);

$dato_ieri = $row['closeData'];

$percentuale = (($dato_oggi - $dato_ieri) * 100)/$dato_ieri;

$percentuale = number_format($percentuale, 2, '.', '');

if ($percentuale>0.0) {

    $perc="<span class=\"percp\">&nbsp;+" . $percentuale . "</span>&nbsp;<img src=\"images/frecciasu.gif\">";

    }

else if ($percentuale<0.0) {

    $perc="<span class=\"percn\">&nbsp;" . $percentuale . "</span>&nbsp;<img src=\"/images/frecciagiu.gif\">";

    }

else {

    $perc="<span class=\"percneu\"> 0.00</span>";

    }

$result = $db->sql_query("SELECT DISTINCT ticker, DATE_FORMAT(timeStamps,'%d.%m.%Y') as date, closeData, openData, highData, lowData, volData From eod Where ticker = 'BBB' ORDER BY timeStamps DESC LIMIT 1");

    $numrows = $db->sql_numrows($result);

    if ($numrows > 0) {

 echo "";

        while ($row = $db->sql_fetchrow($result)) {

            $timeStamps = $row['date'];

            $ticker = $row['ticker'];

            $closeData = $row['closeData'];

            $openData = $row['openData'];

            $highData = $row['highData'];

            $lowData = $row['lowData'];

            $volData = $row['volData'];

               echo "<tr>

      <td bgcolor=\"#E4ECF7\"><a href=\"\"><span class=\"liste\">BBB</span></a></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$closeData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$perc</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$lowData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$highData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$openData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$volData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"center\"><a href=\"\"><span class=\"listeD\">D</a>&nbsp;&nbsp;<a href=\"\"><span class=\"listeW\">W</a>&nbsp;&nbsp;<a href=\"\"><span class=\"listeM\">M</span></a></span></td>

      <td bgcolor=\"#E4ECF7\" align=\"center\"><span class=\"liste\">$timeStamps</span></td></tr>";

        }

 }

 Grazie   

 :) Nikk

inviato 9 anni fa
nikk
nikk
1
X 0 X

Quindi se ho capito bene, se esegui una sola query non ricevi l'errore? E se ne esegui 2? Hai provato a vedere qual'è l'elemento che scatena l'errore?

Per quanto riguarda le query, perché non fai una JOIN?

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Fino a 2 query è OK , dopo comincia a rallentare.

Hai provato a vedere qual'è l'elemento che scatena l'errore? No, perchè non so come e dove si fa.

Per quanto riguarda le JOIN come dovrei procedere?

Grazie

Nikk

risposto 9 anni fa
nikk
nikk
1
X 0 X

Per "elemento che scatena l'errore" intendevo dire la query che, se inserita, ti produce l'internal server error.

Per la JOIN lascia perdere, non è questo il caso, sorry

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Sembra che l'errore sia stato generato da uno script che ho inserito per la ricerca.

Faccio le ultime prove e se è come penso posso proseguire nel lavoro di preparazione delle pagine web, altrimenti ...sono fregato!

Ti tengo aggiornato

Grazie

 :bye:Nikk

risposto 9 anni fa
nikk
nikk
1
X 0 X

Ciao,

ho rimosso lo script che mi dava l'errore ma l'apertura della pagina web continua a generare l'internal server error (500) oppure in alcuni casi l'apertura è molto difficoltosa.

Questo succede anche riducendo il contenuto del file ad una sola query con LIMIT 1 come vado a riportare:

if (!eregi("modules.php", $_SERVER['PHP_SELF'])) {

    die ("You can't access this file directly...");

}

require_once("mainfile.php");

define('INDEX_FILE', true);

include("header.php");

$result = $db->sql_query("SELECT DISTINCT ticker, DATE_FORMAT(timeStamps,'%d.%m.%Y') as date, closeData, openData, highData, lowData, volData From mytabella ORDER BY timeStamps DESC LIMIT 1");

    $numrows = $db->sql_numrows($result);

    if ($numrows > 0) {

            echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"1\" bgcolor=\"#ffffff\" width=\"500\" align=\"center\" style=\"border: 1 #F7F7F7; margin-top: 3px\">";

 echo " <tr>

 <td bgcolor=\"#263B64\" align=\"left\"><span class=\"realtime\">Nome</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Chiusura</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Var %</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Min</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Max</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Apertura</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Grafici</span></td>

 <td bgcolor=\"#263B64\" align=\"center\"><span class=\"realtime\">Data</span></td></tr>";

        while ($row = $db->sql_fetchrow($result)) {

            $timeStamps = $row['date'];

            $ticker = $row['ticker'];

            $closeData = $row['closeData'];

            $openData = $row['openData'];

            $highData = $row['highData'];

            $lowData = $row['lowData'];

            $volData = $row['volData'];

               echo "<tr>

      <td bgcolor=\"#E4ECF7\"><span class=\"liste\">$ticker</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$closeData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$perc</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$lowData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$highData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"right\"><span class=\"liste\">$openData</span></td>

      <td bgcolor=\"#E4ECF7\" align=\"center\"><span class=\"listeD\"></td>

      <td bgcolor=\"#E4ECF7\" align=\"center\"><span class=\"liste\">$timeStamps</span></td></tr>";

        }

 echo " </table>";

 }

include("footer.php");

Non so più cosa pensare se è un problema del file (modulo), dell'host, della tabella del database dove ci sono i dati che non sono pochi. In sostanza una stessa pagina a volte si apre subito e a volte dà l'errore. Qunado penso di aver risolto il problema perchè la pagina si apre subito, dopo un'ora, due ore e così via non si apre più.

Tieni presente che la query di cui sopra non lo dovrò nenache utilizzare ma è solo per fare una verifica in quanto come nel post precedente quello che dovrò utilizzare presenta più query per singolo titolo.

Grazie

Nikk

risposto 9 anni fa
nikk
nikk
1
X 0 X

Ma il server è in remoto? E' un hosting?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

E' un hosting, per la precisione Aruba

Nikk

risposto 9 anni fa
nikk
nikk
1
X 0 X

Come funziona lo script in locale? Puoi leggere i log di apache? Hai provato a contattare l'assistenza?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

L'assistenza l'ho contattata e per loro è tutto a posto, mentre in locale poichè la tabella del db è di circa 120mb non me la carica e quindi le prove le faccio direttamente sul sito.

risposto 9 anni fa
nikk
nikk
1
X 0 X

io ti consiglio di crearti un ambiente in locale e verificare il tutto. Per caricare quei dati usa SQLyog oppure MySQL Administrator

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

Ok, vedrò.

Grazie

Nikk

risposto 9 anni fa
nikk
nikk
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda