aiuto con apache, php e mysql

Pubblicità
su windows in pascal, all'inizio dovevo specificare le variabili, integer, char ecc.
es.
PHP:
a:integer
b:integer
somma:integer
somma=a+b
ora su fedora, scrivendo con quanta, non specifico le variabili a inizio pagina, quando mi serva una variabile la uso
es.
PHP:
$somma=$a+$b
 
in php il tipo non dev'essere dichiarato, assegni direttamente un valore alla variabile:

Codice:
$db_host = "localhost";

invece di fare:

string $db_host;
$db_host = "localhost";
 
in php il tipo non dev'essere dichiarato, assegni direttamente un valore alla variabile:

Codice:
$db_host = "localhost";
invece di fare:

string $db_host;
$db_host = "localhost";

mi scirveresti il tuo post di prima:
PHP:
$db_host = "localhost";      $db_user = "xxx";      $db_password = "xxx";      $db_nome = "xxx";  $db = mysql_connect($db_host, $db_user, $db_password);

con le mie informazioni:

database = economia
utente = Miki
password = blabla
 
Codice:
$db_host = "localhost";      $db_user = "Miki";      $db_password = "blabla";      $db_nome = "economia";  $db = mysql_connect($db_host, $db_user, $db_password);
 
E' un errore di permessi. Controlla che il nome utente e la password siano esattamente quelli di mysql.
 
comunque forse ho risolto, ora il problema è la funzione:
PHP:
$res=pg_query($conn,$stringa);
non posso usare neanche questa??
 
Io per collegarmi ad un database ho sempre usato mysql_connect e ha sempre funzionato.

$db_nome viene usata per fare un controllo successivo, se vai a rileggere il codice più ampio che ti ho messo prima lo vedi.
 
Ciao Miki,

Il tuo problema è che usi funzioni php per postgreeSQL e tale modulo non è disponibile in apache...dovresti installarlo manualmente per poter andare avanti. Fedora lo aveva installato ed hai creato il sito seguendo postgree...

Su php + mysql (90% dei siti online) le funzioni sono:
mysql_connect + mysql_select_db invece di pg_connect
mysql_query invece di pg_query
mysql_num_rows invece di pg_num_rows
...
ecc ecc...
Vedi e fai le differenze:
per mysql: PHP: MySQL - Manual
per postgree: PHP: PostgreSQL Functions - Manual

Edit: il problema con nome utente e password per la connessione al server e db mysql ha avuto la risposta in un mio post precedente...ovvero nome utente="root", password = quello che hai inserito nella pagina xammp-security, ricordi?
 
Ciao Miki,

Il tuo problema è che usi funzioni php per postgreeSQL e tale modulo non è disponibile in apache...dovresti installarlo manualmente per poter andare avanti. Fedora lo aveva installato ed hai creato il sito seguendo postgree...

Su php + mysql (90% dei siti online) le funzioni sono:
mysql_connect + mysql_select_db invece di pg_connect
mysql_query invece di pg_query
mysql_num_rows invece di pg_num_rows
...
ecc ecc...
Vedi e fai le differenze:
per mysql: PHP: MySQL - Manual
per postgree: PHP: PostgreSQL Functions - Manual

Edit: il problema con nome utente e password per la connessione al server e db mysql ha avuto la risposta in un mio post precedente...ovvero nome utente="root", password = quello che hai inserito nella pagina xammp-security, ricordi?

grazie, sei stato molto esaudiente, pero' ricordo che anche con fedora c'era apache........
e comunque non c'è modo di poter usare le funzioni postgres nella mia situazione???
 
grazie, sei stato molto esaudiente, pero' ricordo che anche con fedora c'era apache........
e comunque non c'è modo di poter usare le funzioni postgres nella mia situazione???

Ci sono tante build di apache e quindi dipende...

Puoi usare postgre se installi tale modulo, ma secondo me faresti meglio di passare tutto su mysql soprattutto se vuoi mettere online il tuo sito. La maggior parte degli hosting providers usano solo mysql...

