{Oracle} afficher une table en php
Résolu
haroun-
Messages postés
708
Date d'inscription
Statut
Membre
Dernière intervention
-
nzounza Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
nzounza Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- {Oracle} afficher une table en php
- Table ascii - Guide
- Table des matières word - Guide
- Afficher appdata - Guide
- Afficher google en page d'accueil - Guide
- Table des caractères - Guide
11 réponses
<?php
include ("connexion.php");
echo "Liste des livres";
$query = "SELECT code_livre,titre,themes from livre";
include("select.php");
// 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]["CODE_LIVRE"]; // code_livre
echo $res[1]["TITRE"]; // titre
echo $res[1]["THEMES"]; //themes
// Attention, il faut bien mettre les noms de colonnes en MAJUSCULE
// et entre " et "
// Traitement...
echo "<br />";
}
}
include ("deconnexion.php");
?>
et ça c'est le fichier select.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);
?>
et ça c'est les deux fichiers connexion.php et deconnexion.php
<?php
// connexion.php se connecte à la base.
$ora_conn = oci_connect("biblio","admin");
?>
<?php
// Se déconnecter de la base
oci_close($ora_conn);
?>
include ("connexion.php");
echo "Liste des livres";
$query = "SELECT code_livre,titre,themes from livre";
include("select.php");
// 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]["CODE_LIVRE"]; // code_livre
echo $res[1]["TITRE"]; // titre
echo $res[1]["THEMES"]; //themes
// Attention, il faut bien mettre les noms de colonnes en MAJUSCULE
// et entre " et "
// Traitement...
echo "<br />";
}
}
include ("deconnexion.php");
?>
et ça c'est le fichier select.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);
?>
et ça c'est les deux fichiers connexion.php et deconnexion.php
<?php
// connexion.php se connecte à la base.
$ora_conn = oci_connect("biblio","admin");
?>
<?php
// Se déconnecter de la base
oci_close($ora_conn);
?>
le faite qu'il t'ai retourner
Notice: Undefined variable: results in C:\wamp\www\essai.php on line 11
signifie que ta requete n'a rien retourner donc oui ta table est vide pour cette requete, verifie la en la testant drirectement dans oracle.
apres :
rajoute cette ligne
ps : quand tu affiche du code n'oublie pas les balise code, ca permet de mieu le lire ;)
Cordialement
dragondark de lonlindil
Notice: Undefined variable: results in C:\wamp\www\essai.php on line 11
signifie que ta requete n'a rien retourner donc oui ta table est vide pour cette requete, verifie la en la testant drirectement dans oracle.
apres :
rajoute cette ligne
print_r($ora_cur);et dis nous si ca t'affiche quelque chose
ps : quand tu affiche du code n'oublie pas les balise code, ca permet de mieu le lire ;)
<? // 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); //affiche les entree dans $ora_cur print_r($ora_cur); 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); ?>
Cordialement
dragondark de lonlindil
alors il faut savoir qu'une requete avec oracle n'equivaux pas avec une requete avec mysql
soit
regarde ce site ;)
http://www.asp-php.net/tutorial/asp-php/php_et_oracle.php
Cordialement
Dragondark de lonlindil
soit
regarde ce site ;)
http://www.asp-php.net/tutorial/asp-php/php_et_oracle.php
Cordialement
Dragondark de lonlindil
merci pour le site !!!!!
mais il y a un point que je ne comprends pas la
pour se connecter a la base de donnée
j'utilisais la commande oci_connect()
alors que la je trouves la commande ora_logon()
c'est quoi la différence entre ces deux fonctions ? et la quel est compatible la version d'oracle que j utilise
en fete j'utilise la version oracle 10g
mais il y a un point que je ne comprends pas la
pour se connecter a la base de donnée
j'utilisais la commande oci_connect()
alors que la je trouves la commande ora_logon()
c'est quoi la différence entre ces deux fonctions ? et la quel est compatible la version d'oracle que j utilise
en fete j'utilise la version oracle 10g
d'apres ce que j'ai lut, ora_logon est pour oracle 7 et anterieur
et oci_logon pour les version ulterieur
oci_connect() je ne sais pas
apres je ne peux pas te dire, je n'utilise pas oracle, que je ne trouve pas des plus accessible personnelement ^^'.
je te conseil de tester et de voir laquel il accepte
Cordialement
Dragondark de lonlindil
et oci_logon pour les version ulterieur
oci_connect() je ne sais pas
apres je ne peux pas te dire, je n'utilise pas oracle, que je ne trouve pas des plus accessible personnelement ^^'.
je te conseil de tester et de voir laquel il accepte
Cordialement
Dragondark de lonlindil
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
remplace i
par
meme le count($results) deviens inutile dans ce cas la car si $result n'existe pas (donc rien dedans) isset($results) retournera false
Cordialement
Dragondark de lonlindil
f (count($results)) // Si y'a des résultat
par
if (isset($results)&&count($results)) // Si y'a des résultat
meme le count($results) deviens inutile dans ce cas la car si $result n'existe pas (donc rien dedans) isset($results) retournera false
Cordialement
Dragondark de lonlindil
le faite que cela ne te retourne rien signifie que ta requete ne fonctionne pas dans ton code,
donc l'erreur se situe avant le print_r
essaye de rajouter
print $query
en debut de fichier
Cordialement
Dragondark de lonlindil
donc l'erreur se situe avant le print_r
essaye de rajouter
print $query
en debut de fichier
Cordialement
Dragondark de lonlindil
donc ce qui pose probleme est la :
test un
je ne connais aps oracle mais cherche de ce coter la ;) si il y a pas une erreur sur la connection et la requete?
peut etre que tu a inverser les parametre? :o
------------------------------------------------------------------------------------------------------------------------------
essaye un truc comme ca
Cordialement
Dragondark de lonlindil
--
LE POUVOIR EST NOTRE GLOIRE
LE CŒUR NOTRE HONNEUR
$ora_cur = ora_do($ora_conn, $query);
test un
print_r(ora_do($ora_conn, $query));//ca devrais rien retourner de plus
je ne connais aps oracle mais cherche de ce coter la ;) si il y a pas une erreur sur la connection et la requete?
peut etre que tu a inverser les parametre? :o
------------------------------------------------------------------------------------------------------------------------------
$connect = ocilogon("login","mdp","chaine_hote"); //Connexion à la base $stmt = ociparse($connect,$query); //On parse la requête à effectuer sans oublier de lui passer la chaine de connexion en paramêtre ociexecute($stmt,OCI_DEFAULT); //On execute la requête en lui passant l'option OCI_DEFAULT echo "Début----<br>\n\n"; while (ocifetch($stmt)){ //On parcourt les résultats echo ociresult($stmt,1); //On récupère le premier champ de la ma_table echo ociresult($stmt,2); //On récupère le deuxième champ de la ma_table } echo "<br>----fin\n\n"; ocilogoff($connect); //On se déconnecte du serveur
essaye un truc comme ca
Cordialement
Dragondark de lonlindil
--
LE POUVOIR EST NOTRE GLOIRE
LE CŒUR NOTRE HONNEUR
merci pour ton aide Dragondrak
je suis parvenu ,grasse a toi,a faire les corrections nécessaires pour que le code fonctionne :
voila un code valide :
mais peux tu me dire pourquoi le premier code ne fonctionne pas stp ?!
tu m as dit que la fonction :
n a pas été lancer
pourquoi ?
et comment tu as su que c'est cette fonction qui cause problème dans le code php ?
merci
je suis parvenu ,grasse a toi,a faire les corrections nécessaires pour que le code fonctionne :
voila un code valide :
<?php /* oci_fetch_all exemple mbritton at verinet dot com (990624) */ $conn = oci_connect("biblio", "codee"); $stmt = oci_parse($conn, "select code_livre,titre,themes from livre"); oci_execute($stmt); $nrows = oci_fetch_all($stmt, $results); if ($nrows > 0) { echo "<table border=\"1\">\n"; echo "<tr>\n"; foreach ($results as $key => $val) { echo "<th>$key</th>\n"; } echo "</tr>\n"; for ($i = 0; $i < $nrows; $i++) { echo "<tr>\n"; foreach ($results as $data) { echo "<td>$data[$i]</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; } else { echo "Pas de ligne<br />\n"; } echo "$nrows Lignes lues<br />\n"; oci_free_statement($stmt); oci_close($conn); ?>
mais peux tu me dire pourquoi le premier code ne fonctionne pas stp ?!
tu m as dit que la fonction :
$ora_cur = ora_do($ora_conn, $query);
n a pas été lancer
pourquoi ?
et comment tu as su que c'est cette fonction qui cause problème dans le code php ?
merci
je ne pourais pas te dire :s, la comme ca je sais pas, peut etre une incompatibilité?
je ne connais pas assez oracle pour te dire
Cordialement
Dragondark de lonlindil
je ne connais pas assez oracle pour te dire
Cordialement
Dragondark de lonlindil
Bonjour , je voudrais aussi recuperer un base ORACLE en php , mais j'ai un probleme , c'est que quand je veut faire juste un test pour accedez a ma base ORACLE en utilisant la fonction "oci_connect" il me dit qu'elle n'est pas definit .
Donc je sais pas s'il y avait des manip anterieur a effectuer :/
un petit coup de main s'il vous plait ?
Donc je sais pas s'il y avait des manip anterieur a effectuer :/
un petit coup de main s'il vous plait ?