[RESOLU] probleme avec 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 : [RESOLU] probleme avec update

Re: probleme avec update

par asgardlegrand » 02 avr. 2019, 12:48

<?php

// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
require 'menu.php'
   
   ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/plainte_redaction.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
</head>

<body>

<?php
  include 'database.php';
global $db; 
// presence des donnees du formulaire
echo 'La nouvelle onde de '.$_POST['type'].' est : '.$_POST['onde'];
$type = $_POST['type'];
$onde = $_POST['onde'];

    if (isset($_POST['type'])  && isset($_POST['onde']))
    {
   $req="UPDATE radio SET onde = :onde WHERE type= :type";
  $exe = $db->prepare($req);
 
    $exe->bindparam(':type', $_POST['type']);
  $exe->bindparam(':onde', $_POST['onde']);
    // execute  query
    $exe->execute();
              
                        }
       
else {
  header('Location: formulaire.php');   

}
$exe->closeCursor();

?>
</body>
</html>

merci pour tout ca fonctionne

Re: probleme avec update

par Spols » 02 avr. 2019, 11:39

vas voir sur ce lien et suis les exemples
https://www.php.net/manual/fr/pdo.prepare.php

ta fermeture de curseur est encore sur ta requète plutot que sur ta connexion.

Re: probleme avec update

par asgardlegrand » 02 avr. 2019, 11:20

mise a jour des corrections
<?php

// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
session_start ();
span style="color: #808080; font-style: italic;">// Afficher les erreurs à l'écran
'display_errors', 1);
// Enregistrer les erreurs dans un fichier de log
'log_errors', 1);
// Nom du fichier qui enregistre les logs (attention aux droits à l'écriture)
'error_log''/log_error_php.txt');
// Afficher les erreurs et les avertissements
     
   ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/plainte_redaction.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
</head>

<body>

<?php
  include 'database.php';
global $db; 
// presence des donnees du formulaire
echo 'La nouvelle onde de '.$_POST['type'].' est : '.$_POST['onde'];
$type = $_POST['type'];
$onde = $_POST['onde'];

    if (isset($_POST['type'])  && isset($_POST['onde']))
    {
   $req="UPDATE radio SET onde = :onde WHERE type= :type";
	$exe = $db->prepare($req);
 
    $exe->(':type', $_POST['type']);
	$exe->(':onde', $_POST['onde']);
    // execute  query
    $exe->execute();
							
                        }
                 
                        
                    }
					$req->closeCursor();
  }
else {
  header('Location: formulaire.php');   

}

?>
</body>
</html>
tu me dis lors de ces remplacements il me manque un nom de fonction. Je ne saisi pas. en tout cas merci pour le temps que tu me consacre c''est trés appréciable.

Re: probleme avec update

par Spols » 02 avr. 2019, 10:39

c'est dèjà mieux, dans ton code précédent tu te contentais d'écrire ta requète.

si tu remploce :onde par $_POST['onde'], il te faut un :onde dans ta requète pas un $onde.
lors de ces remplacements, il te manque un nom de fonction

tu fais un execute sur $stmt alors que ta connexion et préparation de requète est sur $exe il te faut un peu d'harmonie.

et tu close ton curseur sur la chaine de ta requète ???

un affichage des erreur php et mysql te permettrais d'améliorer ton débuggage

Re: probleme avec update

par asgardlegrand » 02 avr. 2019, 10:10

j'ai essayé ca mais ca ne fonctionne toujours pas
<?php

// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
session_start ();

     
   ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/plainte_redaction.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
</head>

<body>

<?php
  include 'database.php';
global $db; 
// presence des donnees du formulaire
echo 'La nouvelle onde de '.$_POST['type'].' est : '.$_POST['onde'];
$type = $_POST['type'];
$onde = $_POST['onde'];

    if (isset($_POST['type'])  && isset($_POST['onde']))
    {
   $req="UPDATE radio SET onde = $onde WHERE type= :type";
	$exe = $db->prepare($req);
 
    $exe->(':type', $_POST['type']);
	$exe->(':onde', $_POST['onde']);
    // execute  query
    $stmt->execute();
							
                        }
                 
                        $req->closeCursor();
                    }
  }
else {
  header('Location: formulaire.php');   

}
?>
</body>
</html>

Re: probleme avec update

par asgardlegrand » 02 avr. 2019, 09:30

?? pourquoi je doit remplacer :type et l'executer
ma requete initial est de trouver dans ma table radio le type correspondant a mon formulaire et de changer dans sa ligne de donnée la valeur de la categorie onde issu du formulaire

le requete $db="UPDATE radio SET onde = $onde WHERE type= :type";
ne permet elle pas justement de modifier dans la table radio la valeur onde entrer dans le formulaire where le type du formulaire est identifié dans la table radio?

Re: probleme avec update

par Spols » 02 avr. 2019, 07:56

$db='UPDATE radio SET onde = $onde WHERE type= :type';

si tu inclu des variable php dans une chaine, il faut soit les sortir de la chaine soit utiliser des double quotes "

$db='UPDATE radio SET onde = ' . $onde . ' WHERE type= :type';
OU
$db="UPDATE radio SET onde = $onde WHERE type= :type";

ensuite il faut faire quelque chose avec ta requète, remplacer :type et l'éxécuter.

PS utilise la même méthode pour insérer onde et type dans ta requète.

probleme avec update

par asgardlegrand » 01 avr. 2019, 21:40

bonjour je cherche a modifier la valeur d'une onde radio qui figure dans la base de donnée en fonction d'une certaine catégorie
ma base de donnée qui se nomme radio possede 3 catégories ( id, type et onde) , la catégorie type est fixé sur la table. je cherche par le biais d'un formulaire a modifier la valeur onde en fonction de la catégorie definie type.
ma page formulaire est :
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/plainte_redaction.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
</head>

<body>
<?php

// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
session_start ();


// On récupère nos variables de session
if ($_SESSION['group'] == 1 XOR $_SESSION['group'] == 2 XOR $_SESSION['group'] == 3 XOR $_SESSION['group'] == 4) {

 require 'menu.php'; ?>

<form method="post" action="modif_formulaire.php">
    <h1>modification radio</h1>
			
	<select name="type" id="type" required>
       <option value="central">central</option>
       <option value="Patrouille ville">Patrouille ville</option>
	   <option value="Patrouille nord">Patrouille nord</option>
       
   </select>
	<input type="text" name="onde" id="onde" placeholder="onde" required></br>
	<input type="submit" name="valider" id="valider">
</form>

<?php 
}
else {
	echo'<p>la radio 1 a ete modifie avec succes</p>';
}
?>

</body>

</html>
ma page de modification est :
<?php

// On démarre la session (ceci est indispensable dans toutes les pages de notre section membre)
session_start ();

     
	 ?>
<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <link rel="stylesheet" type="text/css" href="css/plainte_redaction.css">
  <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css">
</head>

<body>

<?php
  include 'database.php';
global $db; 
// presence des donnees du formulaire
echo 'La nouvelle onde de '.$_POST['type'].' est : '.$_POST['onde'];
$type = $_POST['type'];
$onde = $_POST['onde'];

    if (isset($_POST['type'])  && isset($_POST['onde']))
		{
   $db='UPDATE radio SET onde = $onde WHERE type= :type';
   
	}
else {
	header('Location: formulaire.php');   

}
?>
</body>
</html>
je débute un peu et la je ne vois plus de solution.
ca m'indique bien que les variable du formulaire sont déclarés mais ensuite je peche un peu la.