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 :
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';
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=' ', statut=' ';
Peut-être mon algorithme mysql n'est pas bien et du coup je perd des variables pendant le traitement. Quel algorithme me conseillez-vous?
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;
}
?>