Page 1 sur 1

Problème d'insert en double

Posté : 20 août 2007, 16:52
par bandenklap
Hello,

Me revoila avec une seconde question, j'ai un petit problème sur un second script. Je m'explique :
Je cherche simplement à effectuer un Insert dans ma table. Jusque la, tout va bien, mon Insert fonctionne parfaitement. Le seul problème est que mon insert insère en table 2 lignes : une ligne avec les données que je lui ai indiqué, et une seconde vide.

Ci dessous mon code :
<html>
<head>
<link rel="stylesheet" href="CSS/style.css"> 
<title>Gestion des partenaires</title>
</head>




<BODY BGCOLOR="#333333">
<form method="post" action="veriflien.php">

	<TABLE WIDTH="90%" HEIGHT="20%" ALIGN="CENTER" BORDER="0">
		<TR>
			<TD COLSPAN="3"><?php include 'interfaces/header.php';?></TD>
		</TR>
	</TABLE>
		
	<TABLE ALIGN="CENTER" WIDTH="90%" BORDER="0">
		<TR><IMG SRC="Images/00.gif" HEIGHT="10px"></TR>

		<TR>
			<TD ROWSPAN="5" COLSPAN="2"WIDTH="20%" VALIGN="TOP" CLASS="TITLE"><B><?php include 'interfaces/menu.php';?></B></TD>
			<TD COLSPAN="3" CLASS="TITLE" ALIGN="CENTER">

		<TABLE BORDER="1" WIDTH="100%" ALIGN="CENTER">
			
			</TR>
				<TD ALIGN="CENTER" CLASS="titrebox"><B>ID</B></TD>
				<TD ALIGN="CENTER" CLASS="titrebox"><B>Nom du site</B></TD>
				<TD ALIGN="CENTER" CLASS="titrebox"><B>Description</B></TD>
				<TD ALIGN="CENTER" CLASS="titrebox"><B>Image</B></TD>
				<TD ALIGN="CENTER" CLASS="titrebox"><B>Lien</B></TD>
			</TR>
			

<?php			
	
$connexion = mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db('BLOG') or die(mysql_error());
$req = mysql_query("SELECT * FROM partenaires ORDER BY ID DESC") or die(mysql_error());

// on va scanner tous les tuples un par un  
while ($data = mysql_fetch_array($req)) { 
       // on affiche les résultats 
?>

			</TR>
				<TD ALIGN="CENTER" WIDTH="10%"><?php echo $data['ID']; ?></TD>
				<TD ALIGN="CENTER" CLASS="titrebox"><a href="<?php echo $data['LINK']; ?>" TARGET="_BLANK"><B><?php echo $data['nom']; ?></B></a></TD>
				<TD ALIGN="CENTER"><?php echo $data['description']; ?></TD>
				<TD ALIGN="CENTER" HEIGHT="20px"><IMG SRC="<?php echo $data['IMG_ID']; ?>"></TD>
				<TD ALIGN="CENTER" HEIGHT="20px"><?php echo $data['LINK']; ?></TD>
			</TR>			
<?php
}
?>
			
			</TD>
		</TR>
		<TR>
		<TD HEIGHT="15px" COLSPAN="5"><IMG SRC="Images/00.gif"></TD>
		</TR>



			</TR>
				<TD CLASS="titrebox" ALIGN="CENTER"><B>Ajouter</B></TD>
				<TD CLASS="titrebox"><input type="text" name="nom"></TD>
				<TD CLASS="titrebox"><input type="text" name="description" STYLE="WIDTH:100%"></TD>
				<TD CLASS="titrebox"><input type="text" name="image"></TD>
				<TD CLASS="titrebox"><input type="text" name="lien" STYLE="WIDTH:100%"></TD>
			</TR>
			
			<TR>
				<TD ALIGN="RIGHT" COLSPAN="5"><input type="submit" value="Ajouter"></TD>
			</TR>		
</TABLE>






</form>

</body>
</html>
Merci de votre aide, je dois avouer que jue bloque une fois de plus... ;D

A plus

Posté : 20 août 2007, 17:44
par jojolapine
Bonjour,
je ne vois nul part dans ton code de requête INSERT... C'est normal?
Je pense qu'il nous manque un bout de code pour pouvoir t'aider...

Posté : 20 août 2007, 17:50
par bandenklap
Oups, autant pour moi, ce n'est pas le bon script...

Voici le script correct.
<?php
  $connexion = mysql_connect("localhost","root","") or die(mysql_error());
  mysql_select_db('BLOG') or die(mysql_error());

	$nom = addslashes($_POST['nom']);
	$description = addslashes($_POST['description']);
	$IMG_ID = addslashes($_POST['image']);
	$LINK = addslashes($_POST['lien']);

  $req="INSERT INTO partenaires (ID, nom, description, IMG_ID, LINK) VALUES('', '$nom', '$description', '$IMG_ID', '$LINK')";
  mysql_query($req) or die(mysql_error()); 
  
  require "partenaires.php";

?>
Merci par avance...

Posté : 20 août 2007, 17:54
par jojolapine
Il faudrait nous donner les différents fichiers suivants:
Le formulaire, et le fichier partenaires.php... des fois que :-k

Posté : 20 août 2007, 18:04
par Invité
En fait, le formulaiure est intégré dans le premier script.
Ensuite, une fois les valeurs iontégrées, le script lance veriflien.php qui est le second script que j'ai intégré dans mon second message.

Est ce que cela te suffit?

Posté : 20 août 2007, 18:40
par Vikchill
Je sais pas si c'est ça a un lien, mais corrige-le tout de même: tu ouvres trois <table> et tu n'en fermes que deux.

Sinon tu as regardé dans ta base que chaque insertion ne se fait bien qu'une seule fois? Et que tu n'as pas d'enregistrement vide?

Posté : 20 août 2007, 19:13
par bandenklap
Merci pour les tables, en effet, j'ai oublié d'en refermer une...

En ce qui concerne ta question sur ma base, le problème est que j'ai bien 2 enregistrements quand je souhaite en enregistrer juste un. De plus, j'ai l'impression qu'à chaque fois que je me copnnecte sur la page, un enregistrement s'effectue sans raffraîchissement de la page, un truc du genre "auto post"... ;D

Bizare...

Posté : 20 août 2007, 19:26
par Vikchill
Bah si tu raffraichis oui, il va relancer le script et réécrire une ligne dans ta table.... Vu que la structure de ta table doit le permettre.

Par contre si ça te le fait systématiquement, même sans raffraîchir ta page, c'est forcément qu'à endroit tu relances ta requête... comme le suggère jojolapine :) MySQL est parfois taquin, mais pas au point de faire deux INSERT au lieu d'un seul :mrgreen:

Posté : 21 août 2007, 10:50
par Invité
OK, merci du conseil.
Je vais essayer une fois de plus de trouver l'erreur dans mes scripts.

Bonne journée