IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Expertise pour mon script php


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut Expertise pour mon script php
    Salut à tous, j'ai un petit soucis avec ce script, est-ce quelqu'un peu m'aider?
    Je développe mes pages en php avec un environement Eclipse et ma base de données est en MY_SQL.
    La première partie du script fonctionne très bien, j'ai un message d'erreur sur le "foreach".

    Warning: Invalid argument supplied for foreach()
    Je pense que la stratégie que j'ai suivie n'est pas la bonne, ce que je voulais faire c'est qu'à chaque fois qu'une de mes check-box est cochée j'exécute mon insert.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    <form method= post action='rfi1.php'>
    <h1>Quels sont les éléments que je souhaite intégrer?</h1>
     <?php 
     //requête de sélection des champs d'une RFI
    $requete ="SELECT `NOMCH` FROM CHAMPS INNER JOIN COMPOSER ON CHAMPS.CODECH = COMPOSER.CODECH WHERE COMPOSER.CODET = 'RFI'";
     //éxécution de la requête
    $IdExec = MySql_query ($requete);
     //affichage du résultat
    $nbligne = MySQL_Num_Rows ($IdExec);
     
    echo ("<br>");
     
    for ($i=1; $i<=$nbligne; $i++)
    {
       $nuplet = MySQL_fetch_array ($IdExec);
    	 $Code = $nuplet ["CODECH"];
    	 $Nom = $nuplet ["NOMCH"];
     
    echo  ("<ul>");  
      echo ("<li>");
      echo ("$Nom	");
     echo("<input type='checkbox' name='champ[]' value='.$nuplet ['id'].'>"); 
      echo ("</li>");
      echo ("</ul>");
    }
    echo ("<center>");
    echo ("<input type='submit' value='Valider'/>");
     
    foreach ($champ as $valeur)
    {
    $sql="INSERT INTO`CONTENIR` (`CODED` ,`CODECH` ,`CONTENU` )VALUES ('Temp', '$Code', '')";
    $req= mysql_query($sql);
    }
    ?> 
     
     </form>

    Voilà, j'espère que j'ai été assez claire pour que vous puissiez me répondre...
    Merci d'avance

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Bonjour

    Un foreach fonctionne sur un array ou un objet. Comment est défini $champ ?
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 20
    Par défaut
    Effectivement à la re-lecture mon $champ me parait un peu impromptu....
    en fiat c'est un bout de code que j'avais trouvé sur internet et que j'avais essayé d'adapter....

    Comprends-tu ce que j'essaye de faire?
    Est-ce que tu croix que tu peux m'aider?

    Voici une autre tentative qui me parait un peu plus cohérente mais qui ne marche pas non plus...

    PAGE 1
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    <form method= post action='rfi_slct_chmp.php'>
     
     <h1>Quels sont les éléments que je souhaite intégrer?</h1>
     <?php 
     //requête de sélection des champs d'une RFI
    $requete ="SELECT `NOMCH` FROM CHAMPS INNER JOIN COMPOSER ON CHAMPS.CODECH = COMPOSER.CODECH WHERE COMPOSER.CODET = 'RFI'";
     //éxécution de la requête
    $IdExec = MySql_query ($requete);
     //affichage du résultat
    $nbligne = MySQL_Num_Rows ($IdExec);
     
    echo ("<br>");
    for ($i=1; $i<=$nbligne; $i++)
    {
       $nuplet = MySQL_fetch_array ($IdExec);
    	 $code = $nuplet ["CODECH"];
    	 $nom = $nuplet ["NOMCH"];
     
    echo  ("<ul>");  
      echo ("<li>");
      echo ("$nom	");
     echo("<input type='checkbox' name='$case_a_cocher' value='$code'>"); 
      echo ("</li>");
      echo ("</ul>");
    }
     
     
     
     
     ?> 
     <input type=submit value="Modifier" align=right>
     </form>
    PAGE2
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
      <?php 
      //récupérer les codes des champs sélectionnés
      $code=$_POST['$case_a_cocher'];
     
      for($i = 0; $i < count($case_a_cocher); $i++)
    {
     
    switch($case_a_cocher[$i])
    {
       case "$code" : $requete = "INSERT INTO CONTENIR (CODED, CODECH, CONTENU)VALUES ('','$$code,'') " ; break;
     
    }
     
    mysql_query($requete);
    }
      ?>
    Pour la petite explication de la base de données voici un bout du schéma relationnel

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    DEMANDE (CODED,DATED,CCD,#CODET)
    TYPE (CODET)
    CHAMPS (CODECH,NOMCH)
    CONTENIR (#CODED,#CODECH, CONTENU)
    COMPOSER (#CODET,#CODECH)
    Donc en gros, tu as des demandes qui peuvent être de trois types (RFI, RFQ, ou RFP), chaque type peut être composé d'un certain nombre de champs. Je souhaite implémenter dynamiquement la table contenir avec les champs choisis par l'utilisateur en fonction du type de demande qu'il souhaite réaliser.
    J'espère que c'est assez clair et que tu auras le temps de me donner un petit coup de main.....

    En option, la manip suivante c'est de générer un menu dynamique pour chaque demande à partir des champs qui auront été sélectionnés (donc de la table CONTENIR). Afin que l'utilisateur puisse navigeur dans ces pages générées dynamiquement et y inscrire son contenu.... mais ça c'est la prochaine étape

    Comme tu peux le voir le challenge est costaud...
    Peux-tu me dire ce que tu en penses?

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/10/2006, 16h15
  2. Réponses: 1
    Dernier message: 05/09/2006, 10h25
  3. Problèmes de timeout pour un script PHP avec Apache
    Par bluemartini dans le forum Apache
    Réponses: 2
    Dernier message: 11/07/2006, 16h16
  4. [PHP-JS] Besoin d'expertise sur petit script php
    Par Quetzalcoatl dans le forum Langage
    Réponses: 9
    Dernier message: 02/07/2006, 18h34
  5. Réponses: 2
    Dernier message: 12/05/2006, 11h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo