probleme dans l'utilisation de idUnique et UPDATE.....

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme dans l'utilisation de idUnique et UPDATE.....

par nanar » 25 août 2006, 18:47

À consulter AVANT de poster

À méditer Whistle
C'est juste... sauf que quand on débute vraiment, par ses propre moyen, il est vraiment dur de savoir ou, et surtout quoi chercher...

Par exemple,
Ma signature => FAQ puis "Pré-positionner une liste déroulante"
j'avais fait un tour dans les FAQ, mais je n'avais pas trouvé ma soluce... et je n'avais aucune idée des termes à chercher pour décrire ce que je veux faire... bref tout ça pour dire que je ne suit pas feignant, je veux bien chercher, mais c quand même pas mal d'être un tant soit peu orienté !

Merci donc de m'avoir orienté :wink:

par ouckileou » 25 août 2006, 18:17

Ma parole, mais tout se trouve finalement dans ta signature :shock:
On peut voir ça comme ça. 8)

Sinon c'est peut-être que ma signature pointe vers tous les trucs qui contiennent beaucoup d'infos sur des sujets qui reviennent très fréquemment. :roll:
À consulter AVANT de poster
À méditer :-*

par nanar » 25 août 2006, 18:13

Ma parole, mais tout se trouve finalement dans ta signature :shock:

Merci pour l'info, tout à l'air de rouler !

:D @+

par ouckileou » 25 août 2006, 17:08

Ma signature => FAQ puis "Pré-positionner une liste déroulante" 8)

par nanar » 25 août 2006, 16:47

Effectivement, celà m'a aidé... merci ouckileou :wink:

Par contre, comment fait on pour modifier la valeur selected d'un déroulant en fonction de la base de donnée???

Je m'explique :

j'ai fais ce tableau qui m'affiche le contenu de ma table et qui ajoute pour chaque fin de ligne deux déroulants (qui correspondent à des infos qui doivent être données par l'administrateur traitant le tableau), un champ texte (commentaires de l'administrateur), et un bouton valider. La mise à jour de la base au clic sur valider fonctionne bien, mais par contre je ne sais pas comment faire pour faire en sorte que mes déroulants, si la ligne a été modifiée par l'administrateur, aient la bonne valeur selectionnée... Pour l'instant, lorsque je vais sur ma page, les valeurs affichées par les déroulants sont les valeurs selectionnées par défaut...

Merci d'avance pour le coup de pouce :)

if($total) {
    // début du tableau
    	echo '<table bgcolor="#FFFFFF">'."\n";
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>Structure</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Département</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom du contact</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Téléphone du contact</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Style de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date souhaité de réception</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Commentaires</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date de la demande</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Informatique & Liberté</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Etat du traitement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Commentaires Coop</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom de l\'opération</u></b></td>';
		echo '<td bgcolor="#669999"></td>';
        echo '</tr>'."\n";
    // lecture et affichage des résultats en colonnes, 1 résultat par ligne.    
    while($row = mysql_fetch_array($result)) {
        echo '<form action="_valid_coop.php" method="post" name="retour_coop"><tr>'; 
        echo '<td bgcolor="#CCCCCC">'.$row['nom_structure'].'<input type="hidden" 
name="idUnique" id="idUnique" value="'.$row['idUnique'].'"></td>';
		echo '<td bgcolor="#CCCCCC">'.$row['nom_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['departement'].'</td>';
		echo '<td bgcolor="#CCCCCC"><a href="mailto:'.$row['email_contact'].'">'.$row['nom_contact'].'</a></td>';
		echo '<td bgcolor="#CCCCCC">'.$row['telephone'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['style_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['date_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['date_reception'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['commentaires'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['dateenvoi'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['informatique_liberte'].'</td>';
		echo '<td bgcolor="#CCCCCC"><select name="etat_traitement" id="etat_traitement">
<option selected="selected">A traiter</option><option>Accepté</option><option>Refusé</option></td>';
		echo '<td bgcolor="#CCCCCC"><textarea name="commentaires_coop" id="commentaires_coop" 
cols="30" rows="3">'.$row['commentaires_coop'].'</textarea></td>';
		echo '<td bgcolor="#CCCCCC"><select name="nom_ope" id="nom_ope">
<option selected="selected">Sergent Garcia</option><option>Zguen de Zguen</option></td>';
		echo '<td bgcolor="#CCCCCC"><input name="Valider" type="submit" value="Valider"></td>';
		echo '</tr></form>'."\n";
    }
    echo '</table>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

par nanar » 25 août 2006, 12:17

Merci, je regarde....

par ouckileou » 25 août 2006, 12:09

D'abord voir le topic : "débugger du SQL dans PHP" dans ma signature

par nanar » 25 août 2006, 11:45

:? Personne pour m'aider ?...

par nanar » 24 août 2006, 18:42

:oops: Désolé, c'est arrangé, l'affichage est beaucoup mieux...

par ouckileou » 24 août 2006, 18:24

Il faudrait couper les lignes trop longues, sinon ça pourri la mise en forme du forum et surtout c'est relou à lire :o

Merci :merci:

probleme dans l'utilisation de idUnique et UPDATE.....

par nanar » 24 août 2006, 17:52

Bonjour,

J’ai réalisé un questionnaire html dont je stocke les résultats dans une table.
J’affiche ces résultats sous forme de tableau dans une page que j’appelle _resultat.php.

Pour chaque ligne affichée, j’ajoute 4 colonnes :

-2 déroulants
-1 champ texte
-1 bouton « valider »

Le but est de permettre à un administrateur de mettre à jour la base de données en indiquant pour chaque ligne :

- l’état de traitement (A traiter, Accepté ou Refusé),
- des commentaires,
- l’opération à laquelle se rapporte la demande

Etant donnée que je créé un idUnique pour chaque demande, je pense que la meilleure solution consiste à récupérer cet idUnique pour savoir quelle ligne mettre à jour… Mais malgré mes tests et recherches, je fais choux blanc… :( pas d’erreur, mais la base n’est pas mise à jour…

J’espère avoir été clair dans l’explication du problème.
Merci d'avance de toute l'aide que vous pourrez m'apporter

PS : je débute en PHP, merci de votre indulgence si le boulettes sont trop énormes :oops:

Voici les différents codes

:!: Page _valid.php (qui traite le questionnaire) :
<?
// récupération des données du formulaire et vérification

$nom_structure = $_POST['nom_structure'];
$nom_evenement = $_POST['nom_evenement'];
$departement = $_POST['departement'];
$nom_contact = $_POST['nom_contact'];
$email_contact = $_POST['email_contact'];
$telephone = $_POST['telephone'];
$style_evenement = $_POST['style_evenement'];
$date_evenement = $_POST['date_evenement'];
$date_reception = $_POST['date_reception'];
$commentaires = $_POST['commentaires'];
$dateenvoi = $_POST['dateenvoi'];
$informatique_liberte = $_POST['informatique_liberte'];
$from_email = "$email_contact";
$entetedate = date("D, j M Y H:i:s -0600"); // avec offset horaire
$entetemail = "From: $from_email \n"; // Adresse expéditeur
$entetemail .= "Cc: \n";
$entetemail .= "Bcc: \n"; // Copies cachées
$entetemail .= "Reply-To: $from_email \n"; // Adresse de retour
$entetemail .= "X-Mailer: PHP/" . phpversion() . "\n" ;
$entetemail .= "Date: $entetedate";

// Génération d'un identifiant unique

  function idUnique($len) {

  $theTVAintra = null;

  $salt = "..............................................................";

  srand((double)microtime()*1000000);

  $i = 1;

  while ($i <= $len) {

  $num = rand() % strlen( $salt );

  $tmp = substr( $salt, $num, 1 );

  $theTVAintra = $theTVAintra . $tmp;

  $i++;

  }

  return $theTVAintra;

  }



// on génère un id unique de 10 caractères



  $idUnique = idUnique( 10 );




// connexion à la base de donnée


$base='ma_base';
$login='mon_login';
$pwd='mon_pass';
$db=mysql_connect("mon_hôte", $login, $pwd);

if(!$db){
print "erreur connection $db<br>";
exit;
}

// on choisit la bonne base
if(!mysql_select_db($base,$db)){
print "erreur ".mysql_error()."<br>";
mysql_close($db);
exit;
}

// on créer la requête SQL, pour ensuite l'envoyer


$requete = "INSERT INTO operation001 (idUnique , nom_structure , nom_evenement , departement , nom_contact , 
email_contact , telephone , style_evenement ,date_evenement, 
date_reception , commentaires , dateenvoi , informatique_liberte) 
VALUES ('$idUnique' , '$nom_structure' ,  '$nom_evenement' , 
'$departement' , '$nom_contact' , '$email_contact' , '$telephone'
 , '$style_evenement' , '$date_evenement' , '$date_reception' , 
'$commentaires' , '$dateenvoi' , '$informatique_liberte')";

// Exécution de la requête

$rs = mysql_query( $requete, $db );



// fermeture de la connexion vers Mysql
mysql_close(); 
 
?>

:!:Page _resultat.php (qui affiche les résultats) :
<?php
$idUnique = $_POST['idUnique'];
$etat_traitement = $_POST['etat_traitement'];
$commentaires_coop = $_POST['commentaires_coop'];
$nom_ope = $_POST['nom_ope'];

// information pour la connection à le DB
$host = 'mon_hote';
$user = 'mon_login';
$pass = 'mon_pass';
$db = 'ma_base';

// connection à la DB
$link = mysql_connect ($host,$user,$pass) or die ('Erreur : '.mysql_error() );
mysql_select_db($db) or die ('Erreur :'.mysql_error());

// requête SQL qui compte le nombre total d'enregistrements dans la table et qui
//récupère tous les enregistrements
$select = 'SELECT * FROM operation001';
$result = mysql_query($select,$link) or die ('Erreur : '.mysql_error() );
$total = mysql_num_rows($result);


// si on récupère un résultat on l'affiche.
if($total) {
    // début du tableau
    echo '<form action="_valid_coop.php" method="post" name="retour_coop">'."\n";
	echo '<table bgcolor="#FFFFFF">'."\n";
        // première ligne on affiche les titres 
        echo '<tr>';
        echo '<td bgcolor="#669999"><b><u>Identifiant Demande</u></b></td>';
        echo '<td bgcolor="#669999"><b><u>Nom de la structure</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Département</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom du contact</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Email du contact</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Téléphone du contact</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Style de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date de l\'évènement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date souhaité de réception</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Commentaires</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Date de la demande</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Informatique & Liberté</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Etat du traitement</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Commentaires Coop</u></b></td>';
		echo '<td bgcolor="#669999"><b><u>Nom de l\'opération</u></b></td>';
		echo '<td bgcolor="#669999"></td>';
        echo '</tr>'."\n";
    // lecture et affichage des résultats en colonnes.    
    while($row = mysql_fetch_array($result)) {
        echo '<tr>';
        echo '<td bgcolor="#CCCCCC">'.$row['idUnique'].'</td>';
        echo '<td bgcolor="#CCCCCC">'.$row['nom_structure'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['nom_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['departement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['nom_contact'].'</td>';
		echo '<td bgcolor="#CCCCCC"><a href="mailto:'.$row['email_contact'].'">'.$row['email_contact'].'</a></td>';
		echo '<td bgcolor="#CCCCCC">'.$row['telephone'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['style_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['date_evenement'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['date_reception'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['commentaires'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['dateenvoi'].'</td>';
		echo '<td bgcolor="#CCCCCC">'.$row['informatique_liberte'].'</td>';
		echo '<td bgcolor="#CCCCCC"><select name="etat_traitement" id="etat_traitement">
<option selected="selected">A traiter</option><option>Accepté</option><option>Refusé</option></td>';
		echo '<td bgcolor="#CCCCCC">
<textarea name="commentaires_coop" id="commentaires_coop" cols="30" rows="3"></textarea></td>';
		echo '<td bgcolor="#CCCCCC"><select name="nom_ope" id="nom_ope">
<option selected="selected">Sergent Garcia</option><option>Zguen de Zguen</option></td>';
		echo '<td bgcolor="#CCCCCC"><input name="Valider" type="submit" value="Valider"></td>';
		echo '</tr>'."\n";
    }
    echo '</table>'."\n";
	echo '</form>'."\n";
    // fin du tableau.
}
else echo 'Pas d\'enregistrements dans cette table...';

 
// on libère le résultat
mysql_free_result($result);

?>
:!: Page _valid_coop.php (qui devrais traiter les infos mise à jour dans _resultat.php par l’administrateur) :


<?
$idUnique = $_POST['idUnique'];
$etat_traitement = $_POST['etat_traitement'];
$commentaires_coop = $_POST['commentaires_coop'];
$nom_ope = $_POST['nom_ope'];

// connexion à la base de donnée


$base='ma_base';
$login='mon_login';
$pwd='mon_pass';
$db=mysql_connect("mon_hote", $login, $pwd);

if(!$db){
print "erreur connection $db<br>";
exit;
}

// on choisit la bonne base
if(!mysql_select_db($base,$db)){
print "erreur ".mysql_error()."<br>";
mysql_close($db);
exit;
}

// on créer la requête SQL, pour ensuite l'envoyer
$requete = 'UPDATE operation001
  SET etat_traitement = "'.$etat_traitement.'", commentaires_coop = "'.$commentaires_coop.'", 
nom_ope = "'.$nom_ope.'"  WHERE idUnique = "'.$idUnique;


// Exécution de la requête

$rs = mysql_query( $requete, $db );

header('location: _resultat.php'); 

?>