Hello, that Is an exemple, it is how I access to my MySql database with php. I serialize data with PHP like this : § field separator end / data separator
data1/dat2/data3/data4§ data1/dat2/data3/data4§ data1/dat2/data3/data4§.......
I use the procedure splitstring to unserialize.
To test you must work on the server so I create a DebugApp, It is a debug windows on line.
Enjoy
SpiderBasic exemple
Code: Select all
; Exemple d'acces à une bae MySql
Enumeration Gadget
#ListeCaisse
#FenetreCaisse
EndEnumeration
; This procedure unserialise the return text
Procedure.i SplitString(String.s, Delimiter.s, Array Output.s(1))
Define n, i
n = 1 + CountString(String, Delimiter)
Dim Output.s(n - 1)
For i = 0 To n-1
Output(i) = Trim(StringField(String, 1+i, Delimiter))
Next i
EndProcedure
; useful function to debug online
Procedure DebugApp(Texte1.s,Texte2.s)
OpenWindow (#PB_Any,10,500,1000,100,"Debug")
ScrollAreaGadget(#PB_Any,0,0,1000,100,1000,500)
TextGadget(#PB_Any,3,3,980,25,texte1)
TextGadget(#PB_Any,3,20,980,25,texte2)
CloseGadgetList()
EndProcedure
Procedure CloseWindowEvent()
CloseWindow(EventWindow()) ; Close the specific window
EndProcedure
Procedure HttpGetCaisse(Success, Result.s, UserData)
; traitement menu en vente direct
Define i, j, k, MaxItem
Dim Requete.s(0)
Dim Donnee.s(0)
If Success
SplitString(Result, "§", Requete())
MaxItem = Val(Requete(0)) ; nombre d'item useful or not
For i = 1 To ArraySize(Requete())-1
SplitString(Requete(i), "/", Donnee()) ; separe les données de l'enregistrement
AddGadgetItem(#ListeCaisse, -1, Donnee(0)+Chr(10)+Donnee(4)+Chr(10)+Donnee(1)+Chr(10)+Donnee(2)+Chr(10)+Donnee(3))
Next
Else
debugApp ("Erreur caisse","")
EndIf
EndProcedure
OpenWindow( #FenetreCaisse, 10, 10, 600, 600, "Caisse "+ FormatDate("%dd-%mm-%yyyy %hh:%ii", Date()) , #PB_Window_SystemMenu | #PB_Window_ScreenCentered )
ListIconGadget(#ListeCaisse,10,10,600-20,600-20,"ID",10)
AddGadgetColumn(#ListeCaisse, 1, "Date", 30)
AddGadgetColumn(#ListeCaisse, 2, "Montant", 30)
AddGadgetColumn(#ListeCaisse, 3, "Caisse", 20)
AddGadgetColumn(#ListeCaisse, 4, "Ope", 100)
BindEvent(#PB_Event_CloseWindow, @CloseWindowEvent())
HTTPRequest(#PB_HTTP_Get, "requete_caisse.php", "", @HttpGetCaisse()) ; initialse la caisse
PHP exemple
Code: Select all
<?php
/*
echo '<pre>';
print_r($_POST);
print_r($_GET);
print_r($_SESSION);
echo '</pre>';
*/
include ("../../intranet/commun/connect.php");
$db = mysql_connect($dbhost, $dbuname, $dbpass)or die('Erreur de connexion '.mysql_error());
mysql_select_db($dbname,$db) or die('Erreur de selection '.mysql_error());
$dt = new \DateTime();
$sql = "SELECT id,date,montant,solde,ope FROM delices.caisse WHERE date ='".$dt->format('d-m-Y')."' ORDER BY id DESC" ;
//echo "$sql<br>";
$req = mysql_query($sql) or die('<br />Erreur SQL5 56 !<br>'.$sql.'<br>'.mysql_error());
echo mysql_num_rows($req)."§"; //retourne le nombre d'enregistrement
while($tab = mysql_fetch_object($req))
{
echo $tab -> id;
echo "/";
echo $tab -> montant;
echo "/";
echo $tab -> solde;
echo "/";
echo $tab -> ope;
echo "/";
echo $tab -> date;
echo "/";
echo "§"; // fin enregistrement
}
?>
</div>
</body>
</html>