Impossible d'enregistrer avec insert into

Résolu/Fermé
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 - 27 avril 2021 à 22:33
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021 - 28 avril 2021 à 14:01
bonjour

Je voudrais inserer deux colonne de deux table differente dans ma table sql mais rien ne fonctionne.
il y a t'il une fonctionnalité qui le permette.
en sachant que j'ai une table ville ou je dois recuperer ville_id et ville_nom
et une autre table qui s'appelle user ou je dois recuperer l'id et le login mais qui me sers a me connecter aussi.
voici mon code de depart

<?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>
</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())
{
$villes[$donnees['ville_id']] = $donnees['ville_nom'];
}
}
}?>
<?php
$sql = "INSERT INTO user_search (ville_id,ville_nom)
VALUES ('ville_id', 'ville_nom')";
?>
<ul>
<?php foreach ($villes 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'); ?>

6 réponses

jordane45 Messages postés 36614 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 décembre 2022 4 422
27 avril 2021 à 22:43
Bonjour
Comment se nomme la table dans laquelle tu veux faire l'insertion ?
Quelle est sa structure ?
Quelle est la relation entre tes tables ?(le lien entre ta table user et à table ville)
Quel est le lien avec le code PHP que tu nous montres ?

Ps: à l'avenir merci de préciser le langage dans les balises de code.
Explications, à lire entièrement, disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
27 avril 2021 à 23:00
Bonsoir
la table ou je veux faire l'insertion s'appelle user_search.
il n'y a pas de lien entre la table user et villes car c'est la table user_search qui enregistre les recherche des utilisateurs.(ca sera elle qui fera le lien)
Par contre, dans ma table user_search j'ai ville_id et ville_nom qui sont present dans la table user et user_id et user_login qui sont present dans la table user.
c'est une base Mysql.
0
jordane45 Messages postés 36614 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 décembre 2022 4 422
27 avril 2021 à 23:23
Alors je ne sais pas si c'est l'heure tardive ... mais j'ai du mal à voir ce que tu veux enregistrer et où exactement...
La table où tu veux faire l'insert c'est user_search .. ok... mais quelles sont les colonnes qui y sont présentes ? Lesquelles veux tu remplir ?
Avec quoi veux tu les remplir ?
Avec cette requête ?
INSERT INTO user_search (ville_id,ville_nom)
VALUES ('ville_id', 'ville_nom')

Dans ce cas, dans les VALUES, ce sont les valeurs que tu dois mettre ..
Donc, ce qui est issu de ta requête
SELECT ville_id, ville_nom FROM villes WHERE ville_nom LIKE "' . $ville_nom . '"'

visiblement...

C'est donc dans ta boucle que tu dois faire ton insertion...
un truc du genre :
while ($donnees = $result->fetch_array())  {
  // ici tu fais ton insert
    $sql = "INSERT INTO user_search (ville_id,ville_nom)
     VALUES ('". $donnees['ville_id']."', '". $donnees['ville_nom']."')";
    $mysqli->query($sql ):
}
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
27 avril 2021 à 23:50
Bonsoir
Alors j'ai mis la boucle mais il ne se passe rien.
le probleme c'est que je dois aussi incorporer un user_id dans cette base qui est dans une autre table qui n'a aucun lien avec villes.
je n'ai pas de message d'erreur sur php.
0
jordane45 Messages postés 36614 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 9 décembre 2022 4 422
27 avril 2021 à 23:53
Je te le demande pour la dernière fois... Quelle est la structure exacte de tes tables ?

Et puis...
Comment sais-tu quel user_id tu dois insérer ?
L'utilisateur est connecté ? Tu as stocker son identifiant en variable de session ?
Sinon comment fais-tu pour l'identifier dans cette page ?
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
28 avril 2021 à 07:57
Bonjout
En fait, j'ai une page de connexion ou j'utilise la table user.
les identifiants de session sont stocké dans la table user.
j'ai un fichier inc_identification dans chaque page.
mes 3 tables :
Table villes : ville_id(INTautoincrement
ville_nom(varchar)
ville_texte(TEXT)
pays_id(INT)
Table user: user_id(INT)
user_login(varchar)
user_password(varchar)
user_search: ville_id(INT)autoincrement
ville_nom(varchar)
user_id(INT)
en fait, je dois faire correspondre les villes avec l'utilisateur.
l'utilisateur tape une ville et je doit inscrire chaque recherche dans la base de données.
je les sauvegarde en gros.
0
yg_be Messages postés 20777 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 9 décembre 2022 1 269
28 avril 2021 à 09:09
bonjour,
je pense que tu dois faire plutôt:
$sql = "INSERT INTO user_search (ville_id,ville_nom, user_id)
     VALUES ('". $donnees['ville_id']."', '". $donnees['ville_nom']."', " . $id_utilisateur . " )";    

et nous montrer le contenu de tes deux autres fichiers php.
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
28 avril 2021 à 08:58
Bonjour
Bon j'ai fini par reussir a récuperer l'id de session.
j'ai résolu le problème.
merci encore
0
Firefly90 Messages postés 26 Date d'inscription mardi 27 avril 2021 Statut Membre Dernière intervention 10 mai 2021
28 avril 2021 à 14:01
Bonjour
en fait, j'ai réussi avec ce code la.

<?php require('inc_connexion.php'); ?>
<?php require('inc_identification_user.php'); ?>
<?php
if(session_status() == PHP_SESSION_NONE){
session_start();
}
?><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>
</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
$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_id From user_search where ville_id like "%'. $ville_id .'%" ');
$recherches = array();
while ( $row = $result->fetch_array())
{
$recherches[] = $row['ville_id'];
}?>
<ul>
<?php foreach ($villes 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'); ?>

maintenant je veux récuperer mes recherches et les afficher dans la requete du bas.
c'est plus bas que ça coince.
0