Per l'installazione di postgre vedi PHP: Installing/Configuring - Manual
 
Ci sono tante build di apache e quindi dipende...

Puoi usare postgre se installi tale modulo, ma secondo me faresti meglio di passare tutto su mysql soprattutto se vuoi mettere online il tuo sito. La maggior parte degli hosting providers usano solo mysql...

Per l'installazione di postgre vedi PHP: Installing/Configuring - Manual

ma il mio non è un sito, e non devo metterlo online, sono semplicemente delle pagine per fare calcoli....saranno 6 o 7 e mi spaventa comunque dover adattare tutte le funzioni ...
 
ma il mio non è un sito, e non devo metterlo online, sono semplicemente delle pagine per fare calcoli....saranno 6 o 7 e mi spaventa comunque dover adattare tutte le funzioni ...

non so cosa dirti... prova ad installare postgre, ma sicuramente ti darà dei problemi se non è ben configurato... comunque perderai più tempo per configurare postgre che modificare 10 pagine php, comunque parlo come se fossi io a fare tale operazione in quanto ho una certa dimestichezza con lo sviluppo php...

Facciamo così: scrivi qualche esempio di query che hai in pg e magari riesco a darti qualche dritta...anche se potrai farlo semplicemente anche tu...parto da un tuo esempio precedente:
$res=pg_query($conn,$stringa);
diventerà
$res = mysql_query($stringa); // dove $stringa sta per select...from...where

poi per leggere $res avrai
while ($row = mysql_fetch_row($result)) {
....
}
oppure
while ($row = mysql_fetch_array($result)) {
....
}

dammi un esempio concreto di una tua funzione e te la risolvo, poi vedrai che sarà tutto semplice ;)
 
allora ti posto la pagina che crea tabelle nel database:
PHP:
<html>

<head>
  <title>creazione tabelle</title>

</head>
    <?php
        $conn=pg_connect("dbname=economia user=Miki");
        $stringa= "create table conti (idconto serial primary key, descrizione char(30))";
        $res=pg_query($conn,$stringa);
        $stringa= "create table sottoconti (idsottoconto serial primary key, descrizione char(30), idconto integer)";
        $res=pg_query($conn,$stringa);
        $stringa= "create table mov1 (idmov1 serial primary key, idconto integer, idsottoconto integer, data date, importo numeric(10,2), segno char(1), descrizione char(30))";
        $res=pg_query($conn,$stringa);
        $stringa= "create table mov2 (idmov2 serial primary key, idmov1 integer, idconto integer, importo numeric(10,2), segno char(1), idiva char(2), idsottoconto integer)";
        $res=pg_query($conn,$stringa);
        $stringa= "create table iva (idiva char(2), aliquota numeric(2))";
        $res=pg_query($conn,$stringa);        
        $res=pg_close($conn);
        
           ?>

</html>
e una di calcolo:
PHP:
<html>
<body>
<head>
  <title>calcolo tfrl</title>
  <body><div align="center"><h1> TFRL </h1></div>  </body>
