Spanish Mejor Modo de Trabajar BD Online

TheFalcon

Active Member
Licensed User
Buenas y perdonad la pregunta estúpida, pero llevo un par de semanas mirando ejemplos tutoriales y cada vez estoy mas liado, mi pregunta es cual es el mejor modo de trabajar con una base de dato Remota online, yo estaba usando mysql mediante un servidor Wamp para probar, pero o no me va o me genera muchos problemas, no se si hay otro modo mas novedoso, o mas sencillo de trabajar con una base de datos online en la que guardar y recuperar datos, Agradecería cualquier ayuda u Orientación

Un Saludo
 

rscheel

Well-Known Member
Licensed User
Mysql y PHP, es la mejor opción es fácil de usar, o la otra alternativa es firebase DB.
 

TheFalcon

Active Member
Licensed User
Gracias por tu pronta respuesta,con mysql es que tengo muchos problemas o de conexión,o a la hora de guardar datos, no consigo hacer que me guarde nada, y desde fuera accediendo a un test.php para verificar que si me va, me devuelve la respuesta sin problemas, pero cuando voy a guardar me da error de "Conection to Refused" y cortafuegos y antivirus desactivados . Y no doy con algún tutorial sencillo para probar
 

rscheel

Well-Known Member
Licensed User
Podrías colocar el código PHP y B4A que estas usando para poder echarte una mano
 

TheFalcon

Active Member
Licensed User
El tutorial que estoy mirando esta echo con Xamp y yo uso wamp pero no creo que haya diferencia.

Codigo de B4 solo pongo el de insertar.



B4X:
Sub Activity_Create(FirstTime As Boolean)

    ServerIP="localhost:85" ' The ip address where you Xampp installation runs
   
End Sub

Sub InsertNewPersonButton_Click
   
    If NameET.Text.Length<2 Then
       Msgbox("Name is missing or to short", "Name")
       Return
    End If
   
    If AgeET.Text = "" Then
       Msgbox("Age is missing", "Age")
       Return
    End If
           
    Dim InsertNewPerson As HttpJob
    InsertNewPerson.Initialize("InsertNewP", Me)
    InsertNewPerson.download2("http://" & ServerIP & "/persons/persons.php", Array As String ("action", "InsertNewPerson", "name", NameET.Text, "age", AgeET.Text))
End Sub


Sub JobDone(Job As HttpJob)
    ProgressDialogHide
    If Job.Success Then
        Dim res As String
        res = Job.GetString
        Log("Back from Job:" & Job.JobName )
        Log("Response from server: " & res)
               
        Dim parser As JSONParser
        parser.Initialize(res)
       
        Select Job.JobName
                       
            Case "GetP"
                Dim ListOfPersons As List
                Dim PersonName As String
                Dim PersonAge As Int
               
                ListOfPersons = parser.NextArray 'returns a list with maps
               
                PersonsListview.Clear
               
                If ListOfPersons.Size=0 Then
                    PersonsListview.AddSingleLine ("No persons found...")
                Else
                    For i = 0 To ListOfPersons.Size - 1
                        Dim Person As Map
                        Person = ListOfPersons.Get(i)
                                           
                        PersonName = Person.Get("name")
                        PersonAge = Person.Get("age")
                       
                        PersonsListview.AddSingleLine (PersonName & ", " & PersonAge)
                       
                    Next
                End If
       
            Case "CountP"
                PersonsListview.AddSingleLine ("Persons in table: " & parser.NextValue)
               
            Case "InsertNewP"
                'Do nothing
               
        End Select
       
       
       
    Else
        ToastMessageShow("Error: " & Job.ErrorMessage, True)
    End If
    Job.Release
End Sub

Codigo PHP

B4X:
<?php

$host = "localhost:85";
$user = "root";
$pw = "1234";
$db = "persons";

$con = mysql_connect($host,$user,$pw) or die(mysql_error());
mysql_select_db($db) or die(mysql_error());
mysql_query("SET CHARACTER SET utf8");
mysql_query("SET NAMES 'utf8'");

$action = $_GET["action"];
switch ($action)

{
    case "CountPersons":
        $q = mysql_query("SELECT * FROM persons");
        $count = mysql_num_rows($q);
        print json_encode($count);
    break;
   
    Case "GetPersons":
        $q = mysql_query("SELECT name, age FROM persons");
        $rows = array();
        while($r = mysql_fetch_assoc($q))
        {
            $rows[] = $r;
        }
        print json_encode($rows);
    break;
   
    case "InsertNewPerson":
        $name = $_GET["name"];
        $age = $_GET["age"];
        $q = mysql_query("INSERT INTO persons (name, age) VALUES ('$name', $age)");
        print json_encode("Inserted");
    break;
   
}





?>
Si pongo en el PHP y en el B4 localhost ó localhost:85 me da conection refused. si pongo la ip local 192.168.0.70:85 . o 192.168.0.70 directamente no hace nada.
 
Top