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 17/12/2006, 21h30   #1
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
Par défaut Remplir une liste déroulante avec une table

Bonsoir,

je reviens vers vous car je n'ai guère avancé dans mon code

j'en suis ici
Code :
1
2
3
4
5
6
7
8
 
 
<select name="Nom"> 
 
<?php 
$query = "select nom from employes";
$stmt=OCIParse($db_conn,$query);
OCIExecute($stmt,OCI_DEFAULT);
cela m'affiche bien une liste déroulante mais vide!!!
Je n'arrive pas à comprendre la syntaxe de la boucle avec "while"

Pouvez vous m'indiquez la syntaxe?
merci
CYCLOPE91440 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 07h29   #2
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
Code :
1
2
3
4
while ($a=1)
{
echo 'cette boucle est sans fin, puisque nous pourrons toujours attribuer la valeur 1 à $a';
}
Code :
1
2
3
4
5
 
if (OCIExecute($stmt,OCI_DEFAULT))
{
echo 'Votre requête est bien effectuée';
}
OCIExecute() renvoie vrai, alors, avec while :
Code :
1
2
3
4
while ($b=OCIExecute($stmt,OCI_DEFAULT))
{
echo 'Tant que OCIExecute ne revoie pas faux, nous afficherons cette ligne';
}
C'est peut-être plus clair par l'exemple ?
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 09h34   #3
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
Bonjour et merci pour votre réponse mais je rencontre toujours un probleme de remplissage

voici le code mais je n'arrive pas à trouver mon erreur! De plus je trouve ma page HTML beaucoup plus lente. Ca doit etre normal


Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<select name="Nom"> 
<?php 
 
$username="pti";
$paswd="rugbys";
$dbstring="//localhost/XE";
$db_conn= ocilogon($username,$paswd,$dbstring);
 
$query = "select nom from employes";
$stmt=OCIParse($db_conn,$query);
OCIExecute($stmt,OCI_DEFAULT);  
if (OCIExecute($stmt,OCI_DEFAULT))
{
echo 'Votre requête est bien effectuée';
}
while ($b=OCIExecute($stmt,OCI_DEFAULT))
{
echo 'Tant que OCIExecute ne revoie pas faux, nous afficherons cette ligne';
}
?> 
</select>
CYCLOPE91440 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 11h17   #4
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
J'ai tenté d'expliquer simplement un usage de while, mais ce n'est pas applicable anisi.
Il faut au moins un objectif avant d'utiliser while, comme boucler dans un tableau de données récupérées de la base de données.
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 13h01   #5
Futur Membre du Club
 
Inscription : octobre 2005
Messages : 25
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 25
Points : 15
Points : 15
Envoyer un message via MSN à foussil
tu dois utiliser une balise <option>
Code :
1
2
3
4
5
 
  while(----)
  { 
    echo "<option> blabla </option>" ;
  }
foussil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2006, 19h49   #6
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
houla!
Dois je comprendre que les valeurs que je tente de récupérer avec mon $query
doivent être mise dans un tableau (array je crois).
Si je comprends bien mon code actuel ne sert pas à grand chose

Qu'est ce que je dois retirer ou ajouter?
CYCLOPE91440 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2006, 13h31   #7
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
on m'a donné ça sur le forum oracle mais ça ne marche pas malgrès les modifications nécessaire

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
 
 
  $conn = oci_connect("hr", "hr", "//localhost/XE");
  $stmt = "SELECT employee_id, last_name from employees order by last_name";
  $stid = oci_parse($conn, $stmt);
  oci_execute($stid);
  $num = oci_fetch_all($stid, $res);
 
  if ($num) {
    echo "<form method=\"POST\" action=\"{$_SERVER['PHP_SELF']}\">\n";
    echo "<select name=\"EmployeeName\">\n";
    for ($i = 0; $i < $num; $i++ ) {
      echo "<option value=\"{$res['EMPLOYEE_ID'][$i]}\">";
      echo htmlentities($res['LAST_NAME'][$i]);
      echo "</option>\n";
    }
    echo "<input type=\"submit\" value=\"OK\">\n";
    echo "</select></form>\n";
  }
CYCLOPE91440 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/12/2006, 18h44   #8
Inscrit
 
Avatar de is_null
 
Inscription : octobre 2006
Messages : 637
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 637
Points : 690
Points : 690
toujours pas de boucle sur les résultats obtenus par la requête sur le serveur oracle
__________________
Q: Dois-je haïr et cogner sur Microsoft ?
R: Non, vous n'êtes pas obligé. Non pas que Microsoft n'est pas écoeurant, mais il y avait une culture hacker bien avant Microsoft et il y en aura une bien après que Microsoft aura été de l'histoire ancienne. Toute énergie dépensée à haïr Microsoft serait mieux employée par vos compétences et votre passion. Écrivez du bon code, cela brisera suffisamment Microsoft sans polluer votre karma.
Comment devenir un hacker ? par Eric Steven Raymond
is_null est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2006, 12h58   #9
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
j'arrive à extraire un champs d'une table sous forme d'un tableau mais impossible d'intégrer les résultats dans une liste déroulante

voici mon code

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
 
<?php 
 
$db_conn = ocilogon( "pti", "rugbys" ,"//127.0.0.1/XE");
 
$cmdstr = "select NOM from employes order by NOM";
 
$parsed = ociparse($db_conn, $cmdstr);
ociexecute($parsed);
 
$nrows = ocifetchstatement($parsed, $results);
echo "<table border=1 cellspacing='0' width='50%'>\n\<tr>\n";
echo "<td><b>Nom</b></td>\n";
echo "<select name=nom>\n";
 
for ($i = 0; $i < $nrows; $i++ ) 
{
echo "<tr>\n";
//echo "<option value={$results['NOM'][$i]}>";
echo "<td>" .$results["NOM"][$i] ."</td>";
echo"</option>\n";
}
 
?>
pouvez vous m'aider à intégrer ce résultat dans une liste déroulante?

merci
CYCLOPE91440 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2006, 13h40   #10
Membre du Club
 
Avatar de pioule
 
Inscription : août 2003
Messages : 65
Détails du profil
Informations forums :
Inscription : août 2003
Messages : 65
Points : 69
Points : 69
Si ton code fonctionne en ce qui concerne l'affichage sous forme de tableau, alors
Code :
1
2
3
4
5
for ($i = 0; $i < $nrows; $i++ ) 
{
echo "<option value=\"".$results['NOM'][$i]."\">".$results['NOM'][$i] ."</option>";
 
}
devrait fonctionner ?
pioule est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/12/2006, 15h26   #11
Candidat au titre de Membre du Club
 
Inscription : décembre 2006
Messages : 76
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : décembre 2006
Messages : 76
Points : 12
Points : 12
yes ca marche

je te remercie ça va me permettre d'avancer

bonne fêtes
CYCLOPE91440 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 09h47.


 
 
 
 
Partenaires

Hébergement Web