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

PHP & Base de données Discussion :

ajout dans la base de données


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Par défaut ajout dans la base de données
    Bonjour, j'ai ce code qui est assez réticent et qui me cause problème... Tout les variables et les noms de champs/tables ont les bons noms, il ne me retourne aucune erreur, mais il n'ajoute rien dans la base de donnée...

    Voici une partie de ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    if($_POST['v_name']) {
    if($_POST['v_desc']) {
    	$v_auth = $_POST['v_auth'];
    	$v_name = $_POST['v_name'];
    	$v_desc = $_POST['v_desc'];
    	$ip     = $_SERVER['REMOTE_ADDR'];
    	$time   = time();
    	$id     = random(16);
    	$sql = "INSERT INTO news (id, ip, date, title, desc, auth) VALUES ('$id', '$ip', '$time', '$v_name', '$v_desc', '$v_auth');";
    	mysql_query($sql);
    	header('Location: ../add-n.php?success=true');
    }
    }

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    Si rien n'est inséré utilise la commande :
    http://php.net/manual/fr/function.mysql-error.php

    pour afficher l'erreur c'est que ta requête n'est pas la bonne.

    Ex : Mauvais format de variable dans un champs ou autre.

    Peut tu aussi donner la définition de ta table, car l'ID en random ça me choque tu ne peut garantir une unicité comme ca, tu as l'autoincrement pour gérér ca par exemple.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Tolriq Voir le message
    Peux tu aussi donner la définition de ta table
    structure et type de données

    ps : "desc" a une signification en SQL. (ORDER BY xxxx DESC)
    ca pourrait être ca (?)

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Par défaut
    Citation Envoyé par jreaux62 Voir le message
    ps : "desc" a une signification en SQL. (ORDER BY xxxx DESC)
    ca pourrait être ca (?)
    C'était en plein cela le problème, je n'arrive pas a croire que je n'y avait pas penser plus tôt... Ça m'apprendra à nommé mes champs avec des noms de variables prédéfinies... Merci

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2011
    Messages
    146
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 146
    Par défaut
    il suffit d’échapper tes champs avec ` comme ca plus de soucis

    `desc`

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    si, comme je le pense, id est auto-incrémenté dans la base,
    il ne faut pas lui donner de valeur !
    $id = random(16);
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	$sql = "INSERT INTO news 
    		(ip, date, title, desc, auth) 
    		VALUES 
    		('$ip', '$time', '$v_name', '$v_desc', '$v_auth');";
    	//mysql_query($sql);
    	mysql_query($sql) or die('Erreur SQL :<br />'.$sql.'<br />'.mysql_error()); // avec gestion d'erreur (pendant la phase de développement)
    On peut ENSUITE récupérer le dernier id qui vient d'être créé (APRES la requête) avec mysql_insert_id() :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$id     = mysql_insert_id();

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Par défaut
    Merci pour vos conseils, je vais changer ma méthode pour les ID's et je vais voir ce que dit mysql_error

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 16
    Par défaut
    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 'desc, auth) VALUES ('sCF3qi89PmDH65J7', '127.0.0.1', '1314167364', 'test', 'test' at line 1

    Je ne voit pourtant pas "d'erreur de syntaxe"... Pouvez-vous m'aider s'il-vous-plaît?

Discussions similaires

  1. Réponses: 10
    Dernier message: 20/01/2008, 20h57
  2. [MySQL] Requête d'ajout dans la base de données
    Par poitierjohan dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 09/09/2007, 11h11
  3. [SQL] aucun ajout dans la base de donnée impossible
    Par gtraxx dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 22/09/2006, 17h49
  4. Ajout Dans une base de données
    Par belabyad dans le forum ASP
    Réponses: 8
    Dernier message: 11/03/2005, 13h25
  5. pb d'ajout dans une base de donnée
    Par loic.440 dans le forum ASP
    Réponses: 15
    Dernier message: 17/01/2005, 10h06

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