Probleme enregistrement dans base de données SQL

Résolu/Fermé
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 - 29 avril 2021 à 08:07
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 - 29 avril 2021 à 18:58
Bonjour,
Je n'arrive pas a enregistrer toutes mes données dans ma base de données SQL.
J'ai une partie qui s'enregistre avec l'utilisateur 1 mais pas avec les autres.
je pense que ça vient de MYSQL mais je n'en suis pas sûre .
Mon code est en PHP mais avec des requete SQL:

<?php require('inc_connexion.php'); ?>
<?php require('inc_identification_user.php'); ?>
<html>
<link rel="stylesheet" type="text/css" href="style.css"  />
<div id="container">
<h2>Rechercher une ville : </h2>
<!-- zone de connexion -->
<form method="POST" action="">
<input type="text" name="ville_nom">
<input type="SUBMIT" value="Search!">
</form>
<li><a href="index.php">Accueil</a></li><br>
</div>
</html>
<?php
//On definie la variable
if (isset($_POST['ville_nom'])) {
    $ville_nom = $_POST['ville_nom'];}
{
if (empty($ville_nom)) 
{
echo "<p>" . "Veuillez saisir une ville !" . "</p>";
} 
else
{
// la requete mysql de recherche
$result = $mysqli->query('SELECT ville_id, ville_nom FROM villes WHERE ville_nom LIKE "' . $ville_nom . '"');
while ($donnees = $result->fetch_array()) 
{
// ici tu fais ton insert
var_dump($user_id);
$sql = "INSERT INTO user_search (ville_id,ville_nom,user_id)
VALUES ('". $donnees['ville_id']."', '". $donnees['ville_nom']."','". $_SESSION['user_id']."')";
$mysqli->query($sql);
$villes[$donnees['ville_id']] = $donnees['ville_nom'];
   }
  }
}
?>
</div>
		<div>
<p>Vos précédentes recherches :</p>
<?php
$result = $mysqli->query('SELECT ville_nom From user_search where user_id like "%'. $user_id .'%" ');
$recherches = array();
while ( $row = $result->fetch_array())
	{
		$recherches[] = $row['ville_nom'];
	}?>
<ul>
<?php foreach ($recherches as $id => $ville) : ?>
<li><a href="ville.php?id=<?php echo $id ?>"><?php echo $ville?></a></li>
<?php endforeach ?>
</ul>
<?php require('inc_footer.php'); ?>

7 réponses

yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 477
29 avril 2021 à 09:05
bonjour,
je suggère que tu adaptes ton code en tenant compte de ceci:
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code#connecter-son-code-a-une-base-de-donnees-mysql

tu ne le précises pas, je suppose que c'est l'INSERT en ligne 33 qui ne fait pas tout ce que tu veux, est-ce exact?

comment sais-tu ce que fait ton code? comment sais-tu combien de fois il exécute la ligne 33, et avec quelles données?
0
jordane45 Messages postés 38156 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 4 655
29 avril 2021 à 10:39
Bonjour
En complément, je lui avais déjà demandé de faire ceci:

Connecte-toi avec un autre utilisateur
Affiche le contenu des variable de session en utilisant par exemple d'instruction Var_dump
Assure-toi que tu as bien le bon id de ton user
Lance une recherche et regarde ce qui se met en base de données..
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 15:33
Bonjour
Oui, c'est bien l'insert ligne 33 et l'erreur est dans mysql.
car il affiche une erreur dans PHP my admin.
0
yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 477 > Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 15:56
as-tu affiché le contenu de ta variable
$sql
?
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 > yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024
29 avril 2021 à 16:20
en fait, ce qui est étrange. c'est quand je fais un var_dump.
j'ai bien mes 3 valeurs. il me trouve bien les bonnes valeurs.
donc en partie, le code marche mais que pour un utilisateur.
par contre, quand je rentre le code dans PHP my admin
il me trouve l'erreur #1064.
C'est une erreur de syntaxe mais je vois pas vraiment ce qui peux clocher.
Si quelqu'un voit une erreur dedans je veux bien qu'il me le dise.
$sql = "INSERT INTO user_search (ville_id,ville_nom,user_id)
VALUES ('". $donnees['ville_id']."', '". $donnees['ville_nom']."','". $_SESSION['user_id']."')";
$mysqli->query($sql);

0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 > Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 16:25
C'est la ligne 2 des valeurs ou il y a l'erreur.
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 15:06
Bonjour a tous

Donc je me suis connecté à un autre utilisateur.
Quand je fais le var_dump, j'ai bien les variables enregistré.
Par contre, dans mysql, il m'affiche cette erreur :
MySQL said: Documentation
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ville_id']."', '". $donnees['ville_nom']."','". $_SESSION['user_id']."')' at line 2
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 15:16
Je suis sur Eversql et il me trouve cette erreur :
We found an error in the query's syntax around:
"ville_id" at line 2, column 23.
Donc c'est bien une erreur dans la requête.
Il faut juste que je trouve comment la resoudre.
0
jordane45 Messages postés 38156 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 4 655
29 avril 2021 à 16:34
Fais un echo de ta variable $sql et montres nous ce que ca te donnes
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
Modifié le 29 avril 2021 à 17:01
en fait , ca me montre exactement la même chose que le var dump.

INSERT INTO user_search (ville_id,ville_nom,user_id) VALUES ('20', 'Paris','1')

On vois bien mes valeurs.
C'est ça qui estbizarre.
Mais ça s'insere pas
c'est bien les bonne valeurs en plus. :/
ça s'insere que avec un utilisateur. les autres, ils existe pas pour mysql.
0
yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 477
29 avril 2021 à 17:08
et quand tu exécutes cette requête en phpmyadmin, cela n'insère pas?
INSERT INTO user_search (ville_id,ville_nom,user_id) VALUES ('20', 'Paris','1')
0
jordane45 Messages postés 38156 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 4 mai 2024 4 655
29 avril 2021 à 17:58
ça s'insere que avec un utilisateur. les autres, ils existe pas pour mysql.

Les autres ... quels autres ??
Tu as fais ce que je t'ai demandé ? Te loguer avec un autre user et regarder ce que t'affiche le var_dump et le echo ??

En plus.. tu fais un
var_dump($user_id);

Donc.. avec la variable $user_id ... mais ensuite, dans ta requête tu utilises $_SESSION['user_id'] .....

Ne peux tu pas nous faire un
var_dump($_SESSION) ;

et nous montrer ce qu'elle contient quand tu te logues avec un autre utilisateur ( puisque c'est avec les autres que ça semble merder... ) ???
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 17:54
Alors la j'ai une erreur
#1062 - Duplicate entry '20' for key 'PRIMARY'
0
yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 477
29 avril 2021 à 18:34
tu devrais donc corriger ton code PHP, pour détecter que l'insertion ne fonctionne pas.
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 18:35
oui c'est la requete mais c'est un probleme au niveau sql aussi
0
yg_be Messages postés 22753 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 4 mai 2024 1 477
29 avril 2021 à 18:39
une chose à la fois, commence par corriger ton code.
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
29 avril 2021 à 18:58
c'est bon, ca marche.
le probleme venait de mysql
0