[RESOLU] BDD update d'un texte en ligne

Eléphanteau du PHP | 24 Messages

18 nov. 2015, 08:50

Bonjour à tous.
J'ai appris à faire un update pour modifier une donnée, par ex. remplacer "oui" par "non" ou 12 par 18. Donc le update est préparé pour une certaine "chose".
Est-il possible avec le duo php-sql de modifier "en ligne" un texte, par ex. une tournure de phrase sans aller dans modification dans PHPadmin ? J'ai déjà vu ça dans certain site.
Merci de vos réponses.
cordialement.

ViPHP
ViPHP | 2577 Messages

18 nov. 2015, 11:13

Oui, de la même façon que pour remplacer 'OUI' par 'NON' en utilisant la colonne correspondante au texte.

Eléphanteau du PHP | 24 Messages

18 nov. 2015, 13:16

Merci pour ta réponse Mazarini mais je suppose que tu veux dire "Modification dans PHPMyadmin" . Ma question est : modification en ligne" pour des personnes n'ayant pas accès à la BDD. ça ce fait, mais comment ? Je viens de penser à q.q chose en mettant "Prévisualiser" avant d'envoyer ma réponse, là par exemple on pourrais modifier sa réponse, apparamment ça ne se fait pas. c'est ce que je voudrais !!

ViPHP
ViPHP | 2577 Messages

18 nov. 2015, 14:01

Je pensais que tu modifiais OUI en NON autrement que par phpmyadmin.
Pour ce que tu veux faire, Regardes les fonction de mysqli ou pdo dans la doc php.
Une fonction pour exécuter une requete est par exemple mysqli_query, mais il faut d'abord se connecter au serveur et sélectionner la base de donnée (mysqli_connect).

Eléphanteau du PHP | 24 Messages

18 nov. 2015, 15:52

Je sais faire une update mais je voudrais faire des modifications sur un texte que j'ai sorti de la BDD par une requête. Actuellement ce n'est pas possible par la méthode que j'ai apprise, ça existe pourtant!!!

ViPHP
ViPHP | 2577 Messages

18 nov. 2015, 16:18

Montres ce qui ne marche pas en indiquant l'erreur (mysqli_error() par exemple). Peut être que l'on pourra t'aider.

Eléphanteau du PHP | 24 Messages

18 nov. 2015, 20:34

Je n'ai pas d'erreur, voici une petite requête update qui fonctionne, je l'ai essayé.
Le formulaire
<?php include("../header.php"); ?>

 <form action="modif_contrat.php" method="POST">
        <p>
	<label for="num">Numéro</label> : <input type="text" name="num" num="num" /><br />
        
    <label for="nvdesignation">nouvelle designation</label>:<input type="text" name="nvdesignation"  $nvdesignation="nvdesignation" /><br /><br />                                                                                                                                      
    <input type="submit" value="Valider" />
    </p>
    </form>  
	</body>
</html>
puis la requête
<?php include("../header.php"); ?>

<?php include("../connect_wamp.php"); ?>

<?php
$update = $bdd->prepare('UPDATE contrat SET designation = :nvdesignation WHERE num = :num');
$update->execute(array(
	':nvdesignation' => $_POST['nvdesignation'],
	':num' => $_POST['num']));
echo 'Les modifications ont bien été faites !';
?>
</body>
</html>
Si le texte est long, la personne qui n'a pas accès à la BDD ne sait pas exactement (même si c'est elle qui la rentré) où faire sa modif. Il faut tout retaper, enfin avec la méthode que j'utilise, c'est ce que je veux savoir, est-il possible de faire une correction lorsque tout le texte sortant d'un update est affiché ? et comment faire ? ça existe, je l'ai déjà vu et utilisé dans un site de location de vacances.
Merci de vos réponses.

Mammouth du PHP | 2703 Messages

18 nov. 2015, 21:38

avant d'afficher le formulaire, il faut faire une requete select pour récupérer la désignation du contrat, afin de mettre une valeur dans
<input type="text" name="nvdesignation" value="<?php echo ...; ?>" />

Eléphanteau du PHP | 24 Messages

18 nov. 2015, 23:42

Merci de ta réponse or1 .
Bien sur ça fonctionne (mais il ne faut pas mettre <?php et ?> ) mais ceci implique que l'utilisateur x ou y puisse avoir accès à la requête, ce qui n'est pas le cas. Et si il y a une grande page ?
Cordialement.

Eléphanteau du PHP | 24 Messages

19 nov. 2015, 00:03

C'est encore moi or1 .
J'ai dit une bêtise dans mon dernier message. Il suffit simplement de mettre la désignation récupérée dans la fenêtre " nouvelle désignation". Pas besoin d'avoir accès à la requête. ça répond partiellement à mon problème MAIS il doit y avoir une autre solution, je l'ai déjà vécu, peut être pas avec php et sql mais avec un autre langage ou des scripts. Le sujet reste ouvert.