mysql添加fonly第一个输入值并忽略其他

时间:2019-05-03 16:26:00

标签: python mysql flask jinja2

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

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

现在,当客户与他联系的联系方式不止一种时,我将显示与Jinja2 for循环的不同联系方式。

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

它以某种方式忽略或覆盖了其他联系人方法。

3 steps of the process Bigger 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()

正如您在之前提供的图片中所看到的,在显示更新值的临时模板上,仅联系人ID的第一个值得到了更新。

我正在努力寻找一种方法来更新for循环显示的所有联系人id值,我们将非常欢迎任何帮助! 感谢您抽出宝贵的时间阅读我的问题,并度过美好的一天!

0 个答案:

没有答案