Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
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/05/2008, 12h58   #1
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 75
Points : 12
Points : 12
Par défaut requete ne retourne aucun résultat

bonjours!
je travaille avec php et j'ai la base de donnée oracle,lorsque je teste la requête elle m'affiche des données,mais quand je l'exécute dans le code elle retourne vide;voilà la fonction qui affiche les données:

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
public function getList()
	{		
		$query= "SELECT EXECUTABLES.LIBELLE,EXECUTABLES.EMPLACEMENT,EXECUTABLES.COMMENTAIRES,"
                  ."TECHNO_CARTE.LIBELLE_TECHNO,"
                  ."SERVICES.LIBELLE AS LIB_SERVICES,"
                  ."TYPE_EXECUTABLE.LIBELLE AS TYPE_EXE,"
                  ."EST_DU_TYPE.PARAM_IN,EST_DU_TYPE.PARAM_OUT"
                  ."FROM EXECUTABLES,EST_DU_TYPE,TECHNO_CARTE,SERVICES,TYPE_EXECUTABLE,NECESSITE,TRAVAILLE_SUR"
                  ."WHERE TECHNO_CARTE.ID_TECHNO = TRAVAILLE_SUR.ID_TECHNO"
                  ."AND TRAVAILLE_SUR.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE"
                  ."AND SERVICES.ID_SERVICE = NECESSITE.ID_SERVICE"
                  ."AND NECESSITE.ID_SERVICE = EXECUTABLES.ID_EXECUTABLE"
                  ."AND TYPE_EXECUTABLE.ID_TYPE_EXE LIKE EST_DU_TYPE.ID_TYPE_EXE"
                  ."AND EST_DU_TYPE.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE ";
 
	   	$sql=Database::getInstanceOf($this->getApplication()->Parameters['DATA_BASE']);
		$sql->connect();	
		$data=array();
		if($sql->execute($query)=='ok')
		{		
			$data= self::getDataFromResult($sql);							
		}
		$sql->fermer();	
		return $data;		
	}

la fonction qui verifie la connexion est la suivante:::
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
50
51
52
53
 
//EXECUTION DE LA REQUETE PASSEE EN PARAMETRE (SELECT)
	function execute($query)
	{
		// Il suffit de mettre 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);
 
		if (($this->verif != "nok") && ($this->verif != "ok"))
		{
			$this->verif = "nok";
		}
		else
		{			
			echo $this->connection;
			if ($this->cursor = ora_do($this->connection,$query))
			{
				$this->numCols = ora_numcols($this->cursor);		
				// On met la première ligne dans un tableau
				$row = array();				
				for ($i=0; $i<$this->numCols; $i++)
				{ 
					// On parcours toutes les colonnes 
					$row[ora_columnname($this->cursor, $i)] = ora_getcolumn($this->cursor, $i);
				}				
				$this->nbresults++;				
				// On ajoute la ligne $row au tableau results
				array_push($this->results, $row);				
				// Avec le fetch, on met une à une, les lignes résultantes de la requete
				//dans le tableau $row qui sera ensuite mis dans le tableau $results.
				while(ora_fetch($this->cursor))
				{ 
					// On parcours toutes les lignes
					$row=array();					
					for ($i=0; $i<$this->numCols; $i++)
					{ 
						// Pour chaque colonne de chaque ligne
						$row[ora_columnname($this->cursor, $i)] = ora_getcolumn($this->cursor, $i);
					}
					array_push($this->results, $row);
					$this->nbresults++;
				}
				$this->verif1 = "ok";
		}
			else { 					
					$this->verif1 = "nok"; 
				  }
				  print_r($this->results);
		}
		// Le fameux error_reporting. Mettre en commentaire pour voir les NO_DATA_FOUND.
		error_reporting(1);		
		return $this->verif1;
	}
alors voilà,si vous avez des suggestion ou vous arrivez à comprendre le problème,n'hésitez pas à me postuler vos réponses,merci
sarahG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 13h23   #2
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Bonjour
Tu dois apprendre quelques trucs, pour déboguer ton code PHP.

