IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

probleme de INSERT INTO


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut probleme de INSERT INTO
    bonjour a tous, je suis en train d'apprendre le PHP, quelqu'un pourrait m'expliquer se que je doit modifier modifier dans mon code.

    mon tableaux est organisé comme sa ville_id -> ville_nom et je veux récupérer ville_id du résultat de la recherche, pour le mettre dans le dans un autre tableau

    voici mon code.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    <?php
    require_once("inc_connexion.php");
    if(isset($_GET['cle'])) {
    	$requete = "SELECT ville_nom FROM villes
    			    WHERE ville_nom
    			    LIKE  '".$_GET['cle']."' ";
    	if(($_GET['cle']) == 1) {
    		$requete2 = "INSERT INTO user_searchs (Searchs_ID) VALUES ('" . $_GET['cle'] . "')";
    	}
    } else {
    	$requete = "SELECT ville_nom FROM villes ";
    }
    $resultat = $mysqli->query($requete);
     
    ?>
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>Document sans titre</title>
    <style>
    #connection{
    	float:right;
    }
     
    .div {
    	height:auto;
    	width:500px;
    	}
    </style>
    </head>
     
    <body>
    <div>
    <a href="login1.php" id="connection">connection</a>
    <form id="monform" name="form1" method="get" action="<?php  echo $_SERVER['PHP_SELF']; ?>">
      <p>
        <label>Recherche une ville :
          <input type="text" name="cle" value="<?php if(isset($_GET['cle'])) echo $_GET['cle']; ?>" />
        </label>
      </p>
      <p>
        <label>
          <input type="submit" name="bouton"  value="Envoyer" />
        </label>
      </p>
    </form>
     
     
    <table border="1" cellspacing="0" cellpadding="5">
      <tr>
        <td>Référence</td>
      </tr>
      <?php while($ville=$resultat->fetch_assoc())  { ?>
      <tr>
        <td><?php echo $ville['ville_nom']; ?></td>
      </tr>
      <?php } ?>
    </table>
    </div>
    <?php
    require_once("inc_footer.php");
    ?>
    </body>
    </html>

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    C'est une table, pas un tableau
    Si tu veux recuperer ville_id, il faut faire SELECT ville_id pas SELECT ville_nom.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(($_GET['cle']) == 1) {
    Je ne pense pas qu'il existe une ville qui porte le nom "1".

    Et pour finir on ne place pas directement dans une requête une valeur venant de l'utilisateur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(isset($_GET['cle'])) {
    	$requete = "INSERT INTO user_searchs (Searchs_ID) SELECT ville_id FROM villes  WHERE ville_nom  LIKE  '%" . $mysqli->real_escape_string($_GET['cle']) . "%'");
            $mysqli->query($requete);
    }
    }

  3. #3
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    j'avais mis se code pour que sa enregistre, que s'il y a un résultat a la recherche, et non tout les recherche.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    if(($_GET['cle']) == 1) {

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    $_GET['cle'] c'est la valeur saisie, pas le nombre de résultat de la requête.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2013
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Services de proximité

    Informations forums :
    Inscription : Décembre 2013
    Messages : 21
    Points : 19
    Points
    19
    Par défaut
    Il faudrait que je marque quoi a la place, pour enregistrer que quand il y a un résultat.

    Citation Envoyé par sabotage Voir le message
    $_GET['cle'] c'est la valeur saisie, pas le nombre de résultat de la requête.

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je t'ai déjà fourni une solution qui le fait.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    [EDIT] Oups ! Pas bien lu...

    Par contre, je remplacerais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(isset($_GET['cle'])) {
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty(trim($_GET['cle']))) { // donc pas vide (au moins 1 caractère)
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if(!empty(trim($_GET['cle'])) && strlen(trim($_GET['cle']))>1) { // si on veut 2 caractères mini.
    trim() pour supprimer d'éventuels espaces parasites.

Discussions similaires

  1. Probleme avec INSERT INTO et select
    Par jmjmjm dans le forum Requêtes
    Réponses: 9
    Dernier message: 28/01/2007, 23h51
  2. Probleme d'INSERT INTO
    Par god_enel dans le forum Langage SQL
    Réponses: 16
    Dernier message: 17/01/2007, 17h22
  3. [MySQL] Probleme d'Insert into
    Par Fredo02 dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/10/2005, 12h40
  4. probleme avec insert into
    Par bscorpion dans le forum Langage SQL
    Réponses: 5
    Dernier message: 05/07/2005, 14h00
  5. probleme d'INSERT INTO et JavaScript
    Par Matlight dans le forum Langage SQL
    Réponses: 3
    Dernier message: 04/03/2004, 16h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo