Vous n'êtes pas identifié(e).
Bonjour ManicoW et Jc,
Merci vos conseils et bonne journée
Bonsoir Jc,
Avec Regex (Expressions régulières) ? Faut-il mettre un contrôle à chaque champs dans un formulaire ?:mad:
Comment peut-on faire pour que l'on ne mette pas un script ?:mad: En fait, on peut empêcher certains caractères avec Regex, mais quel caractère il faut les empêcher pour que le script ne marche ?
bonne nuit
Bonjour,
j'ai une question un peu générale :
Comment peut-on empêcher de mettre/écrire un script dans un champ d'un formulaire en PHP sans utiliser la classe captcha?
Bonjour Jc,
Si cela te satisfait... super alors...
ch..r ? ch..r ? Est-ce que j'ai une gueule de noix ?
Je n'ai rien compris ce que tu dis et j'en suis sûr que c'était quelques choses très marrante sur moi...
J'en suis sûr que tu n'as rien compris ce que je vous ai dit...
C'est cela la vie d'entr'aidePHPmySql...
bonne fin de semaine
Merci Pierrot...
En fait, j'ai trouvé une solution simple, mais pas très ergonomique : j'affiche l'option sélectionnée dans un « textbox ReadOnly » (les infos viennent de la table « tb_code_prmtn11 ») et je mets un menu déroulant à côté de textBox pour que l'utilisateur puisse changer l'option parmi toutes les options qui se trouve dans ce menu (les infos viennent de la table « tb_code_prmtn11_email » )...
bye:)
Merci
@*|*@
#-#
-
Merci Jc et comment je peux mettre un icône RÉSOLU sur cette discussion ?
C'est vraiment comique...
d'am-ét(h)ique-con au bibite...
du bibite au binette...
Cl ? Cl ? Est-ce que j'ai une gueule de clowns ?
On s'est bien marré ici... sauf moi, c'est la vie... Mais c'est le temps, maintenant...
Je ne savais pas que l'on ne pourrait pas faire ce que je voulais...
Puisque c'est irrésolu, je voudrais fermer cette discussion...
En fait, comment peut-on déposer une icône « Resolu » sur une discussion dans ce forum?
[c][c][/c]
Est-ce que cela est aussi entre le zist et le zest, cette question ?...[/c]
@*|*@
#-#
-
Je ne ferai pas de commentaires..
$a_msg='<select name="xx" tabindex="xx" class="xx" />';
//........
Et j'ai fait encore un effort, ca fait plus d'un an que je n'utilise que PDO... penses-y bientôt PHP 6 (déjà dispo chez OVH).
Bonjour Jo et Maljuna Kris et Pierrot...
Même si vous vous moquez de moi, j'ai fait beaucoup de progrès : il y a quelques jours, je ne connaissais rien sur modelés de données relationnelles...
Malgré les propos sarcastique, je continue...
Voici ce que j'ai fait :
Jc, Ton code marche et très bien fait avec 2 variables ($nom_email et $id_email ) que je n'ai pas pu imaginer de les faire mais prochaines fois...
En affichant "le code source de la page" dans Firefox je vois que :
<select name="email_menu" id="email_menu" onchange="submit()"/><option value="00">---</option><option value="tomo">TOTO MONO</option></select>
Alors, je me suis dit qu'il y a quelques choses que je n'arrive pas vous expliquer...:/
Je vais le faire avec d'autres exemples :
Mon menu marche et affiche toutes les options existent sur la table (par variable : $table_db_email) avec le code suivant
$req_email_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
$rep_email_menu = mysql_query($req_email_menu, $cnx) or die( mysql_error() ) ;
while($show_contenu_email_menu = mysql_fetch_assoc($rep_email_menu)) {
echo '<option value="'.$show_contenu_email_menu['id_email'].'"';
//if($primes==$show_contenu_email_menu['fld_nom_email']){echo " selected";} // pour afficher la selectionne
echo '>'.$show_contenu_email_menu['fld_nom_email'].' - '.$show_contenu_email_menu['fld_adresse_email'].'</option>';
}
?>
</select>
Et voici le retour de code (en affichant "le code source de la page") que j'obtiens dans Firefox
<select name="email_menu" id="email_menu" onchange="submit()">
<option selected="selected" value=''>Choisir le nom</option><option value="tomo">TOTO MONO - toto.mono@test.com</option><option value="kito">KIKI TOTO - kiki.toto@test.com</option></select>
Et maintenant je vais ajouter quelques lignes dans mon code pour sélectionner une option de ce menu : cette option sélectionnée se trouve dans ma table table_db...
$req_email_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
$rep_email_menu = mysql_query($req_email_menu, $cnx) or die( mysql_error() ) ;
while($show_contenu_email_menu = mysql_fetch_assoc($rep_email_menu)) {
echo '<option value="'.$show_contenu_email_menu['id_email'].'"';
////////***************************************** sélectionner option qui est inscrit dans la table
$req_email_adress_menu_for_selected = "SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
FROM $table_db td
INNER JOIN $table_db_email email
ON td.fld_email_id = email.id_email
WHERE td.id_resultat=$id ";
$rep_email_adress_menu_for_selected = mysql_query($req_email_adress_menu_for_selected, $cnx) or die( mysql_error() ) ;
while($show_email_adress_menu_for_selected = mysql_fetch_assoc($rep_email_adress_menu_for_selected))
{
if($emailselected==$show_email_adress_menu['fld_email_id']){echo " selected";} //afficher option existant en selectionnant!!!!!!!!!!!!!!!!
}
/////--------------------------------
//if($primes==$show_contenu_email_menu['fld_nom_email']){echo " selected";} //afficher option existant en selectionnant!!!!!!!!!!!!!!!!
echo '>'.$show_contenu_email_menu['fld_nom_email'].' - '.$show_contenu_email_menu['fld_adresse_email'].'</option>';
}
?>
</select>
Mon menu marche, mais sélectionne toutes les options pourtant dans mon bdd, il n'y a qu'une. Cela veut dire que mon code que j'ai ajouté n'est pas bon...
En affichant "le code source de la page" dans Firefox je vois que :
<select name="email_menu" id="email_menu" onchange="submit()">
<option selected="selected" value=''>Choisir le nom</option><option value="tomo" selected>TOTO MONO - toto.mono@test.com</option><option value="kito" selected>KIKI TOTO - kiki.toto@test.com</option><option value="dida" selected>DIDI DADA - di_da@test.com</option></select>
Alors, comment peux-je afficher, dans mon menu, une option sélectionnée qui se trouve dans la table table_db, tout en affichant toute les options qui se trouvent dans une autre table (table_db_emai) ?
en fait, je vaudrais obtenir le même code source que le suivant :
<select name="email_menu" id="email_menu" onchange="submit()">
<option selected="selected" value=''>Choisir le nom</option><option value="tomo" selected>TOTO MONO - toto.mono@test.com</option><option value="kito" >KIKI TOTO - kiki.toto@test.com</option><option value="dida" >DIDI DADA - di_da@test.com</option></select>
Bonsoir,
en 2011 et qu'il existe aujourd'hui des outils bien plus performant.a++
Bonsoir Pierrot,
quels outils ?
Bonsoir JC,
Puisque tu es un Maitre, je t'écoute...
Et je te dis aussi merci pour tes mots...
En plus, la solution que j'ai trouvée (1 input et un menu déroulant) n'est pas très belle et c'est compliqué parce que la valeur récupérée par post d'une input, c'est un nom (fld_nom_email) mais c'est n'est pas son id (fld_email_id)
Par contre, la valeur de mon menu, c'est l'id (fld_email_id). Autrement dit, les utilisateurs voient le nom de personne dans l'input (comme le PHP) et dans le menu déroulant (mais le PHP trouve son id dans le menu). Donc il faut que je change la valeur d'input avec son id...
Je voulus comprendre ton code, mais ma connaissance n'est pas suffisante...
D'ailleurs, je ne sais pas si tu as pu compris bien mon histoire : Dans mon menu déroulant, je voulais chercher les options dans une table et le select dans une autre table (mon bd a un modèle de données relationnelles que j'ai apprises sur le Net, grâce à vous).
Comme plusieurs fois j'ai écrit et comme tu dis "Pour remplir un select il ne faut pas filtrer ta requête donc ta requête avec un “WHERE ... ” tu peux oublier. » , mon menu marche avec le code suivant :
$res_courriel_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
$rep_courriel_menu = mysql_query($res_courriel_menu, $cnx) or die( mysql_error() ) ;
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {
echo '<option value="'.$affiche_contenu_courriel_menu['id_email'].'"';
//if($primes==$affiche_contenu_courriel_menu['fld_nom_email']){echo " selected";} // pour afficher la selectionne
echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].' - '.$affiche_contenu_courriel_menu['fld_adresse_email'].'</option>';
}
?>
</select>
mais je n'arrive pas sélectionné l'option qui est dans ma 2e table.
Tu dis "Une fois le select rempli, tu navigues dedans, tu changes ta sélection etc... en manipulant le DOM via Javascript et tu évites ainsi de solliciter tes serveurs (PHP+MySQL) pour rien."
Mais je ne sais pas comment je peux faire cette histoire : naviguer et manipuler le DOM et JavaScript...
Bonne soirée et merci encore
Bonjour les amis,
bonjour Jc, Maljuna Kris et Pierrot,
Mille merci pour vos commentaires et mille mercis pour le code de Jc...
Mais je n'arrive pas...
Alors ce que j'ai fait :
$nom_email = $row['fld_nom_email'];
$id_email = $row['fld_email_id'];
if ($email_option_select==$id_email){$select_email .="<option value=\"$id_email\" selected=\"selected\">$nom_email</option>";}
else {$select_email .="<option value=\"$id_email\">$nom_email</option>"; }
}
}
$select_email .='</select>';
echo $select_email;
?>
et voici le message d'erreur :
Warning: mysql_num_rows() expects parameter 1 to be resource, string given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 158
et dans mon menu déroulant : il y une seule option : ---
alors puisque je suis un clown, je vais changer mes envies :
Au lieu de faire un seul menu déroulant, puisque ça ne marchera jamais, je vais faire une "input type text" (avec readonly ou disabled="disabled") et un menu déroulant...
dans mon "input" je vais mettre l'enregistrement qui se trouve dans "table_db"
avec la requête suivante :
et dans le menu déroulant je vais afficher toutes les options qui sont dans la table "table_db_email"
avec la requête suivant :
Si on veut changer la valeur de input, il faut sélectionner la nouvelle valeur dans le menu déroulant... On va faire la mise à jour de bd...
Est-ce que je peux fermer cette discusion très comique en disant RESOULU ?:D
Bonne journée de la part de votre clown:D:lol:
Salut Jc,
Ha bon, alors là, je suis triste puisque je suis un cl......
En fait, un menu déroulant affiche plusieurs options et une option sélectionnée, n'est-ce pas ?
Je suis capable d'afficher option sélectionnée dans mon menu parce que cette information se trouve bien dans la 1re table (alias td)
est ce que je peux aussi afficher les autres options (non sélectionnées) qui se trouve dans une autre table (qui est sous l'alias email) ? Comment je peux faire ?
Encore moi : Je vais expliquer autrement :
//-------- affichage l'option selectionne du menu DONNÉE selectionnée vient de bd table table_db td ($table_db td )
$req_courriel_menu = " SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
FROM $table_db td
INNER JOIN $table_db_email email
ON td.fld_email_id = email.id_email
WHERE td.id_resultat=$id ";
$rep_courriel_menu = mysql_query($req_courriel_menu, $cnx) or die( mysql_error() ) ;
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {
echo '<option value="'.$affiche_contenu_courriel_menu['fld_nom_email'].'"';
if($emailss==$affiche_contenu_courriel_menu['fld_email_id']){echo " selected";} // pour afficher la selectionne si on change...
echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
}
?>
</select>
Alors, le code ci-dessus, voit le champ « fld_email_id » dans la table (alias) « td » et trouve le résultat ensuite compare la valeur du résultat dans la table (alias) « email » et trouve sa correspondance dans le champ « fld_nom_email » et affiche ce nom dans le menu comme une option séléctionnée.
Jusqu'au tout va bien...
voici mes 2 table
tb_code_prmtn11 (qui contient les informations sur les gens) c'est l'alias "td" dans le code
id_resultat
fld_email_id ( FOREIGN KEY (`fld_email_id`) REFERENCES `tb_code_prmtn11_email` (`id_email`) ON DELETE NO ACTION ON UPDATE CASCADE;)
tb_code_prmtn11_email (qui contient les emails de gens) son alias c'est "email"
fld_email_id
[b)]fld_nom_email[/b]
[font=Verdana]Ma question :
Après avoir affiché le nom de la personne dans mon menu comme l'option sélectionnée, comment peux- je chercher tous les autres noms qui se trouve dans le champ "fld_nom_email" et les afficher comme les options non sélectionnées dans LE MÊME MENU?[/font]
Voici mon code en PHP qui contient aussi un peu de HTML et mySql, mais je vais fermer ce ticket si cela est un casse-tête pour vous...
$res_courriel_menu = " select DISTINCT id_email, fld_nom_email, fld_adresse_email FROM $table_db_email ORDER BY fld_nom_email ";
$rep_courriel_menu = mysql_query($res_courriel_menu, $cnx) or die( mysql_error() ) ;
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {
echo '<option value="'.$affiche_contenu_courriel_menu['id_email'].'"';
if($primes==$affiche_contenu_courriel_menu['fld_nom_email']){echo " selected";} // pour re-afficher la selectionne si on change...
echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
}
?>
</select>
hummmm
j'avais deux mysql_query, alors qu'il ne le faut qu'une fois pour exécuter la requête
J'ai rectifié :
Ça marche... En fait mon menu contient tous les emails de ma table...
Par contre il n'y a pas une option (ni la bon option) a été sélectionnée...
et j'ai regardé le code source de la page sous FireFox , c'est vide :
exemple :
Bonjour,
J’ai un bdd qui contient des tables et entre eux, il y a une relation...
tb_code_prmtn11 (qui contient les informations sur les gens)
id_resultat
fld_email_id ( FOREIGN KEY (`fld_email_id`) REFERENCES `tb_code_prmtn11_email` (`id_email`) ON DELETE NO ACTION ON UPDATE CASCADE;)
tb_code_prmtn11_email (qui contient les emails de gens)
fld_email_id
fld_nom_email
Alors, je vais afficher les emails dans un menu déroulant. Dans ce menu, il y a alors tous les courriels qui vient de la table "tb_code_prmtn11_email" mais je voudrais que quand on affiche les informations d'une personne
je veux que dans ce menu, son courriel soit automatiquement sélectionné parmi les autres options
Voici le message erreur :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 53
Voic mon code :
// pour tester si variable id contient un valeur (je le recupere par GET)
echo $id;
?>--
// id toujours un valeur...
<select name="courriel_menu_" id="courriel_menu_" class="valid" onchange="submit()">
<?php
// trouver le valeur du select qui se trouve dans 1er table et afficher l'email qui se trouve dans 2e table
$res_courriel_select= mysql_query("SELECT td.id_resultat,td.fld_email_id,email.fld_nom_email
FROM $table_db td
INNER JOIN $table_db_email email
ON td.fld_email_id = email.id_email
WHERE td.id_resultat=$id");
$rep_courriel_select = mysql_query($res_courriel_select, $cnx) or die( mysql_error() ) ; // LA LIGNE 53!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
while($row=mysql_fetch_row($rep_courriel_select))
{
echo '<option selected=\"selected\" value="'.$row['fld_email_id'].'">'.$row['fld_nom_email'].'</option>';
}
// afficher les autres options
$res_courriel_menu = " select DISTINCT id_email, fld_nom_email FROM $table_db_email ORDER BY fld_nom_email ";
$rep_courriel_menu = mysql_query($res_courriel_menu, $cnx) or die( mysql_error() ) ;
while($affiche_contenu_courriel_menu = mysql_fetch_assoc($rep_courriel_menu)) {
echo '<option value="'.$affiche_contenu_courriel_menu['id_email'].'"';
if($primes==$affiche_contenu_courriel_menu['fld_nom_email']){echo " selected";} // pour afficher la selectionne si on le change
echo '>'.$affiche_contenu_courriel_menu['fld_nom_email'].'</option>';
}
?>
</select>
Alors mon menu est vide et j'ai une alerte:/ :
Warning: mysql_query() expects parameter 1 to be string, resource given in C:\inetpub\wwwroot\applications_web\apps_code_promotion\verification\edit.php on line 53
C’est excellent, Un gros merci à vous, Pierrot, Jc et Maljuna Kris...
Ça marche avec le code suivant :
Merci et bonne journée
c'est RESOLU:)
Bonsoir,
J'ai deux table avec la relation...
dans ma table :
tb_code_prmtn11_pub
j'ai 3 champs :
ID
fld_pub_id
fld_pub_description
dans ma table
tb_code_prmtn11
id_resultat
fld_pub_id ((FOREIGN KEY (`fld_pub_id`) REFERENCES `tb_code_prmtn11_pub` (`fld_pub_id`) ON DELETE NO ACTION ON UPDATE CASCADE,))
alors, je fais une requête SQL :
while($row=mysql_fetch_row($rep)){
$fld_pub_id=$row[0];
$fld_pub_description=$row[1];
echo " $fld_pub_id - $fld_pub_description";
}
voici le message d'erreur :
Column 'fld_pub_id' in field list is ambiguous:(
pourquoi ? vous avez des idées ?:rolleyes:
merci Malihuna Kris pour tes aides, ton document et tes liens...
il faudrait utiliser InnoDB comme tu dis et mettre les Foreign Key, en Index
alors c'est Résolu...
Je sais Maljuna Kris, ton document est pour SQLite et moi j'utilise MySql:mad:
Salut Maljuna Kris,
J'ai lu ton documents, bravo bon traduction...:)
Alors comment je peux faire tout cela dans le pratique?
J'ai fait un essai avec deux tables simple sous PhpMyAdmin dans mon bdd MySql...
Voici ce que j'ai fait :
j'ai créé ma première table, nom, qui contient 2 colonnes :id_nom et prenom
ma requête :
);
ensuite 2e table, ecole, avec 3 colonnes :id_ecole (clé première), nom_prof et nom_etud. Ce derniere est une clé étrangère (foreign key) qui vient du colonne 'id_nom' de table nom
ma requête :
)
PHPmyAdmin crée les tables sans erreur, mais on ne voit pas du tout le concept de foreign key même si dans ma requête, il y avait "REFERENCES nom(id_nom)"
Alors comment je peux créer une table avec foreign key dans PhpMyAdmin ?:(:rolleyes:
Bonjour Maljuna Kris,
Alors, je suis désolé, mais que je dois faire ? Je ferme ce ticket ? Ou bien ... Surtout ton tuto (SQLPro, les jointures) vient aussi sur ce site...
En outre, merci pour le tuto, je vais lire et ensuite je vais voir...
Désolé encore
Bonjour Maljuna Kris,
Merci pour ton lien qui a été écrit par une personne de Microsoft...
Moi j'utilise MySql parce que je suis un déboutant et je n'ai pas besoin d'une bdd performance et professionnelle.
voici un projet fictif :
J'ai un bd qui a 4 tables
table tb_marques contient 2 champs : id et chmps_marques
table tb_moteur contient 2 champs : id et chmps_moteur
table tb_annee contient 2 champs : id et chmps_annee
table tb_note contient 3 champs : id, chmps_id_note et chmps_notes
L’utilisateur affiche un formulaire avec 3 menus déroulants, "marques", "moteurs" et "année" dont les informations viennent de 3 différentes table et un champ de texte pour les notes.
Il sélectionne trois menus et il écrit ses notes dans le champ et valide le formulaire.
Je me demande si j'ai besoin d'un modèle de données relationnelles. Comment je fais la relation entre ces tables ? En fait, j'ai besoin de faire une relation entre les tables pour que j'affiche les résultats qui contient :
les notes, sur la marque, sur son moteur et sur l'année...
Bonjour,
Je cherche des informations pratiques sur base de données relationnelle :
Les avantages et les inconvénients d'avoir une base de données relationnelle?
Est-ce que peut-on avoir une base de données relationnelle avec MySql? Est-ce qu’on peut la monter sous PhpMySql?
Comment peut-on la monter?
Est-ce que vous avez des liens sur cela pour un débutant avec des exemples ?
Je sais que je peux aussi chercher sur Google mais je n'ai pas trouvé un document complet, clair pour un débutant...
Merci votre compréhension à ma question générale...