Php/mysql recuperer resultat formulaire

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 : Php/mysql recuperer resultat formulaire

par guilt92 » 27 févr. 2009, 14:42

Il faut que tu enlèves ces sauts de lignes...
$sql3= "UPDATE contenu SET artiste='".$_POST['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference ='".$_POST['reference']."'" ; 
Si tu veux le faire sur plusieurs lignes tu peux utiliser la concaténation avec .=

Exemple :

Il faut que tu enlèves ces sauts de lignes...
$sql3= "UPDATE contenu SET artiste='".$_POST['artiste']."'",;
$sql3.=" album='".$_POST['album']."',format='".$_POST['format']."'";
$sql3 .=" WHERE reference ='".$_POST['reference']."'" ; 

par stefanelle » 26 févr. 2009, 18:17

le select fonctionne mais j au un souci avec mon update
il maffiche une page blanche :(

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Catalogue</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body link="#000000" vlink="#FFFFFF" alink="#FFFFFF"> <div id="body"> <?php include ('config.php'); include ('connexion.php'); //reference $reference = $_POST["reference"]; $sql = "SELECT reference, artiste, album, format FROM contenu WHERE reference='".$_GET['reference']."'" ; $req = mysql_query($sql) or die( mysql_error() ) ; $total = mysql_num_rows($req); if($total!=0) { echo '<form method ="post" action="modifier.php">'; echo '<table>'."\n"; echo '<tr>'; echo '<td ><b><u>reference</u></b></td>'; echo '<td><b><u>artiste</u></b></td>'; echo '<td><b><u>album</u></b></td>'; echo '<td><b><u>format</u></b></td>'; echo '</tr>'."\n"; while($row = mysql_fetch_array($req)) { echo '<tr>'; echo '<td><input type="text" name="reference" value="'.$row["reference"].'"/></td>'; echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>'; echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>'; echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; echo '<input type="submit" name="btOk" value="Modifier"/>'; echo '</form>'; if (isset($_POST['btOk'])) { $sql3= "UPDATE contenu SET artiste='".$_POST ['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference ='".$_POST['reference']."'" ; $req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error()); if($req3) { echo ("L'insertion a été correctement effectuée") ; } else { echo("L'insertion à échouée") ; } } } ?> </body></html> <?php mysql_close(); ?>

par guilt92 » 26 févr. 2009, 17:29

Euh ca doit pas etre le bon bout de code parce que je vois pas de "SELECT * ...." dans ton code...

Sinon aussi propage le if à ta requete pke sinon si le $_GET est vide il va quand meme essayer de faire la requete.... un truc du style :
if(isset($_GET["reference"])) 
	{
	$ref = mysql_real_escape_string($_GET["reference"]);
	$sql = "SELECT reference, artiste, album, format FROM contenu WHERE reference = ".$ref; 
	$req = mysql_query($sql) or die( mysql_error() ) ; 
	$total = mysql_num_rows($req); 
	//la suite de ton code
	} 
else echo "Erreur"; 

par stefanelle » 26 févr. 2009, 16:53

ca marche nickel merci :)

par contre juste un petit souci je fais mon select et il m indique une erreur j ai mis un echo devant le $sql et voila ce qu il m'indique

disco2007SELECT * FROM label INNER JOIN contenu ON contenu.id_label = label.id_label Where reference = disco2007Unknown column 'disco2007' in 'where clause'

et voila le code


Code : Tout sélectionner

<?php include ('config.php'); include ('connexion.php'); //reference $reference = $_POST["reference"]; if(isset($_GET["reference"])) echo $_GET["reference"]; else echo "Pas de variable"; echo $sql = "SELECT reference, artiste, album, format FROM contenu WHERE reference = ".$_GET["reference"]; $req = mysql_query($sql) or die( mysql_error() ) ; $total = mysql_num_rows($req); if($total!=0) { echo '<form method ="post" action="modif2.php">'; echo '<table>'."\n"; echo '<tr>'; echo '<td ><b><u>reference</u></b></td>'; echo '<td><b><u>artiste</u></b></td>'; echo '<td><b><u>album</u></b></td>'; echo '<td><b><u>format</u></b></td>'; echo '</tr>'."\n"; while($row = mysql_fetch_array($req1)) { echo '<tr>'; echo '<td><input type="text" name="reference" value="'.$row ["reference"].'"/></td>'; echo '<td><input type="text" name="artiste" value="'.$row["artiste"].'"/></td>'; echo '<td><input type="text" name="album" value="'.$row["album"].'"/></td>'; echo '<td><input type="text" name="format" value="'.$row["format"].'"/></td>'; echo '</tr>'."\n"; } echo '</table>'."\n"; echo '<input type="submit" name="btOk" value="Modifier!"/>'; echo '</form>'; if (isset($_POST['btOk'])) { $sql3= "UPDATE contenu SET reference='".$_POST['reference']."',artiste='".$_POST ['artiste']."',album='".$_POST['album']."',format='".$_POST['format']."' WHERE reference ='".$reference."'"; $req3= mysql_query($sql3) or die('Erreur SQL !'.$sql2.'<br>'.mysql_error()); if($req3) { echo ("L'insertion a été correctement effectuée") ; } else

par guilt92 » 26 févr. 2009, 15:47

Il te suffit de créer un fichier "modifier.php".

Apres dans les url tu spécifies les parametre que tu veux, mais c'est pas dans le nom de fichier.

Si tu as un fichier "modifier.php" dans lequel tu mets :
<?php
if(isset($_GET["variable1"])) echo $_GET["variable1"];
else echo "Pas de variable";
?>
Ensuite dans l'URL tu tappes :

modifier.php
ou
modifier.php?variable1=hello

tu verras la différence ;)