</head>
    
        <?php
        $today = getdate(); 
        $year = $today['year']; 
        


        $conto1 = "debiti v/ist prev";
        $conto2 = "debiti v/erario";
        $sottoconto1_1 = "tfrl";
        $sottoconto1_2 = "debiti per tfrl";
        $sottoconto2 = "ritenuta da versare";
        $data = "31/12/$year";
        $mensilità = $retribuzione/13.5;
        $tfrcompetenza = ($mensilità - (($retribuzione * 0.5)/100));
        if ($debiti > 0)
        {
          $rivalutazione = $debiti * (1.5 + (($indice * 75)/100))/100;    
         $ritenuta = ($rivalutazione * 11)/100;
        $tfr = $tfrcompetenza + $rivalutazione;

        }    
            else
             $tfr = $tfrcompetenza;
         
        $tfr1= $tfr - $ritenuta;
        
        $conn=pg_connect("dbname=economia user=Miki");
       
        
        $stringa= "select * from conti where descrizione = '$conto1'";
        $res=pg_query($conn, $stringa);
        $nrighe= pg_num_rows($res);
        $nr1=pg_fetch_array($res,0);
        $idconto1= $nr1["idconto"];
        if ($nrighe==0)
        {

            $stringa="insert into conti (descrizione) values ('$conto1')  returning idconto";
            $res=pg_query($conn, $stringa);

            $nr1=pg_fetch_array($res,0);
            $idconto1= $nr1["idconto"];
        }

        

        $stringa= "select * from conti where descrizione = '$conto2'";
        $res=pg_query($conn, $stringa);
        $nrighe= pg_num_rows($res);
        $nr1=pg_fetch_array($res,0);
        $idconto2= $nr1["idconto"];
        if ($nrighe==0)
        {
            $stringa="insert into conti (descrizione) values ('$conto2') returning idconto";
            $res=pg_query($conn, $stringa);
            $nr1=pg_fetch_array($res,0);
            $idconto2= $nr1["idconto"];

        }

        $stringa= "select * from sottoconti where descrizione = '$sottoconto1_1'";
        $res=pg_query($conn, $stringa);
        $nrighe= pg_num_rows($res);
        $nr1=pg_fetch_array($res,0);
        $idsottoconto1_1= $nr1["idsottoconto"];
        if ($nrighe==0)
        {
            $stringa="insert into sottoconti (descrizione, idconto) values ('$sottoconto1_1', '$idconto1') returning idsottoconto";
            $res=pg_query($conn, $stringa);
            $nr1=pg_fetch_array($res,0);
            $idsottoconto1_1= $nr1["idsottoconto"];            


        }    



        $stringa= "select * from sottoconti where descrizione = '$sottoconto1_2'";
        $res=pg_query($conn, $stringa);
        $nrighe= pg_num_rows($res);
        $nr1=pg_fetch_array($res,0);
        $idsottoconto1_2= $nr1["idsottoconto"];
        if ($nrighe==0)
        {
            $stringa="insert into sottoconti (descrizione, idconto) values ('$sottoconto1_2', '$idconto1') returning idsottoconto";
            $res=pg_query($conn, $stringa);
            $nr1=pg_fetch_array($res,0);
            $idsottoconto1_2= $nr1["idsottoconto"];    

        }
        
        $stringa= "select * from sottoconti where descrizione = '$sottoconto2'";
        $res=pg_query($conn, $stringa);
        $nrighe= pg_num_rows($res);
        $nr1=pg_fetch_array($res,0);
        $idsottoconto2= $nr1["idsottoconto"];
        if ($nrighe==0)
        {
            $stringa="insert into sottoconti (descrizione, idconto) values ('$sottoconto2', '$idconto2') returning idsottoconto";
            $res=pg_query($conn, $stringa);
            $nr1=pg_fetch_array($res,0);
            $idsottoconto2= $nr1["idsottoconto"];    
        }

        $stringa= "insert into mov1 (idconto, idsottoconto, data, importo, segno, descrizione) values ('$idconto1', '$idsottoconto1_1', '$data', '$tfr', 'd', '$sottoconto1_1') returning idmov1";
        $res=pg_query($conn, $stringa);
        $nr1=pg_fetch_array($res,0);
        $idmov1= $nr1["idmov1"];
        

        $stringa= "insert into mov2 (idmov1, idconto, importo, segno, idsottoconto) values ('$idmov1', '$idconto1', '$tfr1', 'a', '$idsottoconto1_2')";
        $res=pg_query($conn, $stringa);

        $stringa= "insert into mov2 (idmov1, idconto, importo, segno, idsottoconto) values ('$idmov1', '$idconto2', '$ritenuta', 'a', '$idsottoconto2')";
        $res=pg_query($conn, $stringa);
        
        

        $res=pg_close($conn);

        

              ?>


</body>

<A href="visualizzazione.php"><INPUT type="submit" name="visualizza giornale" value="visualizza giornale" align="center"></A>


</html>
 
Pubblicità
Pubblicità
Indietro
Top