mysql添加fonly first输入值并忽略其他值

2024-05-20 19:22:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为学校做一个数据库管理项目,我面临以下问题:

我有一个html显示(基于客户id)他的联系方式(可以是1、2或更多与该人相关的联系方式)。 每个联系人都有一封电子邮件、电话和skype

现在,当一个客户有多个与他联系的方式时,我会用jinja2显示与for循环的不同联系方式

如果客户在我提交表单时编辑了这两种联系方式(电子邮件、电话号码、skype),则仅更新了第一个联系人值

不知何故,它忽略或覆盖了其他联系人方法

3 steps of the processBigger picture here

我在VSC上运行应用程序,我使用flask、jinja2和python

以下是我的mysql查询,用于在html中显示数据之前获取必要的信息:

strsqlIdClientAfficher = """
SELECT
t_client.id_Client,
t_titre.Titre,
t_client.Nom,
t_client.Prenom,
t_client.Nom_Entreprise,
t_contact.id_Contact,
t_contact.Numero_Telephone,
t_contact.Email,
t_contact.Skype
FROM
t_client
LEFT JOIN t_titre ON t_titre.id_Titre = t_client.FK_Titre
LEFT JOIN t_contacter ON t_client.id_Client = t_contacter.FK_Client
LEFT JOIN t_contact ON t_contact.id_Contact = t_contacter.FK_Contact
WHERE id_Client = %s    
"""
curseur_dbc.execute(strsqlIdClientAfficher, (doItAllGetClientIdHTML,))
## id client stored from a session

dataClientContact= curseur_dbc.fetchall()

HTML:

{% for row in dataClientContact %}
<div class="form-row">
    <h6 class="h6">ID de Contact : {{ row.id_Contact }}</h6>
</div>
<div class="form-row">                  
    <div class="form-group col-md-6">
        <input type="hidden"  name ="nameIdContactHTML" value="{{ row.id_Contact }}">                 
        <div class="form-group required">
            <label for="inputEmail1">Email</label>
            <input type="email" class="form-control" id="inputEmail1" name="nameEmailHTML" required value="{{ row.Email }}">
            <div class="invalid-feedback">
            Il faut entrer un email.
            </div>
        </div>
    </div>
    <div class="form-group col-md-3">
        <label for="inputPhone">Téléphone</label>
        <input type="tel" class="form-control" id="inputPhone" name="nameNumero_TelephoneHTML" pattern="[0-9]{3}-[0-9]{3}-[0-9]{4}" value="{{ row.Numero_Telephone }}">
    </div>
    <div class="form-group col-md-3">
        <label for="inputSkype">Skype</label>
        <input type="text" class="form-control" id="inputSkype" name="nameSkypeHTML" value=" {{ row.Skype }}">
    </div>
</div>
<br>
{% endfor %}

我将值存储在python中,以便稍后执行查询:

sessIdDoItAllIdClient = session['session_sessIdClientDoItAll'] #id of the client
nameIdContact = request.form['nameIdContactHTML'] #id of the  method of contact
nameEmail = request.form['nameEmailHTML'] 
nameNumeroTel = request.form['nameNumero_TelephoneHTML']
nameSkype = request.form['nameSkypeHTML']

最后更新mysql查询:

strsqlUpdateContact ="""
INSERT INTO t_Contact 
(id_Contact, Email, Numero_Telephone, Skype)
VALUES 
(%s, %s, %s, %s)
ON DUPLICATE KEY UPDATE
id_Contact = VALUES(id_Contact),
Email = VALUES(Email),
Numero_Telephone = VALUES(Numero_Telephone),
Skype = VALUES(Skype)
"""

curseur_dbc.execute(strsqlUpdateContact, (nameIdContact , nameEmail, nameNumeroTel, nameSkype))

connection_dbc.commit()

正如您在前面提供的图片中所看到的,在显示更新值的tempalte上,仅更新了联系人id的第一个值

我正在努力寻找一种方法来更新for循环显示的所有联系人id值,欢迎提供任何帮助! 感谢您花时间阅读我的问题,祝您度过愉快的一天


Tags: divformclientidforemailcontact联系人