Insertion dans base de données

Résolu
Signaler
Messages postés
44
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
30 novembre 2007
-
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
-
Bonjour,

Je suis en ce moment en train d'essayer d'alimenter une base de données à partir d'un formulaire. J'ai respecté la syntaxe que j'ai lu dans un bouquin, mais l'ajout ne se fait pas...
Si quelqu'un trouve l'erreur dans mes lignes de codes, je lui en serais reconnaissant :) :

<? // Partie traitement des données

$ajout =
    "INSERT INTO mission (
                        mis_num,
                        ag_cod,
                        mis_dest,
                        mis_obj,
                        mis_decision,
                        mis_duree,
                        mis_moy_trans,
                        mis_type,
                        mis_dat_dep,
                        mis_heur_dep,
                        mis_dat_ret,
                        mis_heur_ret,
                        mis_repas,
                        mis_nuit_paris,
                        mis_nuit_prov,
                        mis_fr_trans
                        )
    VALUES ('$_REQUEST[box_mis_num]',
            '$_REQUEST[box_codagt]',
            '$_REQUEST[box_dest]',
            '$_REQUEST[box_obj]',
            '$_REQUEST[box_ref]',
            '$_REQUEST[box_dure]',
            '$_REQUEST[moy_transp]'
            '$_REQUEST[type_deplac]',
            '$_REQUEST[date_depart]',
            '$_REQUEST[heure_depart]',
            '$_REQUEST[date_retour]',
            '$_REQUEST[heure_retour]',
            '$_REQUEST[repas]',
            '$_REQUEST[paris]',
            '$_REQUEST[province]',
            '$_REQUEST[frais_transp]')";

//Exécution de la requête
$resultat = mysql_query($connect, $ajout) or die ("Ajout impossible");

?>

C'est à cette dernière ligne que se trouve apparement l'erreur.

Merci d'avance !

Zik'

6 réponses

Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

L'erreur vient de ton utilisation de mysql_query. D'après la doc PHP (http://www.php.net/manual/fr/function.mysql-query.php) :

Description
resource mysql_query ( string $query [, resource $link_identifier ] )

mysql_query() envoie une seule requête (les requêtes multiples ne sont pas supportées) à la base de données courante sur le serveur associé avec le link_identifier spécifié.

Inverse les arguments ;)

$resultat = mysql_query($ajout, $connect) or die ("Ajout impossible");
Messages postés
44
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
30 novembre 2007

Bon et bien j'ai utilisé la méthode du "INSERT nom table SET champ1='variable1',... ;" et ca marche donc ne tenez pas compte de mon message d'avant :)

Merci quand meme !

Bye

Zik'
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
N'empêche que le premier argument de mysql_query doit être la requête et non l'identifiant de connexion.
Messages postés
44
Date d'inscription
mercredi 30 mai 2007
Statut
Membre
Dernière intervention
30 novembre 2007

C'est ce que je pense aussi, mais dans le célèbre PHP et MySQL pour les Nuls, ils mettent bien la variable de connexion en premier, et la requete en second... :)
Je trouvais ca bizarre aussi. Ils sont nuls eux aussi ? ;)

Zik'
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Moi je m'en fous des bouquins... Je me base sur la doc, qui est écrite par les développeurs... Eux, ils savent ce qu'ils disent.
Messages postés
2480
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Dernière chose.

En fait, si la requête doit être le premier argument, c'est pour une raison simple: c'est un argument qui n'est pas facultatif, contrairement à l'identifiant de connexion. Or, dans la quasi-totalité des languages de programmation, les arguments facultatifs doivent passer APRES les arguments obligatoires.