Précédent   Forum des professionnels en informatique > 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 Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/04/2008, 08h20   #1
Membre régulier
 
Inscription : août 2005
Messages : 342
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 342
Points : 76
Points : 76
Envoyer un message via MSN à akrogames
Par défaut Récupération de données qui coince

Bonjour à tous,

Je me suis aidé de script de connexion PHP pour oracle sur le web mais je ne comprend pas pourquoi il ne me retourne aucun résultat.
J'ai ces erreurs:

Code :
1
2
3
4
Notice: Undefined variable: results in C:\Program Files\EasyPHP 2.0b1\www\connect.php on line 17
Il y a 0 résultats.
Notice: Undefined variable: results in C:\Program Files\EasyPHP 2.0b1\www\connect.php on line 19
Y'a personne :(
select.php:
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
33
34
35
36
37
38
 
<? // Il suffit de mette en commentaire error_reporting pour faire du
// débogage - voir quand il n'y a aucun résultat "NO DATA FOUND" par exemple.
error_reporting(0);
 
// Crée un tableau, un curseur, compte les colonnes,
// fait le fetch en insérant dans le tableau.
$results = array();
$ora_cur = ora_do($ora_conn, $query);
 
if ($ora_cur)
{
  // Nombre de colonnes
  $numCols = ora_numcols($ora_cur);
 
  // Prends la première ligne et la met dans le tableau...
  $row = array();
  for($i=0; $i<$numCols; $i++)
  { // Parcours des colonnes
    $row[ora_columnname($ora_cur, $i)] = ora_getcolumn($ora_cur,$i);
  }
  array_push($results,$row);
 
  // "Fetch" des lignes, une par une, en créant un tableau pour chaque ligne.
  // Chaque tableau est inséré à la suite du tableau $results.
  while (ora_fetch($ora_cur))
  { // Pour chaque ligne
    $row = array();
    for($i=0; $i<$numCols; $i++)
    { // Chaque colonne
      $row[ora_columnname($ora_cur, $i)] = ora_getcolumn($ora_cur,$i);
    }
    array_push($results,$row);
  }
}
// Le fameux error_reporting. Mettre en commentaire pour voir les NO_DATA_FOUND.
error_reporting(1);
?>
connect.php:

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
33
34
35
36
 
<?php
$ora_conn = ora_logon("****@****", "******");
 
if (!$ora_conn) {
    echo "<div style=\"background-color: #DDDDDD;width:300px\"><font color=\"red\">Probl&egrave;me pour se connecter &agrave; la base.<BR>\n";
    echo ora_error(), "\n";
    echo "</font></div>";
}
 
echo "Liste des communes";
 
$query="SELECT * FROM tcommune;";
 
include("select.php");
 
// Connaître le nombre de résultats :
echo "Il y a " . count($results) . " résultats.";
// Parcours du tableau $results pour afficher les résultats :
if (count($results)) // Si y'a des résultat
{
 reset($results); // se placer à la première ligne du tableau $results
 while($res=each($results)) // Parcourir le tableau $results
 {
  echo $res[1]['NOM']; // nom
  echo $res[1]['PRENOM']; // prenom
  // Attention, il faut bien mettre les noms de colonnes en MAJUSCULE
  // et entre ' et ' ou " et "
 }
}
else // Pas de résultat
{ echo "Y'a personne :("; }
 
 
 
?>
En vous remerciant de votre aide car je débute avec oracle et je galère je dois bien l'avouer.

A bientôt
akrogames est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/04/2008, 11h31   #2
Membre éclairé
 
Homme Damien Attanasio
Développeur informatique
Inscription : février 2007
Messages : 340
Détails du profil
Informations personnelles :
Nom : Homme Damien Attanasio
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Transports

Informations forums :
Inscription : février 2007
Messages : 340
Points : 307
Points : 307
Pour ma part, j'utilise ces fonctions :

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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
 
function bd_connexion($serveur,$base,$login,$motdepasse)
/* Connexion a la base
Return = id de connexion / false si erreur */
{
	return oci_connect($login,$motdepasse,$serveur);
}
 
function bd_requete($conn,$requete,$commiter=1)
/* Exécution de la requete
Return = résultat requete / false si erreur */
{
	$stid = oci_parse($conn,$requete);
	if (!$stid)
	{
		return false;
		exit;
	}
	if($commiter==1)
	{
		$r = oci_execute($stid);
		if (!$r)
		{
			return false;
 
			exit;
		}
	}
	else
	{
		$r = oci_execute($stid,OCI_DEFAULT);
		if (!$r)
		{
			return false;
			exit;
		}
	}
	return $stid;
}
 
if (!($conn = bd_connexion(BD_SERVEUR,"",BD_UTILISATEUR,BD_MOTDEPASSE)))
		die ('erreur !!!!');
$requete = 'SELECT * FROM DUAL';
$resultat = bd_requete($conn,$requete);
$ligneres = oci_fetch_array($resultat);
 
 
?>
Tu peux t'en inspirer pour retravailler ton code
madevilts est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h28.


 
 
 
 
Partenaires

Hébergement Web