Afficher le contenu d'une table

Afficher le contenu d'une table - PHP - Programmation

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);
   }?>

Reply

Marsh Posté le 15-11-2006 à 22:34:32   

Reply

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 ?

Reply

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);
?>

Reply

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 :spamafote: 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 :spamafote:

Reply

Marsh Posté le 16-11-2006 à 02:24:23    

Comment je peux voir où bloque mon script ?

Reply

Marsh Posté le 16-11-2006 à 02:31:42    

Je me demande si le premier include fonctionne.

Reply

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 :whistle:
 
Soit dans ton fichier inclu :spamafote:
 
Mais rajoute ses saloperies de lignes pour l'affiche des erreurs :o

Reply

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);
?>

Reply

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.

Reply

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 :spamafote:
 
Tu veux pas que je le fasse à ta place :whistle:3
 
 
Edit: un error_reporting suffit pour l'ensemble des scripts inclus ;)


Message édité par leflos5 le 16-11-2006 à 03:14:05
Reply

Marsh Posté le 16-11-2006 à 03:13:06   

Reply

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 :(


Message édité par fourniey le 16-11-2006 à 03:25:08
Reply

Marsh Posté le 16-11-2006 à 05:17:03    

Et donc quelle conclusion t'en fait :??:

Reply

Marsh Posté le 16-11-2006 à 13:02:49    

<Ca ne fonctionne pas. La table contient plus de 170 noms.

Reply

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 ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed