Bonjour,
J'ai une donnée 1:
ID=1, identifiant=20, lang='fr', tire='titre français', contenu='contenu français';
J'essaie de traduire en anglais. Je fais :
est ce que donnée dont l'identifiant est 20 et la lang est en existe?
si oui alors modifier
sinon alors le créer et l'ouvrir en modification
A la fin nous devrons avoir dans la table ceci :
Le problème, c'est qu'avec le code que vous verrez ci-dessous, le résultat me donne toujours ceci :ID=1, identifiant=20, lang='fr', tire='titre français', contenu='contenu français', photo='photo.jpg', statut='visible';
ID=2, identifiant=20, lang='en', tire='titre anglais', contenu='contenu anglais', photo='photo.jpg', statut='visible';
Peut-être mon algorithme mysql n'est pas bien et du coup je perd des variables pendant le traitement. Quel algorithme me conseillez-vous?ID=1, identifiant=20, lang='fr', tire='titre français', contenu='contenu français', photo='photo.jpg', statut='visible';
ID=2, identifiant=20, lang='en', tire='titre anglais', contenu='contenu anglais', photo=' ', statut=' ';
D'avance je vous remercie pour votre aide.
Code complet :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74 <?php $moncompteur = 0; $varID = $_GET['varID'];// identifiant commun exemple varID => FR = 20, varID => EN = 20 etc. $lang_traduit = $_GET['lang_traduit']; // ICI $lang_traduit = 'en'; //CREER LA PAGE anglaise du texte français SI ELLE EXIXTE PAS ENCORE if($moncompteur == 0) { $variableDeControle = "SELECT * FROM matable WHERE identifiant ='$varID' AND lang='$lang_traduit' "; $monchampSql = mysql_query($variableDeControle); $monTotal = mysql_num_rows($monchampSql); if($monTotal == 0) { $moncompteur += 1; $controleSql = "INSERT INTO matable(identifiant, lang)VALUES('$varID', '$lang_traduit')"; $linkQuery = mysql_query($controleSql); } }//Fin de controle et de création de la page //Nous sélectionnons les données de la langue par défaut à traduire $requete_original = "SELECT * FROM matable WHERE identifiant ='$varID' AND lang='fr' "; $champSql_original = mysql_query($requete_original); $donnee_orginal = mysql_fetch_assoc($champSql_original); //Nous sélectionnons la donnée à mettre à jour : nous voullons copier certains champs de la donnée FR vers la donnée EN $requete_traduit = "SELECT * FROM matable WHERE identifiant ='$varID' AND lang='$lang_traduit' "; $champSql_traduit = mysql_query($requete_traduit); $donnee_traduit = mysql_fetch_assoc($champSql_traduit); //Le formulaire $varialbe_formulaire = ' <form name="form1" method="POST" action="#"> <input name="titre" type="text" id="titre" value="'.$donnee_traduit['titre'].'"> <textarea name="contenu" id="contenu">'.$donnee_traduit['contenu'].'</textarea> <input name="lang" type="hidden" id="lang" value="'.$donnee_traduit['lang'].'"> <input name="ID" type="hidden" id="ID" value="'.$donnee_traduit['ID'].'"> <input name="photo" type="hidden" id="photo" value="'.$donnee_orginal['photo'].'"> <input name="statut" type="hidden" id="statut" value="'.$donnee_orginal['statut'].'"> <input name="valider" type="hidden" id="valider" value="modifier"> <input name="submit" type="submit" id="submit" value="Modifier" > '; //Traiter la réception des données issues du formulaire if( (isset($_POST['valider'])) &&($_POST['valider'] == 'modifier') ) { $titre = mysql_real_escape_string($_POST['titre']); $contenu = mysql_real_escape_string($_POST['contenu']); $photo = mysql_real_escape_string($_POST['photo']); $statut = mysql_real_escape_string($_POST['statut']); $lang = mysql_real_escape_string($_POST['lang']); $ID = $_POST['ID']; } //Ici nous mettons à jour la nouvelle donnée anglaise avec certains champs français copiés $sql = "UPDATE matable SET titre='$titre', contenu='$contenu',statut='$statut', photo='$photo' WHERE ID = '$ID'"; if(mysql_query($sql)) { //Si mise a jour réussie, on retourne sur la page actuelle pour actualiser les nouvelles données du formulaire. On affiche le texte : ça a marché header('Location: http://www.monsite.com/admin/traduire.php?varID=$ID&lang_traduit=$lang'); echo '<div>Traitement réussi</div><br />'; } else{ echo '<div>Traitement échoué</div><br />'; } echo $varialbe_formulaire; }//Fin de if isset post valider else { echo $varialbe_formulaire; } ?>
Partager