Listes liées+ Base de donéees
bbk974
-
bbk974 -
bbk974 -
Bonjour, j'ai un problème pour appelé une requêtre faite par un utilisateur grâce à 2 listes liées. Une requête s'effectue sur une procédure d'un processus.Donc cela fait 3 tables (requests,processes et procedures)
J'aimerai pouvoir choisir un processus (parmis les processus de la table requests) dans une première liste puis une procédure (parmis les procédures de la table requests) liée à la première sélection.
J'arrive à créer la première liste des processus mais la seconde qui est vide...
Peut-être que cela se joue sur les data[0]... Voici d'abord ma table REQUESTS ou sont répertoriés l'identifiant de la procédure et du processus liée à la requeste:
***Table REQUESTS***
idrequest(identifiant)-page-chapter-paragraph-wording-day-month-year-iduser-idprocess-idprocedure
VOici le code:
CDLT
BBK974
J'aimerai pouvoir choisir un processus (parmis les processus de la table requests) dans une première liste puis une procédure (parmis les procédures de la table requests) liée à la première sélection.
J'arrive à créer la première liste des processus mais la seconde qui est vide...
Peut-être que cela se joue sur les data[0]... Voici d'abord ma table REQUESTS ou sont répertoriés l'identifiant de la procédure et du processus liée à la requeste:
***Table REQUESTS***
idrequest(identifiant)-page-chapter-paragraph-wording-day-month-year-iduser-idprocess-idprocedure
VOici le code:
<?php
include "modules/adodb/adodb.inc.php";
include "config/config.php";
// Connexion a la base de donnees
$db = NewADOConnection("oci8");
$cstr = "(DESCRIPTION=(ADDRESS=(PROTOCOL=$PROTOCOL)(HOST=$HOST)(PORT=$PORT))(CONNECT_DATA=(SID=$SID)))";
$db->Connect($cstr, $USER, $PWD);
$req = "select distinct processes.heading from processes, requests where requests.idprocess=processes.idprocess order by processes.heading ASC ";
$res=$db->Execute($req);
?>
<table>
<td>
<tr>
<td><label for="pros2">Veuillez sélectionner le <font COLOR="#39C0F"><em>processus</em></font> concerné :</label></td>
<td><select name="pros2" id="id_pros2" onChange="submit()">
<option>-- Choisissez --</option>
<?php
while ($data=$res->FetchRow()){
?>
<option value="<?php echo $data[0]?>" <?php if($_POST['pros2']==$data[0]){echo "selected";} ?>><?php echo $data[0]?></option>
<?php
}
?>
</select>
</td>
</tr>
</td>
//***Jusqu'ici c'est ok***
<br>
<br>
<?php
if(isset($_POST['pros2']) && $_POST['pros2']!="")
{
$req = "select procedures.heading from procedures, requests where requests.idprocess='".$_POST['pros2']."' AND procedures.idprocedure=requests.idprocedure order by requests.idprocedure ASC" ;
$res=$db->Execute($req);
?>
<tr>
<td><label>Veuillez sélectionner la <font COLOR="#39C0F"><em>requête</em></font> concernée :</label></td>
<td><select name="req1" id="id_req1">
<option>-- Choisissez --</option>
<?php
while ($data=$res->FetchRow()){
?>
<option value="<?php echo $data[0]?>" ><?php echo $data[1]?></option>
<?php
}
?>
</select>
</td>
</tr>
<?php
}
?>
CDLT
BBK974
A voir également:
- Listes liées+ Base de donéees
- Base de registre - Guide
- Formules mathématiques de base - Télécharger - Études & Formations
- Formules excel de base - Guide
- Gigaset ne reconnait plus sa base - Forum telephonie fixe
- Gigaset pas de base - Forum telephonie fixe
Regarde tes requêtes : dans la première, tu sélectionnes processes.headings, que tu places aussi bien en VALUE qu'en libellé de tes <option>.
Par contre, dans la deuxième, tu cherches à le comparer avec le idProcess !
Bien sûr, tes headings sont différents de tes idProcesses...
A mon avis, dans la première requête, tu devrais sélectionner les headings ET les idProcess, utiliser le idProcess dans le champ VALUE, et le heading comme libellé de l'<option>.
Ce qui donnerait :
// 1ère requête
$req = "select distinct processes.heading, processes.idprocess from processes, requests where requests.idprocess=processes.idprocess order by processes.heading ASC ";
// Utilisation
[...]
<option value="<?php echo $data[1]?>" <?php if($_POST['pros2']==$data[1]){echo "selected";} ?>><?php echo $data[0]?></option>
Qu'en penses-tu ?
Xavier
(PS : ne soit pas si impatient, on est en Août, tout le monde n'est pas forcément présent pour pouvoir répondre dans les deux heures !)
Sinon avec ton code, la première liste est nourrie mais la deuxième est vide (malgré qu'elle puisse s'ouvrir comme si elle prenait en compte les infos...qui restent invisibles)
Je pense que ma deuxième requete ne doit pas être juste...
Par exemple, juste après ta deuxième requête, place echo $req; et regarde ce qui s'affiche...
L'étape est suivante d'obtenir un tableau d'information regroupant un ensemble de données.
**Ce qui est fait:
-1ere liste des processus
-2eme liste des procedures
-quand on sélectionne une procédure, il y aura toutes les demandes faites sur la procédure sélectionnée.
**Ce que je voudrais faire, c'est:
Pouvoir grâce à un bouton radio et un bouton submit, sélectionner une demande et la supprimer....
....
Ce qui me donne le tableau avec les demandes liées à une procédure:
Le bouton qui va acec:
Et enfin la partie qui permet de lier ces actions:
if (isset($_POST["choice"]) && ($_POST["delete"]) ) { $choice=$_POST["choice"]; $db->Execute("DELETE FROM procedures WHERE idprocedure=$choice" ); }Mais ca ne marche pas.....Je sélectionne puis j'appuie sur supprimer mais rien
CDLT
bbk974