MySQL добавляет только первые входные значения и игнорирует другие - PullRequest
0 голосов
/ 03 мая 2019

Я делаю проект управления базой данных для школы, и я сталкиваюсь со следующей проблемой:

У меня есть HTML, показывающий (на основе идентификатора клиента) его методы контакта (они могут быть 12 или более контактных лица, связанных с этим человеком. У каждого контакта есть электронная почта, телефон и скайп

Теперь, когда клиент имеет более одного способа связи, он отображает разные способы связи с ним.для цикла с jinja2.

Если клиент отредактирует оба этих способа контакта (электронная почта, номер телефона, скайп), когда я отправлю форму, обновятся только первые значения контактов.

Каким-то образом он игнорирует или переопределяет другие методы контактов.

3 steps of the process Увеличенное изображение здесь

Я запускаю приложение на 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 для отображенияобновленные значения, обновлены только первые значения идентификатора контакта.

Я изо всех сил пытаюсь найти способ обновить все значения идентификатора контакта, отображаемые в цикле for, любая помощь будет действительно приветствоваться!Спасибо за то время, которое вы потратили на чтение моей проблемы и хорошего дня!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...