Convertir code asp en php

aspisterverte
Invité n'ayant pas de compte PHPfrance

29 mars 2013, 17:59

Salut les pros du php.
J'aurai besoin de faire un bout de code en php mais hélas je suis du monde de l'asp.
Comme un exemple vaut mieux qu'un long discours pourriez vous m'iader à faire l'équivalent en php?

Set conn = CreateObject("ADODB.Connection")
conn.Open "DBQ=" & Server.Mappath("mabase.mdb") & ";Driver={Microsoft Access Driver (*.mdb)};"

item_number = request("item_number")
amount = request("custom")

Set rs=server.createObject ("ADODB.recordset")
sql = "SELECT * from commandes WHERE commandes.idcommande="&item_number&" AND commandes.prix_final="&amount&" ;"
rs2.Open sql2, conn, 1, 2 ,1
rs2.fields("valid")= true
rs2.update
rs2.close
set rs2=nothing

conn.close
set conn=nothing

for a=0 to ubound(contenu)-1
sspdt = Split(contenu,"monseparateur")
idessin=sspdt(a)
idessin=left(idessin,5)
idessin=replace(idessin,"test","")
next



j'en suis là mais je seche...

$DSNLess='DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ=C:\www\Admin\mabase.mdb';
$cnx=odbc_connect($DSNLess,'','');

$item_number = $_POST['item_number'];
$amount = $_POST['custom'];

sql = "SELECT * from commandes WHERE commandes.idcommande='$item_number' AND commandes.prix_final='$amount' ;"

à traduire............... rs.Open sql2, conn, 1, 2 ,1
à traduire............... rs.fields("valid")= true
à traduire............... rs.update
à traduire............... rs.close
à traduire............... set rs=nothing

odbc_close ($cnx);


à traduire............... for a=0 to ubound(contenu)-1
à traduire............... sspdt = Split(contenu,"monseparateur")
à traduire............... idessin=sspdt(a)
à traduire............... idessin=left(idessin,5)
à traduire............... idessin=replace(idessin,"test","")
à traduire............... next

D'avance merci pour le coup de main si vous en avez le temps

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 mars 2013, 19:47

Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

29 mars 2013, 20:37

merci j'avance ^^

sql = "SELECT * from commandes WHERE commandes.idcommande='$item_number' AND commandes.prix_final='$amount' ;"

à traduire............... rs.Open sql2, conn, 1, 2 ,1
à traduire............... rs.fields("valid")= true
à traduire............... rs.update
à traduire............... rs.close
à traduire............... set rs=nothing

devient
$sql = "UPDATE commandes SET valid='1' WHERE commandes.idcommande=".$item_number." AND commandes.prix_final=".$amount." ;";
$result = odbc_do ($cnx,$sql);

par contre j'aurai une question sur les liens en relatif est ce possible en php
exemple transformer
$DSNLess='DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ=C:\www\Admin\mabase.mdb';
en
$DSNLess='DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ=..\mabase.mdb';

là encore j'ai trouvé je ne sais pas si c'est le pls gracieux mais cela fonctionne :

$chemin = $_SERVER["APPL_PHYSICAL_PATH"];
$DSNLess='DRIVER={Driver do Microsoft Access (*.mdb)}; DBQ='.$chemin.'mabase.mdb';

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 mars 2013, 22:40

le select qui devient un update c'ets louche mais ça fait ce que tu veux :)


pour le restant autant directement utiliser $_SERVER dans la chaine de caractère :)

si tu est certain de l'emplacement tu peux utiliser basedir et la constante __FILE__ pour former l'url à partir de ton fichier courant.


@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 2 Messages

30 mars 2013, 19:52

en fait j'en suis arrivé au même raisonnement mais après quelques heures ^^ passer de l'asp au php n'est pas si aisé que je pensais.
Pa rexemple la je galère sur l'équivalent de la fonction split avec explode.
En asp ca donne cela
for a=0 to ubound(contenu)-1
sspdt = Split(contenu,"µµ")
idcherche=sspdt(a)
// et la tu fais ce que tu veux sachant que le sspdt( pair 0 2 4 6) sera toujours la partie gauche du split
next

avec php j'arrive a exploder mais j'ai pas encore compris comment récupérer la partie gauche de la chaine que tu exploses:
$idcherche = explode("µµ", $contenu);
print_r($idcherche);
mais bon je lache pas l'affaire tant que j'ai pas fini ;-)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

31 mars 2013, 10:38

Explode retourne un simple tableau. Donc si tu qu'une fois ta chaîne qui sert de délimiteur ton tableau final aura deux éléments celui d gauche étant le premier.

As tu bien regardé la doc de la fonction c'est assez clair :/


Si non pour passer d'un langage à un autre le plus simple c'est d'étudier l'original, de créer l'algorithme équivalent (en pseudo code) cela sera plus simple que de transcrire ligne à ligne (et sûrement plus efficace ;)).



@+
Il en faut peu pour être heureux ......