Come anticipato allego B4J (testato) e B4A (
non testato).
Grazie:
@sirjo66 per la sua
guida e per il suo file execute.php a cui mi sono permesso di aggiungere solo una riga;
@LucaMs per i suggerimenti, i consigli sempre utili e per la sua innata capacità di
cercatore (d'altronde se hai i capelli e gli occhiali (?), ci siamo!);
@Star-Dust, che pure se avevo letto
questo e non ci avevo capito granché, mi è comunque servito per intuire alcuni concetti.
File execute.php da usare:
[CODE lang="php" title="execute.php"]<?php
// esegue un comando SQL (SELECT - UPDATE - DELETE - INSERT o altri)
$sql = '';
if (isset($_GET['sql'])) $sql = $_GET['sql'];
$chk = '';
if (isset($_GET['chk'])) $chk = $_GET['chk'];
//include('include/config.php');
include('config.php');
include('queries.php');
$md5 = md5("SJ".$sql."PT");
//if ($md5 != strtolower($chk)) {
// echo "E\nErrore parametro CHK\nParametro CHK non corretto\n"; // 4 righe
// return;
//}
//avvio connessione al database
$db = @new mysqli($mysql_host,$mysql_user,$mysql_password,$mysql_database);
if ($db->connect_error) {
echo "E\nErrore connessione al database\n".$db->connect_error."\n"; // 4 righe
return;
}
$db->query("SET CHARACTER SET utf8");
$rs = $db->query($sql);
if ($rs === false) {
echo "E\nErrore query\n".$db->error."\n".$sql;
$db->close();
return;
}
// estraggo il comando base
$cmd = strtoupper($sql);
$vn = strpos($cmd, " ");
if ($vn !== false) $cmd = substr($cmd, 0, $vn);
switch ($cmd) {
case "SELECT":
$nrs = mysqli_num_rows($rs); // record count
$lst = [];
for ($i = 0; $i < $nrs; $i++) { $lst[] = mysqli_fetch_assoc($rs); } // porto i risultati sull'array $lst
echo json_encode($lst);
break;
case "UPDATE":
echo "K\n".$db->affected_rows;
break;
case "DELETE":
echo "K\n";
break;
case "INSERT":
echo "K\n".$db->insert_id;
break;
default:
echo "K\n";
}
$db->close();
?>
[/CODE]
File queries.php da usare:
[CODE lang="b4x" title="queries.php"]<?php
$action = '';
if (isset($_GET['action'])) $action = $_GET['action'];
$ID = '';
if (isset($_GET['ID'])) $ID = $_GET['ID'];
$values = '';
if (isset($_GET['values'])) $values = $_GET['values'];
$splittedvalues = explode("|",$values);
$mil = $splittedvalues[2];
$seconds = $mil / 1000;
$date = date("Y-m-d", $seconds);
switch ($action)
{
case "SelectAllAnimals":
$sql = ("SELECT * FROM Animals");
break;
case "DeleteOneAnimal":
$sql = ("DELETE FROM Animals WHERE ID = $ID");
break;
case "InsertOneAnimal":
$sql = ("INSERT INTO Animals(ID, species, name, birth_date, sex) VALUES ('$ID', '$splittedvalues[0]', '$splittedvalues[1]', '$date', '$splittedvalues[3]')");
break;
case "UpdateOneAnimal":
$sql = ("UPDATE Animals SET species= '$splittedvalues[0]', name = '$splittedvalues[1]', birth_date = '$date', sex = '$splittedvalues[3]' WHERE ID = $ID");
break;
}
?>
[/CODE]
Apprezzati osservazioni e suggerimenti!