payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
16 févr. 2009 à 15:18
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 2014
-
18 févr. 2009 à 10:13
Bonjour,
J'ai un petit probleme qui est peut etre simple mais je ne connais pas le methode.
Je suis en train de développer un intranet pour ma societé, en PHP, et j'aimerais qu'un SELECT récupère 2 colonnes de ma table PARAMETRES, la colonne "parametre" et la colonne "rang".
On séléctionne ces 2 valeurs pour permettre d'enregistrer les autres INPUT dans la ligne où il y a la valeur $parametre dans la colonne "parametre" et la valeur $rang dans la colonne "rang".
C'est facile à récupérer ces 2 infos dans le SELECT, mais le plus dur est de les renoyer. JE sais récuperer ces 2 valeurs mais en renvoyer qu'une seule.
<SELECT NAME="pararang_mod" ID="pararang_mod">
<?php
ConnexionBaseCARRI($connect);
$sql="select PARAMETRE,RANG from parametres ORDER BY RANG";
$res=odbc_exec($connect, $sql) or die($sql."
".odbc_error());
while (odbc_fetch_row($res))
{
$rang_mod = trim(odbc_result($res,"RANG"));
$parametre_mod = trim(odbc_result($res,"PARAMETRE"));
echo "<OPTION value='".$rang_mod."'>".$rang_mod." - ".$parametre_mod."</OPTION>";
}
DeconnexionBaseCARRI($connect);
?> </SELECT>
Comme vous pouvez le voir, je viens récuperer PARAMETER et RANG, mais dans mon OPTION du SELECT, la valeur est $rang_mod, alors que je voudrais avoir les 2 SI les 2 n'existent pas dans al base (les 2 parce que il peut avoir plusieurs meem parametres, plusieurs meme rangs, mais pas plusieurs même parametre ayant le meme rang. Peut etre ma méthode n'est pas bonne...
SVP aidez moi
Je vous en remercie.
Ju'
A voir également:
Renvoyer plusieurs valeurs a partir d'un select vers une BDD
codbooster
Messages postés23Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention17 avril 2009 16 févr. 2009 à 16:57
ben regarde la doc php sur cette fonction, faudra bidouiller c'est sur, mais je pense que c'est faisable en comptant combien il y a des caractère avec le "/" inclus et puis après tu commence ton substr() là jusqu'à la fin ...
codbooster
Messages postés23Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention17 avril 2009 16 févr. 2009 à 17:11
tu coupe le premier jusqu'au "/"que tu met dans une variable avec strrpos(), tu compte avec strlen() le nombre de caractère que contient cette variable, et cela te donne la valeur de départ de ta deuxième chaine, et tu peux ainsi utiliser substr pour récupérer la deuxième chaine ...
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 18 févr. 2009 à 10:07
Hello !
Je reviens sur ce topic pour poster ma réponse si jamais ça peut servir à quelqu'un....
Bopn bah j'ai trouvé mon probleme, j'ai renvoyé dans la value "$rang_mod.$parametre_mod"
Ensuite en haut de page(puisqu'avec le formulaire je me rappelle moi meme) j'affecte 2 variable pour reprendre la renvoi de la valeur du VALUE avec la méthode que tu m'as dite en premier, faire un substr
//CONNEXION A LA BASE
$sql="select PARAMETRE,RANG from parametres ORDER BY PARAMETRE, RANG";
$res=odbc_exec($connect, $sql) or die($sql."
".odbc_error());
while (odbc_fetch_row($res))
{
$rang_mod = trim(odbc_result($res,"RANG"));
$parametre_mod = trim(odbc_result($res,"PARAMETRE"));
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 16 févr. 2009 à 15:22
j'ajoute que tout mon fichier sera traité en fonction de ces 2 variables récupérées, dans chacune de me requete je dois avoir :
$sql " select ............ where PARAMETRE '".$parametre_mod."' and
RANG = '".$rang_mod."' ";
meme chose pour les commandes "update" et "delete".
Vous n’avez pas trouvé la réponse que vous recherchez ?
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 16 févr. 2009 à 16:06
Bonjour et merci de ta réponse.
Je me suis effectivement posé la question, mais à ce moment là, comment ça se passe pour la valeur renvoyée ?
Car si on laisse uniquement $rang_mod dasn le value, si par exemple $rang_mod = 2, le select renverra 2, mais pour plusieurs valeur je ne sais pas comment je peux gérer ça.
codbooster
Messages postés23Date d'inscriptionjeudi 4 octobre 2007StatutMembreDernière intervention17 avril 2009 16 févr. 2009 à 16:37
Autrement ce que tu peux essayer de faire c'est dans le value="
$rang_mod.
"/"$parametre_mod
"
, tu vois enfait séparer tes deux expressions, pour les découper après dans ton traitements ...
puis de découpé la chaine que tu récupère, première partie jusqu'au "/" et deuxième après ...
pour cela il y a les fonction <tt style="font-size: 9pt;">strrpos() et substr().</tt>
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 16 févr. 2009 à 16:51
Oui mais pour le substr() il faut connaitre à l'avance combien de caractères il y aura dans la variable. dans la 1ère c'est facile c'est soit 1 chiffres soti 2 chiffres... la 2e c'est une chaine de caractere en nvarchar(80) ...
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 16 févr. 2009 à 17:01
bah je ne vois pas trop comment faire sachant que je ne sais pas si pour la premiere variabel il y a 1 ou 2 chiffres. (90% du temps 1 seul, mais il suffit de tomber sur les 10% qu'il reste.... arf).
Bah en tout cas merci d'avoir pris un peu de temps pour moi.
Je tiens au courant ce post si j'ai trouvé, si je n'ai pas trouvé d'ici là j'espere que quelqu'un pourra me donner un good idea pour pouvoir continuer.
payetonju
Messages postés436Date d'inscriptionmercredi 26 septembre 2007StatutMembreDernière intervention 2 juillet 20144 18 févr. 2009 à 10:13
un petit commentaire vite fait : comme je l'ai dit precedemment je ne savais aps combien de caracteres precisément comportait $rang_mod, sachant que je savis tres bien que le maximum de caractère allait être 3, J'ai mis un sprintf sur cette variabel avec l'attribut %03d; ce qui signifie que j'aurais toujorus 3 chifres, et le premier chiffres (ou les premiers) est un zéro. "%03d", $rang_mod