PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#26 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

chaque projet a un WP1, WP2 etc.

mais chaque projet n'a qu'un seul wp1 etc.

#27 Re : Forum Général PHP » pseudo-frame et url » 07-12-2013 15:30:08

ca j'en étais quasi sur!
je vais regarder votre lien.

merci Jc

#28 Forum Général PHP » pseudo-frame et url » 07-12-2013 15:30:08

Darkangel
Réponses : 5

Bonjour à toutes et à tous,

juste une question basique concernant l'utilisation des peudos-frames.
Au lieu de voir afficher dans l'url des choses comme : index.php?menu=blablabla&corps=blablabla

comment puis-je procéder afin de ne voir apparaître que index.php??


il s'agit ici d'url rewrting mais je ne comprends pas comment mettre en place dans mon htacess les rewritings process
j'ai essayé ceci:

RewriteRule ([^.]+).php$ /index.php

mais du coup ça ne m'affiche même pas mes pages

#29 Re : Forum Général PHP » probleme avec cookies et value dans un form » 06-12-2013 12:10:03

En fait j'ai essayé tout simplement en prenant en compte ta question.
j'ai mis un trim en fin de fonction de decrypt et ça fonctionne....

mais faudrait m'expliquer quand même pourquoi dans le value du code source cela fonctionnait avant mais pas dans le champs value de la page html affichée!!

#30 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonjour Jc,

Merci pour votre retour, vos explications et votre script corrigé.
je ne comprends toutefois pas votre commentaire: Il n'y a donc pas de dépendance fonctionnelle (DF) entre un wp_nb et un objectif.
si car un wp_nb peut avoir plusieurs objectifs et c'est même souvent le cas.

j'ai testé votre script et cela affiche bien les objectifs du WP1 du projet
mais pas les autres... normal car l'array généré quand je fais count ne donne qu'1 alors que dans le projet testé j'en est 7

 $query = $pdo->prepare($sql);
$query->execute();
 if($wp = $query->fetchAll()){ return $wp;}
 

et

$wp = $Projet->wp_projet_objectifs($acronyme);
$result = count($wp);
echo 'total '. $result;

#31 Re : Forum Général PHP » probleme avec cookies et value dans un form » 06-12-2013 12:10:03

Bonjour Jc

je vais m'expliquer un peu mieux car je n'ai pas du être assez clair alors et m'en excuse.

$_COOKIE['EPMILog'] contient le login crypté de l'utilisateur

je fais donc un
decrypt($_COOKIE['EPMILog']) afin de le récupérer en clair

le trimmed n'est pas appliqué dans le decrypt j'ai juste tenté de le rajoute en sortie du fait de mon problème
mon input fait bien parti d'un formulaire en method Post mais il n'a pas à etre soumis car je veux jute faire afficher le login dans le champ login.

en gros je veux que
<?php if(isset($_COOKIE['EPMILog'])){echo ' value="'.decrypt($_COOKIE['EPMILog']).'"';}?>/>

mais c'est là d'ou vient le soucis
car en faisant cela dans la source de la page tout va bien mais sur le champ value ca rajoute des ? sur fond noir

#32 Re : Forum Général PHP » probleme avec cookies et value dans un form » 06-12-2013 12:10:03

Bonsoir,

Je ne passe pas les infos cookies par URL.

J'ai juste fais un setcookie dans une page et dans l'autre je veux juste en afficher la valeur.

Le problème dans mon cas est bizarre car la valeur dans la source de la page est correct. C'est dans l'affichage de mon value que cela bug!

#33 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonsoir,

La colonne wp_nb n'est pas du tout un id, il s'agit d'une colonne indiquant le numéro du work-package d'un projet. Celui ci ne dépasse jamais deux chiffres.

Cordialement

#34 Forum Général PHP » probleme avec cookies et value dans un form » 06-12-2013 12:10:03

Darkangel
Réponses : 5

Bonjour a tous,

afin de permettre une fonction 'remember-me' dans un formulaire j'ai utilisé un setcookie.
Afin de le protégé j'en crypte le contenu.

le probleme est le suivant:
si j'affiche cela dans ma page, ce script fonctionne nickel

<?php if(isset($_COOKIE['EPMILog'])) {$decrypt_cook = decrypt($_COOKIE['EPMILog']);
echo $decrypt_cook;
} ?>

néanmoins si je tente d'afficher cela en value de mon champ dans mon formulaire cela ajoute des ? sur fond noir
je ne vois pourtant pas d'où cela vient:

