Précédent   Forum du club des développeurs et IT Pro > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 19/04/2012, 12h04   #1
ines09
Invité régulier
 
Inscription : juillet 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 15
Points : 5
Points : 5
Par défaut multi requete sql

Bonjour,

Voilà je voudrais faire un état comptable dans feuille php connecté à une base oracle. Mon problème est le suivant, je voudrais structuré mon code afin d'avoir la meilleur visibilité, créer ma connexion sur ma base oracle (là pas de problème ca marche), puis faire toutes mes requetes (sachant qu'une requete ne remonte qu'un total à chaque fois), puis lancé mon execution, sans avoir a faire un while xxx

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$dbstr ="(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = ip))
    )
    (CONNECT_DATA =
      (SID = sid)
    )
  )" ;
 
$conn = oci_connect( "user", "mdp",$dbstr); 
 
 
if ($conn === false) 
die("Connexion impossible : " . oci_error()); 
 
$query1= "select sum(sd) from user.balance_cpt where ex='2011' and compte in ('2082','2083','2084')";
 
$statement = oci_parse ($conn, $query1);
oci_execute ($statement);
 
while ($row = oci_fetch_array ($statement, OCI_BOTH)) 
 
$data1=$row[0];
 
$query2= "select sum(sc) from h5103.bb_balance_cpt where ex='2011' and compte in ('28082','28083','28084')";
$statement2 = oci_parse ($conn, $query2);
oci_execute ($statement2);
 
while ($row2 = oci_fetch_array ($statement2, OCI_BOTH))    
 
$data2=$row2[0];

moi je voudrais faire comme cela

1 - code de connexion
2- toute mes requetes
3- execution et recupération des donnés en une fois si possible.

Merci d'avance pour votre aide.
ines09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/04/2012, 13h13   #2
Benjamin Delespierre
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 3 897
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 25
Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 3 897
Points : 8 605
Points : 8 605
Pourquoi pas oci_fetch_all ?
__________________
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter

N'oubliez pas de vous servir des bouttons , et
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 09h57   #3
ines09
Invité régulier
 
Inscription : juillet 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 15
Points : 5
Points : 5
Par défaut J'ai trouvé mais j'ai une nouvelle question

Bonjour,

Désolé pour ma réponse tardive, en tout cas merci pour ta réponse, mais j'ai trouvé un début de réponse à ma question. En fait je passe par une fonction qui me permet d'executer d'un coup toute mes requete :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
 
 
function Get($cpt)
{
 
$dbstr ="(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(PORT = 1521)(HOST = IP))
    )
    (CONNECT_DATA =
      (SID = SID)
    )
  )" ;
 
$conn = oci_connect( "USER", "MDPj",$dbstr); 
 
$query1 = oci_parse ( $conn , "select sum(sd) from table where ex='2011' and compte=$cpt" ); 
oci_execute ( $query1 ); 
$q = oci_fetch_array ( $query1 , OCI_BOTH ) ;     
 
 
//echo $q[0];
echo ''.number_format($q["0"],2, ',', ' ').'' ;
 
 
}  
 
Get(2088);
 
 
echo "<br />";
Get(215);
Par contre maintenant je voudrais faire à certains moment dans mon tableau, les additions de mes fonctions exemple :

Code :
1
2
 
echo get(215)+get(2088);
Mais là ca m'affiche les deux resultat cote à cote. j'ai même tenté de les stocks dans une variable dans la fonction et hors de la fonction ! Je dois peut etre type ma valeur de sortie de la fonction, mais là je caller !

Merci d'avance pour le coup de main.
ines09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2012, 14h41   #4
ines09
Invité régulier
 
Inscription : juillet 2005
Messages : 15
Détails du profil
Informations forums :
Inscription : juillet 2005
Messages : 15
Points : 5
Points : 5
Par défaut c'est bon

En fait il faut utiliser la fonction return et non echo dans le corps de la fonction et don il faut faire l'echo en dehors afin de pouvoir faire la somme et voilà.

Merci.
ines09 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h58.


 
 
 
 
Partenaires

Hébergement Web