Afficher le contenu d'une table - PHP - Programmation
Marsh Posté le 16-11-2006 à 00:45:39
(Limite si j'en ai pas ras le bol de dire toujours la même chose quand on a ce genre de question)
- Vérifie s'il n'y a pas d'éventuelles erreurs, parce que je suis pas pro oracle mais des espaces qui se promènent comme ça dans une requête, ça m'étonne un peu
- Est tu déjà sur qu'il entre dans ta boucle for ? et donc que $nb_lignes ne vaut pas 0 ?
Marsh Posté le 16-11-2006 à 01:41:39
J'ai changé le programme et ça ne va guère mieux. Maintenatn, je n'ai plus rien à l'écran. Même pas le premier echo...
<?php include("connexion_fuq.php" );
echo "Liste des gagnants";
$query="select cd bourse,cd pgm from fon php bourses vue";
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ésultats
{
reset($results); // se placer à la première ligne du tableau $results
while($res=each($results)) // Parcourir le tableau $results
{
echo $res[1]['CD BOURSE']; // no
echo $res[1]['CD PGM']; // nom
}
}
else // Pas de résultat
{ echo "Y'a personne "; }
include("deconnexion.php" );
?>
Code de select.php
<?php // 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);
?>
Marsh Posté le 16-11-2006 à 02:08:52
error_reporting(E_ALL);
Faut que ça soit dans tes premières lignes sinon si dans le php.ini t'as pas de remonté d'erreur t'auras rien non plus la valeur changeant au niveau où tu utilises error_reporting()
Et si display_error est à off dans le php.ini tu verras rien La faudrait rajouter un ini_set('display_error', 'on');
Au delà de l'affichage des erreurs, tu peux regarder où bloque ton script toi même, t'as vu que ça arrive pas à un endroit c'est qu'il s'arrête avant sur un truc bloquant
Marsh Posté le 16-11-2006 à 02:37:22
Ca t'affiche pas le echo en deuxième ligne c'est donc que ça coince à la premiere
Soit dans ton fichier inclu
Mais rajoute ses saloperies de lignes pour l'affiche des erreurs
Marsh Posté le 16-11-2006 à 02:41:53
Si j'enlève tout ce qui suite le select, echo s'affiche mais dès que je passe le include... plus rien.
Code de select.php:
<?php // 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(E_ALL);
error_reporting(0);
ini_set('display_error', 'on');
// 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);
?>
Marsh Posté le 16-11-2006 à 02:58:20
DAns index.php, il manquait un point-virgule. Les echo s'affichent miantenant!
Par contre, les données ne s'affichent pas.
Marsh Posté le 16-11-2006 à 03:13:06
T'es têtu, vires moi ton error_reporting(0) !
Après si y'a pas d'erreur mais simplement pas de résultats, suffit de faire un echo 'je suis là'; pour savoir si ça passe ou pas
Tu veux pas que je le fasse à ta place 3
Edit: un error_reporting suffit pour l'ensemble des scripts inclus
Marsh Posté le 16-11-2006 à 03:24:04
Je suis là passe mais le décompte est encore à 0.
Résultat à l'écran: Liste des gagnantsje suis làIl y a 0 résultats.Y'a personne
Marsh Posté le 16-11-2006 à 13:02:49
<Ca ne fonctionne pas. La table contient plus de 170 noms.
Marsh Posté le 16-11-2006 à 15:00:28
Mais ta requête est bonne, elle est éxécutée, la connexion au serveur marche...
Tu devrais peut être utiliser ora_fetch_into() ça te simplifierait la vie
Marsh Posté le 15-11-2006 à 22:34:32
Bonjour,
J'essaie d'afficher le contenu d'une table en PHP-Oracle
Il ne se passe absolument rien à l'écran quand j'exécute mon fichier sur le WEB. Pas de message d'erreur non plus. La connexion fonctionne.
Le code simple est le suivant:
<?php include("connexion_fuq.php" );?>
<!-- Lecture de la vue en PHP sous Oracle -->
<?php $requete = "SELECT cd bourse" . "FROM fon php bourses vue";
$id_resultat = ociparse($requete);
ociexecute($id_resultat);
while(ocifetch($id_resultat));
$nb_lignes = ocifetchstatement($id_resultat, $table_resultante);
for($i = 1; $i <= $nb_lignes; $i++)
{
$ligne = array_slice($table_resultante, $i, 1);
print_r($ligne);
}?>