Italian Collegamento DB MySql su Aruba

marketto

Member
Licensed User
Ciao a tutti,

ho risistemato un codice trovato sul forum per collegarmi su u DB MySql di Aruba.

Gli errori che i restituisce sono questi (sulla sub AccessoDb) come da foto.
Non riesco però a capire some dichiarare le due variabili:
Md5calc e Httpjob.
Mi mancano forse delle librerie per farlo o mi sbaglio?
Il codice lato server l'ho già caricato sul server e spero sia ok.

Grazie anticipatamente Marco

foto_errori.png
 

MARCO C.

Active Member
Licensed User
Ciao omonimo,
ti riporto un esempio che utilizzo per leggere un ordine in una tabella MySql su Aruba

B4X:
Sub LoadOrdine
    Dim SubName As String
    Dim Query, risult As String
       
    NessunOrdine = True
   
    Try
        SubName = "LoadRifOrdine"
   
        Query =" SELECT * FROM `ordini` "
   
        Log(Query)
        Log("-----------")
       
        Dim wjob As HttpJob
        wjob.Initialize("" ,Me)
        wjob.PostString("https://www.nomeserver.it/file/execute.php", Query)
   
        Wait For (wjob) JobDone(wjob As HttpJob)
   
        If wjob.Success Then
            'ToastMessageShow("LOAD Ordine",False)
            Log("Load ordine  ")
            Dim text As String = wjob.GetString
            Dim json As JSONParser
            Try
                json.Initialize( text )
            Catch
                Log("Text: Could not initialize json...")
              
                Return
            End Try
            Dim list As List
            Try
                list = json.NextArray
            Catch
                Log(LastException)
       
                Log("Server non risponde  ")
                Log("List: Error with json array: " & LastException.Message)
       
                Return
            End Try
       
       
            If list.Size=0 Then
                Log("Nessun risultato ")
            End If
   
            For i = 0 To list.Size - 1
                Dim M As Map
                M = list.Get(i)
           
                risult =m.Get("rifordine") & CRLF
                risult = risult & m.Get("note") & CRLF
                risult = risult & m.Get("idordini") & CRLF
                risult = risult & m.Get("mailcli") & CRLF
                               
                Log("Ho preso i dati ordine : " & risult)
                NessunOrdine=False
               
            Next
   
       
        Else
          
            Log("Anomalia: server non risponde..   " )
            Log("Error: " & wjob.ErrorMessage)
           
            Return
        End If
   
        wjob.Release
       
        Sleep(0)
       
    Catch
        Log($"${SubName}: errore  ${LastException}"$)
    End Try
   
End Sub
 

MARCO C.

Active Member
Licensed User
scusa .. dimenticavo
il file php è il seguente

PHP:
<?php

$databasehost = "89.46.xxx.xxx";
$databasename = "Sql1234567_1";
$databaseusername ="Sql1234567";
$databasepassword = "mypassword";
$con = mysqli_connect($databasehost,$databaseusername,$databasepassword, $databasename) or die(mysqli_error($con));
mysqli_set_charset ($con , "utf8");
$query = file_get_contents("php://input");
$sth = mysqli_query($con, $query);

if (mysqli_errno($con))
{   header("HTTP/1.1 500 Internal Server Error");
  echo $query.'\n'; 
 echo mysqli_error($con);
}
elseif (is_bool( $sth ))  { 
   if ($sth == TRUE)
   {     
    $json = '[OK]';   
    //echo "json =ok";
   }   
   else
   {     
   $json = '[FAIL]';   
    //echo "json =fail";
   }   
   echo $json;
   }

 else

 { 
 //echo "non boolean sono su array ";
 $rows = array();   
 while($r = mysqli_fetch_assoc($sth))
 {     
 $rows[] = $r;   
 }
  $res = json_encode($rows);
   echo $res;   
mysqli_free_result($sth);
}
mysqli_close($con);
?>
 

marketto

Member
Licensed User
Grazie della risposta.
Fino ad ora sono riuscito a leggere il numero delle righe di una tabella da far leggere all’app e ad aggiungere una campo al DB.
Ancora non ho implementato la criptazione md5. Vedrò di farla in seguito.
Oggi però è successa una cosa che a me pare strana.
Da un modulo Registrazione mando il mio username è la mia password al db e vengono registrati perfettamente.
Dopo tale registrazione, avvenuta con successo, devo cambiare modulo con startactivity ma ciò non avviene.
A dire il vero per un attimo passa alla nuova pagina poi torna alla pagina da dove è stata fatta la chiamata di lancio della pAgina php.
Ora mi chiedo se tale comportamento è giusto

Grazie ancora
 

Xfood

