Page 1 sur 1

Probleme d'Update

Posté : 13 juin 2005, 15:27
par Peexy
Salut, j'ai un petit souci au niveau de la mise a jour d'une base de donnée, je vous donne le code, je pense que c'est au niveau du form, mais je ne suis pas trop sur donc je ne sais pas si quelqu'un pourra m'aider.


<?php
// connexion à la base
$db = mysql_connect('sql.free.fr', 'truc', 'truc')  or die('Erreur de connexion '.mysql_error());
// sélection de la base  
    mysql_select_db('dossier',$db)  or die('Erreur de selection '.mysql_error());



if($_GET['cat']=="")
	{
		echo "<table width='640' border='0' align='center' cellpadding='0' cellspacing='0' bordercolor='#FFFFFA'>
              <tr>
                <td><center><br><strong><font face=\"verdana\" color=\"#FF9933\" size=\"3\">Modification d'un Episode</font></strong><br><br>
Vous allez pouvoir ici, modifier l'un de vos dossier, attention aux 
petits malins qui essaye de s'amuser avec, il y aura sanction !<br><br>
		</tr></table>
		<table border='0' align='center' cellpadding='0' cellspacing='0' bordercolor='#FFFFFA'>
		<tr>
				
				<td width=\"300\" bgcolor=\"#FDEC79\" class=text><b>Dossier</b></td>
				<td width=\"150\" bgcolor=\"#FDEC79\" class=text><b>Redacteur</b></td>
				<td width=\"50\" bgcolor=\"#FDEC79\" class=text><b>Editer</b></td>
				
		</tr>";
		$requetebd = mysql_query("SELECT * FROM dossier ORDER BY titre") or die ($errormessage); 
			while($data=mysql_fetch_array($requetebd))
			{ 
			echo"
			<tr>
				
				<td width=\"300\" class=text>$data[titre]</td>
				<td width=\"150\" class=text>$data[redacteur]<img src=\"../image/site/ligne.gif\"></td>
				<td width=\"50\"><a href=\"?act=edit&cat=2&id=$data[id]\" class=text>Editer</a><img src=\"../image/site/ligne2.gif\"></td>
				
			</tr>
			
			";
			}
		echo'</center>
                               
              </table>';
	}
	else if($_GET['cat']=="2")
	{
	$requetebd = mysql_query("SELECT * from dossier where id='$id'") or die ($errormessage);
	$data=mysql_fetch_array($requetebd);
	$texte=nl2br($data[nom]);
	 ?>
	
              <tr>
                <td><div align="center"><br>
                  <br>
                    <strong><font face="verdana" color="#FF9933" size="3">Edition d'un dossier</font></strong><br>
                    <br>
				    <br>
				    <table border='0' align="center" cellspacing='0' cellpading='0'>
				      <tr><td width='387'><table>
					  <tr><td width="387">
					  
					
					  <form method="post" action="?act=edit&cat=edit&id=$id"> 
                        
						<fieldset>
<legend>En tête</legend>
						
bon ici il ya tout ce qui est (formulaire ed mofification ,pas de problèmes avec ça	

   <input type="submit" value="Modifier"> 

</div><br>
						
					  </form>

					  
					
					  </td>
					  </tr>
			      </table>
				  </td></tr></table><br>
				  <font face="verdana" size="1" color"red"><b><a href="../index2.php?page=configuration">Retour</a></b></font>
		                </div>
                <tr>
                  <td>                
              </table>
			<br>
	
	
	
	<?
	}
	else if($_GET['cat']=="edit")
	{

$lettre = $_POST['lettre'];
$redacteur = $_POST['redacteur'];
$titre = $_POST['titre'];
$logo = $_POST['logo'];
$histoire = $_POST['histoire'];
$nombio = $_POST['nombio'];
$bio = $_POST['bio'];
$auteur = $_POST['auteur'];
$editeur = $_POST['editeur'];
$collection = $_POST['collection'];
$annee = $_POST['annee'];
$theme = $_POST['theme'];
$prix = $_POST['prix'];
$nombre = $_POST['nombre'];
$licencie = $_POST['licencie'];
$avis = $_POST['avis'];
$analyse = $_POST['analyse'];
$nomdossier = $_POST['nomdossier'];


$image1 = $_POST['image1'];
$image2 = $_POST['image2'];
$image3 = $_POST['image3'];
$image4 = $_POST['image4'];
$image5 = $_POST['image5'];
$image6 = $_POST['image6'];


$nom1 = $_POST['nom1'];
$tof1 = $_POST['tof1'];
$desc1 = $_POST['desc1'];

$nom2 = $_POST['nom2'];
$tof2 = $_POST['tof2'];
$desc2 = $_POST['desc2'];

$nom3 = $_POST['nom3'];
$tof3 = $_POST['tof3'];
$desc3 = $_POST['desc3'];

$nom4 = $_POST['nom4'];
$tof4 = $_POST['tof4'];
$desc4 = $_POST['desc4'];

$nom5 = $_POST['nom5'];
$tof5 = $_POST['tof5'];
$desc5 = $_POST['desc5'];

$nom6 = $_POST['nom6'];
$tof6 = $_POST['tof6'];
$desc6 = $_POST['desc6'];

$nom7 = $_POST['nom7'];
$tof7 = $_POST['tof7'];
$desc7 = $_POST['desc7'];

$nom8 = $_POST['nom8'];
$tof8 = $_POST['tof8'];
$desc7 = $_POST['desc8'];

$nom9 = $_POST['nom9'];
$tof9 = $_POST['tof9'];
$desc9 = $_POST['desc9'];

$nom10 = $_POST['nom10'];
$tof10 = $_POST['tof10'];
$desc10 = $_POST['desc10'];
		
	 	
	
																	 
			mysql_query("Update dossier Set lettre='$lettre',redacteur='$redacteur',titre='$titre',logo='$logo',histoire='$histoire',nombio='$nombio',bio='$bio',auteur='$auteur',
editeur='$editeur',collection='$collection',annee='$annee',theme='$theme',prix='$prix',nombre='$nombre',licencie='$licencie',avis='$avis',analyse='$analyse',nom1='$nom1',tof1='$tof1',desc1='$desc1',
nom2='$nom2',tof2='$tof2',desc2='$desc2',nom3='$nom3',tof3='$tof3',desc3='$desc3',
nom4='$nom4',tof4='$tof4',desc4='$desc4',nom5='$nom5',tof5='$tof5',desc5='$desc5',nom6='$nom6',tof6='$tof6',desc6='$desc6',
nom7='$nom7',tof7='$tof7',desc7='$desc7',nom8='$nom8',tof8='$tof8',desc8='$desc8',
nom9='$nom9',tof9='$tof9',desc9='$desc9',nom10='$nom10',
tof10='$tof10',desc10='$desc10',nomdossier='$nomdossier',image1='$image1',image2='$image2',image3='$image3',
image4='$image4',
image5='$image5',image6='$image6' where id ='$id'") or die("Erreur MYSQL");
			
							
			echo "<div align=\"center\"><br><br><font color='green'><b>$titre</b></font> a bien été modifié.<br><br>
			Vous allez être redirigé vers les Editions de Dossier ...<br>Si votre navigateur ne vous redirige pas automatiquement 
			<a href=\"edit.php\" class=Link2>cliquez ici</a>.</div>
			<meta http-equiv=\"Refresh\" content=\"3;url=edit.php\">";
			
		}	
		

?> 
D'avance merci pour votre aide...

Posté : 13 juin 2005, 15:29
par zeus
Quelle erreur, qu'est-ce qui te fait dire ça, quel bout de code incriminé selon toi ?

Ta tartine de code n'est pas très encourageante à lire ...

Posté : 13 juin 2005, 15:58
par Peexy
Lol oui dsl je vais alléger tout ça, et bien ce qui me fais dire que cela ne fonctionne pas c'est que, oui il n'y a pas d'erreur SQl mais par contre la table n'est pas modifier ou updaté, donc c'est ça qui me fait dire que ça ne fonctionne pas

Posté : 13 juin 2005, 16:14
par ouckileou
désolé ça ne règlera pas le problème mais quand on voit :
nomN='$nomN',tofN='$tofN'
où N va de 1 à 10 onpeut se dire qu'il y a un petit problèm de conception dans la base... :roll:

Posté : 13 juin 2005, 16:15
par ouckileou
désolé ça ne règlera pas le problème mais quand on voit :
nomN='$nomN',tofN='$tofN'
où N va de 1 à 10 onpeut se dire qu'il y a un petit problèm de conception dans la base... :roll:
sinon st-ce que tu es déjà sûr que ton bout de code d'édition est exécuté ?
met un echo après ça sinon :
else if($_GET['cat']=="edit") 

Posté : 13 juin 2005, 16:19
par ouckileou
l'erreur pourrait venir d'ici :
  <form method="post" action="?act=edit&cat=edit&id=$id"> 
tu envoies avec la méthode $_POST et tu testes ensuite des $_GET
de plus, pas besoin d'écrire ceci : ?act=edit&cat=edit&id=$id"
tes variables sont automatiquemen envoyées par le formulaire

la bonne syntaxe serait :
  <form method="post" action="<?php echo $_SERVER['PH_SELF']; ?>"> 
en testant à la réception $_GET['variable'] ou $_POST['variable'] suivant la méthode choisie dans le formulaire


$_SERVER['PHP_SELF'] va renvoyer sur le script courant

Posté : 13 juin 2005, 17:32
par Peexy
hey man, je te remercie beaucoup, en fait l'erreur venez d'un echo="" en moins derrière else if($_GET['cat']=="edit") , mais je ne voix pas pourquoi je devais le mette celui ci puisque au bon ndroit je mettais les balises <?php ?>
Peut tu m'éclairais ?

Posté : 13 juin 2005, 17:35
par zeus
C'est quoiexactement ta dernière question ?

pourquoi est ce que tu doit mettre un echo, même si tu as mis un <?php ?> ? c'est ça ?

Posté : 13 juin 2005, 17:43
par ouckileou
oui j'ai rien compris non plus

si tu fais référence à l'echo que je t'ai suggéré de mettre, c'est simplement un echo de contrôle pour voir si tu rentres dans le bloc de code où tu es censé faire l'UPDATE

de ce genre là
else if($_GET['cat']=="edit") { 
   echo "Je suis dans le bloc de code de l'update";
}
si rien ne s'affiche c'est que tu ne rentres pas dedans, ce qui doit être le cas d'après ce que j'ai dit dans mon deuxième message