Page 1 sur 1

probleme d'insertion dans la base

Posté : 26 sept. 2006, 13:10
par steph78
Bonjour,

C'est encore moi, j'ai encore le probleme avec phpmyadmin, mais j'ai un probleme encore plus important, je vous avais dit que tout mon code marchais, mais en faite, je peux faire des selection, des delete des update mais impossible de faire des insert. Au debut je pensais que cela venais des numérotation automatique, mais j'ai essayer avec d'autre et c'est le même probleme. A partir de mysql la console il n'y a pas de probleme, cela est a partir du code. Je precise que a partir de wamp je n'avais aucun probleme a ce niveau non plus. Qu'es-ce qui pourrai me causer c'est probleme ?

merci d'avance

Posté : 26 sept. 2006, 13:47
par charabia
Nous ne pouvons pas t'aider si nous n'avons pas d'éléments...

Posté : 26 sept. 2006, 14:37
par steph78
Je ne peux pas donner beaucoup plus de detail. sauf que lorque je veux voir les variable qui sont en memoire, et bien rien s'affiche(même pour quelque chose qui marche).
De plus, il faut que tout soit rempli sur un formulaire afin qu'il puisse être enregistrement et ne pas être en numérotation automatique. A partir du moent ou se en numérotation automatique cela ne marche pas.

Sinon je peut voir faire voir un peu de code, mais tout marchai sous wamp auparavent.

ma fenetre contennant le formulaire :
 <?php 
session_start();
?>
<?php
include_once("../../connexion.php");
?>
<html>
<head>
<script language="javascript">>
function validate(enreg) {
    valnom = document.enreg.nom.value;
    while('' + valnom.charAt(0)==' ')
        valnom = valnom.substring(1, val1.length);
    if (valnom == "")
        alert("Veuillez saisir le nom de l'acces");
        document.enreg.nom.focus();
        return false;
    }
}


</script>

<title>Enregistement d'un nouvel acc&egrave;s</title><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"><style type="text/css">
<!--
body,td,th {
	font-family: Tahoma;
}
-->
</style><link rel="stylesheet" type="text/css" href="../../style.css">
</head>
<body>



<a href="javascript:history.go(-1)"><img src="../../image/precedent.gif" width="41" height="25" border="0"></a><form name="enreg" onSubmit="return validate(this)" method="post" action="accesAdd.php">


  <p>&nbsp;  </p>
  <table width="40%" >
    <tr align="left" valign="middle">
      <td width="37%">Nom de l'acc&egrave;s</td>
      <td width="63%"><input name="nom" type="text" id="nom"></td>
    </tr>
  </table>
  
  <p align="center">
    <input name="sub" type="image" src="../../image/enregistrer13.jpg" width="100" height="20" border="0">


</form>
</boby>
</html>
la fentre appellé :

<?php 
session_start();
?>
<?php
include_once("../../connexion.php");
include_once("../../fonction.inc.php");

if (isset($_POST['nom']))
    $lib = $_POST['nom'];
else
    $lib = "";

accesAdd($lib);
header("Location: consult_acces.php");
?> 
la fenetre permettant d'inserer :
function accesAdd($lib) {
    mysql_query("insert into acces(num_acces, libelle_acces) values('', '$lib')");
}
voila j'ai quasiment la même chose pour mettre a jour et cela marche.

si vous pouvez m'aider sa serai vraiment cool. Je commence a être demoralisé!!!![/php]

Posté : 26 sept. 2006, 14:45
par jojolapine
et si tu rajoutait des or die(mysql_error()) après chaque appel à des fonctions mysql ?

Posté : 26 sept. 2006, 14:50
par steph78
Out of range value adjusted for column 'NUM_ACCES' at row 1.

Mais il est en numérotation automatique mon champ !, c'est bien un probleme a cause de ça ?

Posté : 26 sept. 2006, 14:56
par charabia
mysql_query("insert into acces(num_acces, libelle_acces) values(NULL, '$lib')");
Essaies ceci. Si je me souviens bien, une personne avait le même problème que toi. En mettant '' ça ne marchait pas pour l'ID auto-incrémenté.

A tester.

Posté : 26 sept. 2006, 15:02
par steph78
et bien ça marche.mais comme par hasard il y a des probleme que j'avais avant qui n'y était pu et qui sont revenu.Mais merci, je n'y aurai pas penser.

Posté : 26 sept. 2006, 15:07
par charabia
Il faut y aller à tâton alors...quel est le nouveau souci que tu as maintenant ?

Posté : 27 sept. 2006, 08:10
par steph78
Bonjour,

En faite pour que mes insertion marche il faudrai que je mette :
if (isset($_POST['champ1']))
    $champ1 = $_POST['champ1'];
else
    $champ1 = NULL; 
pour tous mes champ?En effet, je l'ai mis sur un autre endroit que l'identifiant acces et cela ne marche pas.
Es-ce que je dois faire cela que pour les identifiant auto, pour les champs en alphanumérique ="" et pour les champs numérique =0 ?

Merci