Expert
Licensed User
Ciao omonimo,
ti riporto un esempio che utilizzo per leggere un ordine in una tabella MySql su Aruba

B4X:
Sub LoadOrdine
    Dim SubName As String
    Dim Query, risult As String
      
    NessunOrdine = True
  
    Try
        SubName = "LoadRifOrdine"
  
        Query =" SELECT * FROM `ordini` "
  
        Log(Query)
        Log("-----------")
      
        Dim wjob As HttpJob
        wjob.Initialize("" ,Me)
        wjob.PostString("https://www.nomeserver.it/file/execute.php", Query)
  
        Wait For (wjob) JobDone(wjob As HttpJob)
  
        If wjob.Success Then
            'ToastMessageShow("LOAD Ordine",False)
            Log("Load ordine  ")
            Dim text As String = wjob.GetString
            Dim json As JSONParser
            Try
                json.Initialize( text )
            Catch
                Log("Text: Could not initialize json...")
             
                Return
            End Try
            Dim list As List
            Try
                list = json.NextArray
            Catch
                Log(LastException)
      
                Log("Server non risponde  ")
                Log("List: Error with json array: " & LastException.Message)
      
                Return
            End Try
      
      
            If list.Size=0 Then
                Log("Nessun risultato ")
            End If
  
            For i = 0 To list.Size - 1
                Dim M As Map
                M = list.Get(i)
          
                risult =m.Get("rifordine") & CRLF
                risult = risult & m.Get("note") & CRLF
                risult = risult & m.Get("idordini") & CRLF
                risult = risult & m.Get("mailcli") & CRLF
                              
                Log("Ho preso i dati ordine : " & risult)
                NessunOrdine=False
              
            Next
  
      
        Else
         
            Log("Anomalia: server non risponde..   " )
            Log("Error: " & wjob.ErrorMessage)
          
            Return
        End If
  
        wjob.Release
      
        Sleep(0)
      
    Catch
        Log($"${SubName}: errore  ${LastException}"$)
    End Try
  
End Sub
ciao Marco,
si potrebbe avere anche un esempio di update e un esempio di insert?
diciamo un esempio di un piccolo framework con script php per gestire un db remoto
Grazie e buon fine settimana
 

MARCO C.

Active Member
Licensed User
ciao Marco,
si potrebbe avere anche un esempio di update e un esempio di insert?
diciamo un esempio di un piccolo framework con script php per gestire un db remoto
Grazie e buon fine settimana
Come ho un PC a disposizione assolutamente si .
Ma la tecnica è la stessa del "select " ..del primo esempio . Alla variabile Query , al posto di Select , nel sql metto "Insert Into " o Update .
 

Xfood

Expert
Licensed User
Come ho un PC a disposizione assolutamente si .
Ma la tecnica è la stessa del "select " ..del primo esempio . Alla variabile Query , al posto di Select , nel sql metto "Insert Into " o Update .
Grazie, anche un piccolo controllo su insert e update mi sarebbe utile, tipo se esiste il campo primario fai un update, altrimenti un insert.
E da un po che volevo completare una mia app con db remoto, lasciata da parte per troppo tempo, spero di finirla con il tuo aiuto , mi sono sempre "arenato", cosi con questo piccolo framework dovrei essere apposto.
Grazie ancora
 

MARCO C.

Active Member
Licensed User
Grazie, anche un piccolo controllo su insert e update mi sarebbe utile, tipo se esiste il campo primario fai un update, altrimenti un insert.
E da un po che volevo completare una mia app con db remoto, lasciata da parte per troppo tempo, spero di finirla con il tuo aiuto , mi sono sempre "arenato", cosi con questo piccolo framework dovrei essere apposto.
Grazie ancora
scusa @Xfood oggi non sono riuscito a prepararti nulla. Ci provo domani . 😔
 

MARCO C.

Active Member
Licensed User
Buonasera @Xfood ,
in allegato una esempio per leggere e modificare un database Mysql. Dovresti trovare tutto nel file in allegato : struttura dati, note, indicazioni delle librerie utilizzate e file php da inserire sul web.
Ovviamente , nel mio piccolo, a disposizione per chiarimenti
M.
 

Attachments

  • ESEMPIO_XFood.zip
    130 KB · Views: 203

Xfood

Expert
Licensed User
Buonasera @Xfood ,
in allegato una esempio per leggere e modificare un database Mysql. Dovresti trovare tutto nel file in allegato : struttura dati, note, indicazioni delle librerie utilizzate e file php da inserire sul web.
Ovviamente , nel mio piccolo, a disposizione per chiarimenti
M.
Ottimo, grazie, e piu di quello che mi aspettavo.
 
Top