<input type="text" name="username"<?php if(isset($_COOKIE['EPMILog'])){echo ' value="'.$trimmed.'"';}?>/>

j'ai même essayer d'ajouter:
$trimmed = ltrim($decrypt_cook, "");
mais cela ne change rien

quelqu'un pourrait il m'expliquer d'où cela vient??
merci par avance

#35 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonjour JC,

Voici le show create table demandé sur les tables concernées:


CREATE TABLE IF NOT EXISTS `infos_gen_projets` (
  `id_Projet` int(11) NOT NULL AUTO_INCREMENT,
  `IG_acronyme` varchar(50) NOT NULL,
  `IG_titre` varchar(100) NOT NULL,
  `IG_ligne` varchar(150) NOT NULL,
  `IG_appel` varchar(32) NOT NULL,
  `IG_nbcontrat` mediumint(9) unsigned NOT NULL,
  `IG_date-début` date NOT NULL,
  `IG_durée` tinyint(2) unsigned NOT NULL,
  `IG_prolongation` tinyint(2) unsigned DEFAULT NULL,
  `IG_date-fin` date NOT NULL,
  `IG_abstract` text NOT NULL,
  `id_keywords` text NOT NULL,
  `IG_logo` text,
  `IG_contribce_requested` decimal(10,2) NOT NULL,
  PRIMARY KEY (`id_Projet`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

-- --------------------------------------------------------

--
-- Structure de la table `projet_wp`
--

CREATE TABLE IF NOT EXISTS `projet_wp` (
  `id_Projet` int(11) NOT NULL,
  `id_wp` int(11) NOT NULL AUTO_INCREMENT,
  `WP_nb` tinyint(2) NOT NULL,
  `WP_type` tinytext NOT NULL,
  `WP_titre` text NOT NULL,
  `WP_start` tinyint(2) NOT NULL,
  `WP_end` tinyint(2) NOT NULL,
  `WP_leader` tinyint(2) NOT NULL,
  PRIMARY KEY (`id_wp`),
  KEY `id_Projet` (`id_Projet`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=15 ;

-- --------------------------------------------------------

--
-- Structure de la table `projet_wp_objectifs`
--

CREATE TABLE IF NOT EXISTS `projet_wp_objectifs` (
  `id_object` int(11) NOT NULL AUTO_INCREMENT,
  `id_wp` int(11) NOT NULL,
  `WP_objectif` text NOT NULL,
  PRIMARY KEY (`id_object`),
  KEY `wp_id` (`id_wp`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 AUTO_INCREMENT=46 ;

--
-- Contraintes pour les tables exportées
--

--
-- Contraintes pour la table `projet_wp`
--
ALTER TABLE `projet_wp`
  ADD CONSTRAINT `projet_wp_ibfk_1` FOREIGN KEY (`id_Projet`) REFERENCES `infos_gen_projets` (`id_Projet`) ON DELETE CASCADE ON UPDATE CASCADE;

--
-- Contraintes pour la table `projet_wp_objectifs`
--
ALTER TABLE `projet_wp_objectifs`
  ADD CONSTRAINT `projet_wp_objectifs_ibfk_1` FOREIGN KEY (`id_wp`) REFERENCES `projet_wp` (`id_wp`) ON DELETE CASCADE ON UPDATE CASCADE;

merci par avance pour ton aide

#36 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Merci JC pour vos solutions qui ont fonctionées.
Après relecture et considération de vos retours, cela parait logique que cela ne pouvait fonctionner avant directement.

Pour aller jusqu'au bout, je souhaite désormais pouvoir bénéficier de votre savoir-faire pour éviter d’être

Jc a écrit :

"contre-productif au possible"

La fonction que j'avais développer initialement était:


public function wp_projet_objectifs($Acronyme)
{
 $pdo= DbConnexion::getInstance();  
 
 $sql = '
 SELECT pwp.WP_nb, pwp.WP_type, pwp.WP_titre, pwp.WP_start, pwp.WP_end, pwp.WP_leader
 FROM projet_wp AS pwp
 INNER JOIN infos_gen_projets AS igp
 INNER JOIN projet_wp_objectifs AS pwo
 WHERE igp.IG_acronyme="'.$Acronyme.'"
 AND igp.id_Projet = pwp.id_Projet
 AND pwo.id_wp = pwp.id_wp
 ';

 $query = $pdo->prepare($sql);
 $query->execute();
if($wp = $query->fetchAll()){ return $wp;}


$query->closeCursor();  
 }
 

néanmoins celle-ci ne récupère que les premières informations et non les objectifs qui peuvent être plusieurs par WP.
je ne sais pas comment ajouter à cette requête le fait d'aller chercher les plusieurs objectifs qui sont dans une autre table (via je pense une boucle mais dans une requete...)

C'est donc pour cela que j'ai créer une deuxime fonction de récupération des objectifs:

 

  public function wp_objectif($acronyme,$wpnb)
  {
 $pdo= DbConnexion::getInstance();

 $sql = '
  SELECT WP_objectif
  FROM infos_gen_projets AS igp
  LEFT JOIN projet_wp AS pwp
  ON pwp.id_Projet = igp.id_Projet
  INNER JOIN projet_wp_objectifs AS pwo
 
  WHERE igp.IG_acronyme = "'.$acronyme.'"
  AND pwp.WP_nb ="'.$wpnb.'"
  AND pwo.id_wp = pwp.id_wp
   ';
$query = $pdo->prepare($sql);
$query->execute();
if($wp_obj = $query->fetchAll()){ return $wp_obj;}
$query->closeCursor();  
  }

Merci par avance de bien vouloir m'expliquer comment pouvoir procéder afin de combiner ces deux fonctions....

#37 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Merci a vous pour vos explications.

Je tenterai de modifier le code avec vos recommendations afin de tester.
J'ai procédé comme ceci car je n'arrivais pas à créer la fonction tout combiné en une dans ma classe...

#38 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonjour le problème n'est pas aussi simple car si je fais cela les lignes sont décalées:
En effet la première partie des lignes avec $i ne colle plus avec $j

#39 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Re-bonjour,

Après avoir cogité et testé différentes choses j'ai réglé le soucis, mais j'aimerais comprendre le pourquoi de ce problème.

Afin que cela fonctionne (code ci-dessous), j'ai du bidouiller les $i $j etc.
exemple j'ai du mettre: $j = $i-1 pour reprendre $i plus loin... bizarre quand même...


$wp = $Projet->wp_projet_acronyme($acronyme);
$result = count($wp);
for ($i=1; $i<=$result; $i++) {
$j = $i-1;
 echo '<tr>
 <th>'.$wp[$j]["WP_nb"].'</th>
 <td>'.$wp[$j]["WP_type"].'</td>
 <td>'.$wp[$j]["WP_titre"].'</td>
 <td>'.$wp[$j]["WP_start"].'</td>
 <td>'.$wp[$j]["WP_end"].'</td>
 <td>';

$wp_objectifs = $Projet->wp_objectif($acronyme, $i);
$total_nb = count ($wp_objectifs);
for ($d = 0; $d < $total_nb; $d++) {
 echo '- '.$wp_objectifs[$d]["WP_objectif"].'<br />';
}

sachant qu'en terme de formule j'ai


  public function wp_projet_acronyme($Acronyme)
  {
 $pdo= DbConnexion::getInstance();  
 
  $sql = '
  SELECT pwp.WP_nb, pwp.WP_type, pwp.WP_titre, pwp.WP_start, pwp.WP_end, pwp.WP_leader
  FROM projet_wp AS pwp
  INNER JOIN infos_gen_projets AS igp
  WHERE igp.IG_acronyme="'.$Acronyme.'"
  AND igp.id_Projet = pwp.id_Projet
 ';

  $query = $pdo->prepare($sql);
$query->execute();
if($wp = $query->fetchAll()){ return $wp;}
$query->closeCursor();  
}

et

  public function wp_objectif($acronyme,$wpnb)
  {
 $pdo= DbConnexion::getInstance();

 $sql = '
  SELECT WP_objectif
  FROM infos_gen_projets AS igp
  LEFT JOIN projet_wp AS pwp
  ON pwp.id_Projet = igp.id_Projet
  INNER JOIN projet_wp_objectifs AS pwo
 
  WHERE igp.IG_acronyme = "'.$acronyme.'"
  AND pwp.WP_nb ="'.$wpnb.'"
  AND pwo.id_wp = pwp.id_wp
   ';
//echo $sql.'<br />';
$query = $pdo->prepare($sql);
$query->execute();
if($wp_obj = $query->fetchAll()){ return $wp_obj;}
$query->closeCursor();  
  }
 


A noter tous mes id dans ma base commence à 1!
donc je n'explique pas le pourquoi....

si quelqu'un pouvait m'éclairer afin que je puisse comprendre, je l'en remercie par avance!

#40 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonjour Maljuna,

je n'arrivais à rien avec mon script précédent et la variable $a ne changeait rien.
j'ai donc revu intégralement ce script autrement mais ai de nouveau un problème assez basique.


$wp = $Projet->wp_projet_acronyme($acronyme);
$result = count($wp);
echo 'Il y a <u>'.$result.'</u> WP(s) dans ce projet<br /><br />';

echo '<table border="1">
  <caption> WP du projet '.$acronyme.' </CAPTION>
  <tr>
 <th> WP nb</th>
 <th> WP type </th>
 <th> WP titre </th>
 <th> WP start </th>
 <th> WP end </th>
 <th> WP objectif</th>
  </tr>';

 
for ($i=0; $i<$result; $i++) {
$wp_objectifs = $Projet->wp_objectif($acronyme, $i);
 echo ' <tr>
 <th>'.$wp[$i]["WP_nb"].'</th>
 <td>'.$wp[$i]["WP_type"].'</td>
 <td>'.$wp[$i]["WP_titre"].'</td>
 <td>'.$wp[$i]["WP_start"].'</td>
 <td>'.$wp[$i]["WP_end"].'</td>
 <td>';
 $total_nb = count ($wp_objectifs) ;
 for ($j = 0; $j < $total_nb; $j++) {
 echo '- '.$wp_objectifs[$j]["WP_objectif"].'<br />';
}
 echo' </td></tr> ';
 }
 echo '</table>';
 

Mon problème est désormais que mes objectifs sont décalés d'une ligne et que les derniers objectifs n'apparaisse donc pas.
j'ai beau tenter de changer les valeurs de $i ou $j mais cela ne fonctionne quand même pas...

une idée d'où pourrait provenir cette erreur?
merci par avance

#41 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Je ne trouve rien à a ce sujet.. sad

j'ai beau tester avec toutes les formules que je peux trouver rien ne fonctionne...

#42 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Bonjour Maljuna,

merci pour ce retour.
je vais donc regarder ce sytème de gestion que je ne connais pas, donc impossible de m'en souvenir smile
Aurais tu un lien pertinent à me conseiller? A défaut, je vais aller voir mon ami google smile

#43 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

RE-bonjour,

personne pour m'éclairer?
j'ai également essayer avec des arrays mais peut importe comment je m'y prend, cela ne fonctionne pas...
please help

#44 Re : Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

j'ai réussi à avancer un peu en bidouilllant
ceci étant dit :
1) cela ne doit pas etre un codage parfait
2) cela ne me permet pas de fusionner les lignes des 5 premières colonnes

En effet le nombre de ligne à fusionner depend du nombre d'objectifs...


 
 $a="";
 for ($i = 0; $i < $result; $i++) {
  echo '<TR>';
 if ($wp[$i]["WP_nb"] != $a)
 {
echo '
 <TH>'.$wp[$i]["WP_nb"].'</TH>
 <TD>'.$wp[$i]["WP_type"].'</TD>
 <TD>'.$wp[$i]["WP_titre"].'</TD>
 <TD>'.$wp[$i]["WP_start"].'</TD>
 <TD>'.$wp[$i]["WP_end"].'</TD>';
 }
 else
 {
 echo '
 <TD colspan="5">-</TD>';
 }
 echo '<TD>'.$wp[$i]["WP_objectif"].'</TD>
 </TR> ';
  $a = $wp[$i]["WP_nb"];
 }
 

#45 Forum Général PHP » question sur l'utilisation du for ($i = 0; $i < $result; $i++) » 10-01-2014 12:01:31

Darkangel
Réponses : 45

Bonjour à tous,

j'ai le code suivant:


for ($i = 0; $i < $result; $i++) {
 echo ' <TR>
 <TH>'.$wp[$i]["WP_nb"].'</TH>
 <TD>'.$wp[$i]["WP_type"].'</TD>
 <TD>'.$wp[$i]["WP_titre"].'</TD>
 <TD>'.$wp[$i]["WP_start"].'</TD>
 <TD>'.$wp[$i]["WP_end"].'</TD>
  <TD>'.$wp[$i]["WP_objectif"].'</TD>
  </TR> ';
 }
 

Tout fonctionne bien et cela me génère mes résultats sous forme de tableau.
cependant comme j'ai plusieurs WP_objectifs,  les premières infos de la ligne sont parfois similaires sur plusieurs lignes.

comment puis je procéder afin que ces premiers champs puissent être fusionnés??

#46 Forum Général PHP » question d'optimisation » 21-11-2013 11:17:51

Darkangel
Réponses : 0

Bonjour à toutes et tous,

je reviens vers vous afin de savoir si j'ai un moyen d'optimiser ce code:

j'ai une fonction


if($membres_projet = $query->fetchAll()){ return $membres_projet;}
 

puis dans ma page de résultat je suis obligé de faire ca:

$result = count($membres) - 1;
 for ($i = 0; $i <= $result; $i++) {
 echo "Acronyme: ".$membres[$i]["ETAB_acronyme"].'<br />';
 echo "Nom: ".$membres[$i]["ETAB_nom"].'<br />';
 echo "PIC: ".$membres[$i]["ETAB_pic"].'<br /><br />';
 }
 

y a t'il une façon plus optimal de procéder selon vous?
j'essaye de progresser en POO...

merci par avance pour vos avis.

#47 Re : Forum Général PHP » requete compliquée !!! » 21-11-2013 08:47:37

Bonjour JC,

merci pour ton retour.
j'ai réussi à le faire fonctionner en me basant sur ton code!

#48 Forum Général PHP » requete compliquée !!! » 21-11-2013 08:47:37

Darkangel
Réponses : 2

Bonjour à toutes et tous,

j'ai une requête assez compliquée à à mettre en place, enfin compliqué pour moi smile
Celle-ci fera intervenir 3 tables distinctes.

je souhaiterais pouvoir au final identifier le ETAB_nom et ETAB_acronyme depuis la table "etab" de l’établissement coordinateur d'un projet.
cependant les infos sont segmentées en plusieurs tables

Etab / contient les données des établissements enregistrés
infos_gen_projets / contient les données relatives au projet dont id_Projet et IG_acronyme
jonc_etab_projets / contient la liste des établissements participant a tel ou tel projet et indique le statut si coordinateur ou partenaire.

je schématise pour éclaircir un peu le tout:

     ETAB               |  infos_gen_projets        | jonc_etab_projets
---------------------------------------------------------------------------------------------
id_Etab                 | id_Projet                     | id_Etab
ETAB_nom             | IG_Acronyme               | id_Projet
ETAB_acronyme     |                                  |JONC_EP_Statut


exemple dans jonc_etab_projets
id_Etab = 3
id_Projet = 1
JONC_EP_statut =  coord

je voudrais donc trouver pour cet id_etab (ici 3),  l'ETAB_nom et l' ETAB_acronyme (de la table ETAB) sachant que je pars au début avec IG_acronyme (de la table infos_gen_projets...

$Projet->identif_coord("TEST");
pour finir cet exemple


infos_gen_projet
id_Projet = 1
IG_Acronyme = TEST


En espérant avoir été assez clair!!
merci à vous par avance

#49 Re : Forum Général PHP » fonctions avec inner join dont une partie génère plusieurs résultats » 20-11-2013 15:57:56

Bonjour Maljuna,

merci pour ta réponse.
Je suis d'accord avec toi sur ta remarque.
Cependant, pour toutes les premières infos cela correspond parfaitement. Ça coince juste pour la table representatives.

Si je comprends bien, même si pour toutes les autres tables cela convient, il faut faire une boucle ?
tu peux m'éclairer un peu plus sur une telle mise en place?
Merci par avance

#50 Forum Général PHP » fonctions avec inner join dont une partie génère plusieurs résultats » 20-11-2013 15:57:56

Darkangel
Réponses : 2

Bonjours à toutes et tous,

je vous contact car j'ai besoin d'une assistance concernant une fonction sur laquelle je me casse la tête.
en effet celle-ci fonctionne correctement mais je ne vois pas comment faire en sorte que cette même fonction puisse m'afficher les différents résultats provenant de la table etab_representatives.

Pour le reste je n'ai aucun soucis car une seule ligne par table..


public function infos_etab_pic($Pic)
{
 $pdo= DbConnexion::getInstance();

$sql = '
SELECT *
FROM etab
INNER JOIN etab_finances ON etab.id_Etab = etab_finances.id_Etab
INNER JOIN etab_representatives ON etab.id_Etab = etab_representatives.id_Etab
WHERE ETAB_pic='.$Pic;

$query = $pdo->prepare($sql);
$query->execute();
 
if($etab_info = $query->fetch(PDO::FETCH_ASSOC)){ return $etab_info;  }

$query->closeCursor();  
}
 

En effet si je fais appel à cette fonction:


$infos = $Etab->infos_etab_pic("9924");
echo  $infos['REPR_prenom'];
 

mon echo ne fera apparaître et c'est logique que le premier résultat

Pourriez vous m'indiquez comment je peux procéder?
merci par avance

Pied de page des forums

Propulsé par FluxBB