En voici 1 : echo

Fais un echo de ta variable $query et dis moi si tu vois quelque chose qui cloche,parce que tu as un erreur là.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
$query= "SELECT EXECUTABLES.LIBELLE,EXECUTABLES.EMPLACEMENT,EXECUTABLES.COMMENTAIRES,"
                  ."TECHNO_CARTE.LIBELLE_TECHNO,"
                  ."SERVICES.LIBELLE AS LIB_SERVICES,"
                  ."TYPE_EXECUTABLE.LIBELLE AS TYPE_EXE,"
                  ."EST_DU_TYPE.PARAM_IN,EST_DU_TYPE.PARAM_OUT"
                  ."FROM EXECUTABLES,EST_DU_TYPE,TECHNO_CARTE,SERVICES,TYPE_EXECUTABLE,NECESSITE,TRAVAILLE_SUR"
                  ."WHERE TECHNO_CARTE.ID_TECHNO = TRAVAILLE_SUR.ID_TECHNO"
                  ."AND TRAVAILLE_SUR.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE"
                  ."AND SERVICES.ID_SERVICE = NECESSITE.ID_SERVICE"
                  ."AND NECESSITE.ID_SERVICE = EXECUTABLES.ID_EXECUTABLE"
                  ."AND TYPE_EXECUTABLE.ID_TYPE_EXE LIKE EST_DU_TYPE.ID_TYPE_EXE"
                  ."AND EST_DU_TYPE.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE ";
 
echo $query;
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 13h48   #3
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 75
Points : 12
Points : 12
j'ai déjà fais le echo mais il ne m'affiche que la requête telle qu'elle est.
sarahG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 14h05   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Aller fais un petit effort.............






Manque pas quelques espaces?............






notamment vers les 'AND'
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 14h10   #5
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 75
Points : 12
Points : 12
je le fais,
consèrnant l'espace je ne sais pas mais je pense que il n'ya pas d'espaces dns la requête non?
sarahG est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 14h16   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Tu es incorrigible

essaye cette requête :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
$query= "SELECT EXECUTABLES.LIBELLE,EXECUTABLES.EMPLACEMENT,EXECUTABLES.COMMENTAIRES,"
                  ." TECHNO_CARTE.LIBELLE_TECHNO,"
                  ." SERVICES.LIBELLE AS LIB_SERVICES,"
                  ." TYPE_EXECUTABLE.LIBELLE AS TYPE_EXE,"
                  ." EST_DU_TYPE.PARAM_IN,EST_DU_TYPE.PARAM_OUT"
                  ." FROM EXECUTABLES,EST_DU_TYPE,TECHNO_CARTE,SERVICES,TYPE_EXECUTABLE,NECESSITE,TRAVAILLE_SUR"
                  ." WHERE TECHNO_CARTE.ID_TECHNO = TRAVAILLE_SUR.ID_TECHNO"
                  ." AND TRAVAILLE_SUR.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE"
                  ." AND SERVICES.ID_SERVICE = NECESSITE.ID_SERVICE"
                  ." AND NECESSITE.ID_SERVICE = EXECUTABLES.ID_EXECUTABLE"
                  ." AND TYPE_EXECUTABLE.ID_TYPE_EXE LIKE EST_DU_TYPE.ID_TYPE_EXE"
                  ." AND EST_DU_TYPE.ID_EXECUTABLE = EXECUTABLES.ID_EXECUTABLE ";
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/05/2008, 14h20   #7
Candidat au titre de Membre du Club
 
Inscription : janvier 2008
Messages : 75
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 75
Points : 12
Points : 12
youuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuupi,j'ai réussi!
j'ai ajouté un peu d'espaces des cotés des " et ma requête arrive maintenant à afficher les données merci à toi,mais j'ai encore d'autres problèmes que je vais essayer de resoudre tout de suite merci pour ton aide
sarahG est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 15h49.


 
 
 
 
Partenaires

Hébergement Web