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

PHP & Base de données Discussion :

table vs select incompréhensible [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut table vs select incompréhensible
    Alors le cadre:

    une table activité: activ (id,activite),
    une table client: prospects(....,Activ_Cust, ...)

    le code du select et de l'input:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <select name='Activ' style="width:206px;" class="userInput" onchange="document.getElementById('opt').style.visibility=(this.value=='Autre')?'visible':'hidden';document.getElementById('other').value=(this.value=='Autre')?'':document.getElementById('other').value ">
    					<option value="-1" >------- Selectionnez votre activité ----------</option>
    				    <?php 
    					$Autre=false;
    					while($rowActiv  = mysql_fetch_array($result_activ)) { 
    					$Autre=(!$Autre && ($prospect['Activite']==$rowActiv['Activite']));
    					echo '<option value="'.$rowActiv['Activite'].'" '.(($prospect['Activite']==$rowActiv['Activite'])?'selected="selected"':' ').'>'.$rowActiv['Activite'].'</option>';
    									}?>
    					<option value="Autre" <?php echo (($Autre)?'selected="selected "':'');?> >Autre ...</option>
    				</select><br />
    				<?php echo 'table Prospect:' .$prospect['Activite'].' table activ:'.$rowActiv['Activite']; ?>
    				<div id="opt" style="border:0;<?php echo ($Autre)?'visibility:visible;':'visibility:hidden;'?>" >		
    					<div class="FormLabel">Si autre, précisez : <b style="color:red">*</b></div><input id="other" class="userInput" type="text" name="AutreActiv" value="<?php echo ($Autre)?$prospect['Activite']:''; ?>"/>
    				</div>
    En principe, à l'affichage, le select de remplit avec les activités présentes dans la table, si l'activité n'existe pas dans la table, il selectione l'option Autre et affiche l'inout text en dessous avec l'activité en value...

    J'ai deux soucis:

    Le premier concerne l'option "Bureau d'étude" ...
    Les quotes semblent poser un problème ? Pas trop grave ..

    Là ou j'aborde la quatrième dimension, c'est que tout cela marche bien sauf pour l'option Electricien

    si je selectionne Electricien, j'ai bien "Electricien" dasn la table proscpect, mais lorsque la page se réaffiche il selectionne l'option "Autre" et mets "Electricien" dans l'inout text ???
    Pour toutes les autres Activité existantes il selectionne bien la bonne option , et
    si l'activité n'existe pas il selectionne bien "Autre" et mets l'activité dans l'input text ???

    Auriez vous une idée de l'origine de ce comportement
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  2. #2
    Membre chevronné Avatar de SphynXz
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    439
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 439
    Par défaut
    en résumé :

    $prospect['Activite'] devrait être égal à $rowActiv['Activite'] quand les deux sont à Electricien, or ce n'est pas le cas ?

    remplace
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    while($rowActiv  = mysql_fetch_array($result_activ)) { 
    					$Autre=(!$Autre && ($prospect['Activite']==$rowActiv['Activite']));
    					echo '<option value="'.$rowActiv['Activite'].'" '.(($prospect['Activite']==$rowActiv['Activite'])?'selected="selected"':' ').'>'.$rowActiv['Activite'].'</option>';
    									}
    par
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while($rowActiv  = mysql_fetch_array($result_activ)) { 
    					$Autre=(!$Autre && ($prospect['Activite']==$rowActiv['Activite']));
    					echo '<option value="'.$rowActiv['Activite'].'" '.(($prospect['Activite']==$rowActiv['Activite'])?'selected="selected"':' ').'>'.$rowActiv['Activite'].'</option>';
    echo "<! --";
    var_dump($prospect['Activite'],$rowActiv['Activite']);
    echo "-->";
    									}

    et affiche nous le résultat de ce var_dump lorsque ca tombe sur Electricien

    Il te faudra acceder au code source pour afficher le résultat de cette fonction

  3. #3
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Voilà ce qui se passe ...
    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
    				<select name="Activ" style="width: 206px;" class="userInput" onchange="document.getElementById('opt').style.visibility=(this.value=='Autre')?'visible':'hidden';document.getElementById('other').value=(this.value=='Autre')?'':document.getElementById('other').value ">
    					<option value="-1">------- Selectionnez votre activité ----------</option><!-- --string(10) "Cuisiniste"
    string(15) "Bureau d'études"
    ----><option value="Bureau d'études">Bureau d'études</option><!-- --string(10) "Cuisiniste"
    string(10) "Cuisiniste"
    ----><option value="Cuisiniste" selected="selected">Cuisiniste</option><!-- --string(10) "Cuisiniste"
    string(12) "Chauffagiste"
    ----><option value="Chauffagiste">Chauffagiste</option><!-- --string(10) "Cuisiniste"
    string(8) "Plombier"
    ----><option value="Plombier">Plombier</option><!-- --string(10) "Cuisiniste"
    string(7) "Gaineur"
    ----><option value="Gaineur">Gaineur</option><!-- --string(10) "Cuisiniste"
    string(11) "Electricien"
    ----><option value="Electricien">Electricien</option>					<option value="Autre">Autre ...</option>
     
    				</select>

    il ne me sort pas le $row['ActivTable'] pour Electricien
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    :yeah:
    C'était mon test $Autre qui était foireux ...

    voici comment j'ai résolu ce problème :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $Autre=0;					
    					while($rowActiv = mysql_fetch_assoc($result_activ)) { 
    					$Autre=($prospect['ActivCust']==$rowActiv['ActivTable'])?1:0;
    					echo "<! --";  var_dump($prospect['ActivCust'],$rowActiv['ActivTable'],$Autre);
    					echo "-->";
    					echo '<option value="'.$rowActiv['ActivTable'].'" '.(($prospect['ActivCust']==$rowActiv['ActivTable'])?'selected="selected"':' ').'>'.$rowActiv['ActivTable'].'</option>'."\r\n";
    									}?>
    					<option value="Autre" <?php echo (($Autre==0)?'selected="selected "':'');?> >Autre ...</option>
    				</select><br />
    Par contre j'ai toujours le souci avec "Bureau d'études" avec l'apostrophe ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par défaut
    Bon à priori un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <option value="'.addslashes($rowActiv['Activite'])
    résoud mon problème ...

    merci
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CREATE TABLE .... AS SELECT
    Par blids dans le forum SQL
    Réponses: 5
    Dernier message: 13/10/2016, 14h00
  2. Créer une table avec SELECT
    Par eric37 dans le forum Requêtes
    Réponses: 2
    Dernier message: 20/08/2006, 00h34
  3. inserer une table via select
    Par nabou dans le forum Oracle
    Réponses: 1
    Dernier message: 12/07/2006, 13h06
  4. [VS2003+ADO.NET]DtSet.Tables("TC").Select
    Par Jopzeut dans le forum Visual Studio
    Réponses: 3
    Dernier message: 16/03/2006, 20h18
  5. Réponses: 9
    Dernier message: 27/10/2004, 01h31

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