par stefanelle » 26 févr. 2009, 15:37

merci pour ta reponse c est bien ce qui me semblait

par contre j ai un souci avec l url car si je veux creer un fichier modifier.php?reference='.$resultat

['reference'].'.php il me dit que ce n ets pas possible a cause des caracteres y a til un moyen d eviter cela ?

Merci

par guilt92 » 26 févr. 2009, 15:10

Bonjour,

D'après ton script tu crées un lien du type :
echo '<td><a href="formulaire_de_mise_a_jour.php?reference='.$resultat['reference'].'">Modifier</a></td>';
Ceci est donc différent pour chaque entrée (à supposer que référence soit une valeur unique, sinon ca marchera pas...)

Ainsi dans ta page "formulaire_de_mise_a_jour il te suffit d'utiliser $_GET["reference"] et de faire un select en base avec un "WHERE reference = ".$_GET["reference"] par exemple pour avoir les bonnes infos.

Attention à utiliser des fonctions de protection (mysql_real_escape_string()) et bien vérifier que tu as des résultats (mysql_num_rows() par exemple) car la variable peut être modifée dans l'URL...

Php/mysql recuperer resultat formulaire

par stefanelle » 26 févr. 2009, 14:53

Bonjour,

j ai un fichier php qui m affiche sous forme de tableau les elements de deux tables, label, reference, artiste ...

j ai ajouter a coté de chaque ligne de résultat modifier et supprimer en lien je souhaite que la personne quand elle clique sur modifier cela lui ouvre une nouvelle page dans avec la ligne selectionné que je pourrias modifier.

Par contre je ne vois pas comment recuperer la ligne pour laquelle j ai cliquer sur modifier.

J'espere que vous voyez ce que je veux dire

voila mon fichier

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> <title>Catalogue</title> <link rel="stylesheet" type="text/css" href="style.css"> </head> <body link="#000000" vlink="#FFFFFF" alink="#FFFFFF"> <div id="body"> <div id="menu-container"><b> <a href="label.php?lettre=[0-9]" class="active"><span class="text">0-9</span></a> | <a href="label.php?lettre=A" target="_self"><span class="text">A</span></a> | <a href="label.php?lettre=B" target="_self"><span class="text">B</span></a> | <a href="label.php?lettre=C" target="_self"><span class="text">C</span></a> | <a href="label.php?lettre=D" target="_self"><span class="text">D</span></a> | <a href="label.php?lettre=E" target="_self"><span class="text">E</span></a> | <a href="label.php?lettre=F" target="_self"><span class="text">F</span></a> | <a href="label.php?lettre=G" target="_self"><span class="text">G</span></a> | <a href="label.php?lettre=H" target="_self"><span class="text">H</span></a> | <a href="label.php?lettre=I" target="_self"><span class="text">I</span></a> | <a href="label.php?lettre=J" target="_self"><span class="text">J</span></a> | <a href="label.php?lettre=K" target="_self"><span class="text">K</span></a> | <a href="label.php?lettre=L" target="_self"><span class="text">L</span></a> | <a href="label.php?lettre=M" target="_self"><span class="text">M</span></a> | <a href="label.php?lettre=N" target="_self"><span class="text">N</span></a> | <a href="label.php?lettre=O" target="_self"><span class="text">O</span></a> | <a href="label.php?lettre=P" target="_self"><span class="text">P</span></a> | <a href="label.php?lettre=Q" target="_self"><span class="text">Q</span></a> | <a href="label.php?lettre=R" target="_self"><span class="text">R</span></a> | <a href="label.php?lettre=S" target="_self"><span class="text">S</span></a> | <a href="label.php?lettre=T" target="_self"><span class="text">T</span></a> | <a href="label.php?lettre=U" target="_self"><span class="text">U</span></a> | <a href="label.php?lettre=V" target="_self"><span class="text">V</span></a> | <a href="label.php?lettre=W" target="_self"><span class="text">W</span></a> | <a href="label.php?lettre=X" target="_self"><span class="text">X</span></a> | <a href="label.php?lettre=Y" target="_self"><span class="text">Y</span></a> | <a href="label.php?lettre=Z" target="_self"><span class="text">Z</span></a></b> </div> <?php include ('config.php'); include ('connexion.php'); echo '<table> <tr> <th>Label</th> <th>Référence</th> <th>Artiste</th> <th>Album</th> <th>Format</th> <th>Modifier</th> <th>Supprimer</th> </tr>'; // paramètre reçu désignant le critère du nom du label recherché $param1 = mysql_real_escape_string($_GET['lettre']); // $sql = "SELECT * FROM label INNER JOIN contenu ON contenu.id_label = label.id_label Where nom_label REGEXP '^$param1' order by nom_label, reference; "; $req = mysql_query($sql); while ($resultat = mysql_fetch_array($req)) { echo '<tr>'; echo '<td>'.$resultat['nom_label'].'</td>'; echo '<td>'.$resultat['reference'].'</td>'; echo '<td>'.$resultat['artiste'].'</td>'; echo '<td>'.$resultat['album'].'</td>'; echo '<td>'.$resultat['format'].'</td>'; echo '<td><a href="formulaire_de_mise_a_jour.php?reference='.$resultat['reference'].'">Modifier</a></td>'; echo '<td><a href="script_de_suppression.php?reference='.$resultat['reference'].'">Supprimer</a></td>'; echo '</tr>'; } echo '</table>'; $var = $resultat; if($var == null){ echo '<div align='center'>' "Aucne référence trouvée"'</div>'; } ?> </body></html> <?php mysql_close(); ?>
Merci