Aide PHP

Résolu
Babaki -  
 Babaki -
Bonjour,

J'ai un probleme avec PHP , j'ai 4 fichier, 1: liste_fournisseur.php, 2:efface_fournisseur.php,3: ajout_fournisseur.php , 4: update_fournisseur.php qui me permettent d'afficher, supprimer,ajouter et de mettre à jour des donnes d'une BD.

Mon probleme est le suivant ,j 'arrive à utiliser tous les fichiers , donc a afficher , supprimer , ajouter des donnes sur la BD Adresses/Table Fournisseurs sauf à les mettres à jour , donc si quelqu'un peu m'aider ... MERCI BEAUCOUP d'avance.

Voici mon code pour update_fournisseur.php :

<?php
/* ---------------------------------------------------------------------
*
*
* Auteur: Shaban Jashari
* Date: Decembre 2007
* Description: Mise à jour de la liste: Fournisseur
* ---------------------------------------------------------------------
*/
// Variables

//pas de variable
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Update Fournisseur</title>
<?php
require_once("include/pre.php");
?>
<style type="text/css">
<!--
body,td,th {
font-family: Arial, Helvetica, sans-serif;
}
a:link {
color: #0000FF;
text-decoration: none;
}
a:visited {
text-decoration: none;
color: #FF0000;
}
a:hover {
text-decoration: none;
color: #0099FF;
}
a:active {
text-decoration: none;
color: #0000FF;
}
-->
</style></head>
<?php
//connexion à la base de donnée

if (!$link=mysql_connect("localhost","root","")){
//probleme de connexion
echo " Probleme de connexion à la BD ";
exit;
}

if (!mysql_select_db("Adresses")){
//probleme de selection
echo "Probleme de selection de la BD ";
exit;
}

$nom =getParam($_POST, 'Nom', '');
$adresse = getParam($_POST, 'Adresse', '');
$telephone = getParam($_POST, 'Telephone', '');
$fax = getParam($_POST, 'Fax', '');
$webmail=getParam($_POST,'Webemail',' ');

$Fourni_id= (int) getParam($_GET, 'Fourni_id',0);
$go = (int) getParam($_POST, 'go', 0);

if ($go == true){

//on met à jour les données dans la BD

$sql= "UPDATE fournisseurs SET Nom='$nom', Adresse='$adresse', Telephone='$telephone', Fax='$fax',
Webemail='$webmail' WHERE Fourni_id='$Fourni_id'";

$res = mysql_query($sql);

if ($res == false){
echo "<h4>Problème de mise à jour des utilisateurs</h4>";
exit;
}
echo "<center><h4>Voilà tout a été mise à jour</h4></center>";
echo '<br />';
echo '<center><a href="liste_fournisseur.php"> Liste des fournisseurs</a></center>';

}
else {

//sinon on affiche la base de donée

$sql= "SELECT Nom,Adresse,Telephone,Fax,Webemail,Fourni_id FROM fournisseurs WHERE Fourni_id=$Fourni_id ";

$res=mysql_query($sql);

if($res == false){
echo "<h4>Probleme d'affichage</h4>";
exit;
}

$row=mysql_fetch_array($res);

?>

<h2 align="center">Mettre à jour un Fournisseur</h2>
<br>
<a href="liste_fournisseur.php">Liste des fournisseurs <a>

<center><form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
<p>Nom<br />
<textarea name="Nom" wrap="virtual"><?php echo $row['Nom']; ?> </textarea>
</p>
<p>Adresse<br />
<textarea name="Adresse" wrap="virtual" ><?php echo $row['Adresse']; ?></textarea>
</p>
<p>Telephone<br />
<textarea name="Telephone" wrap="virtual"><?php echo $row['Telephone']; ?></textarea>
</p>
<p>Fax<br />
<textarea name="Fax" wrap="virtual"><?php echo $row['Fax']; ?></textarea>
</p>
<p>Web et mail<br />
<textarea name="Webemail" wrap="virtual"><?php echo $row['Webemail']; ?></textarea>
</p>
<p>
<input name="go" type="hidden" value="1" />
<input name="Fourni_id" type="hidden" value="<?php echo $Fourni_id; ?>" />(Cette ligne je ne sais pas si elle sert a quelque chose)
<input type="submit" name="Submit" value="Mettre à jour">
<br />
</p>
</form></center>
<?php
}
?>
</body>
</html>

7 réponses

  1. le père
     
    Bonjour,

    $Fourni_id= (int) getParam($_GET, 'Fourni_id',0);
    Tu envoies un formulaire par POST et tu essayes de récupérer une valeur par $_GET, normal que ça ne marche pas

    (Cette ligne je ne sais pas si elle sert a quelque chose)
    Donc tu as repompé quelque chose sans chercher à comprendre. Si, elle sert, justement à retrouver la valeur de $Fourni_id d'un appel du formulaire à l'autre.
    0
  2. Babaki
     
    Ok merci pour ta réponse , j'essaie et je te redit si ca marche.
    0
  3. Babaki
     
    Salut , merci pour ta réponse mais c'etait pas cela.

    En fait je récupérai la valeur Fourni_id avec GET et pour faire la mise à jour j'ai mis REQUEST.

    Ca fonctionne niquel.

    J'ai récupéré la valeur Fourni_id avec GET et la renvoi avec POST , mais j'ai changé j ai mis REQUEST au lieu de GET et comme ca il trouve tout seul la solution.

    J'espere que ca aidera quelqu'un , merci pour vos réponses.

    Voici mon code qui fonctionne :

    <?php
    /* ---------------------------------------------------------------------
    *
    *
    * Auteur: Shaban Jashari
    * Date: Decembre 2007
    * Description: Mise à jour de la liste: Fournisseur
    * ---------------------------------------------------------------------
    */
    // Variables

    //pas de variable
    ?>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Update Fournisseur</title>
    <?php
    require_once("include/pre.php");
    ?>
    <style type="text/css">
    <!--
    body,td,th {
    font-family: Arial, Helvetica, sans-serif;
    }
    a:link {
    color: #0000FF;
    text-decoration: none;
    }
    a:visited {
    text-decoration: none;
    color: #FF0000;
    }
    a:hover {
    text-decoration: none;
    color: #0099FF;
    }
    a:active {
    text-decoration: none;
    color: #0000FF;
    }
    -->
    </style></head>
    <?php
    //connexion à la base de donnée

    if (!$link=mysql_connect("localhost","root","")){
    //probleme de connexion
    echo " Probleme de connexion à la BD ";
    exit;
    }

    if (!mysql_select_db("Adresses")){
    //probleme de selection
    echo "Probleme de selection de la BD ";
    exit;
    }

    $nom =getParam($_POST, 'Nom', '');
    $adresse = getParam($_POST, 'Adresse', '');
    $telephone = getParam($_POST, 'Telephone', '');
    $fax = getParam($_POST, 'Fax', '');
    $webmail=getParam($_POST,'Webemail',' ');

    $Fourni_id= (int) getParam($_REQUEST, 'Fourni_id',0);
    $go = (int) getParam($_POST, 'go', 0);

    if ($go == true){

    //on met à jour les données dans la BD

    $sql= "UPDATE fournisseurs SET Nom='$nom', Adresse='$adresse', Telephone='$telephone', Fax='$fax',
    Webemail='$webmail' WHERE Fourni_id='$Fourni_id'";

    $res = mysql_query($sql);

    if ($res == false){
    echo "<h4>Problème de mise à jour des utilisateurs</h4>";
    exit;
    }
    echo "<center><h4>Voilà tout a été mise à jour</h4></center>";
    echo '<br />';
    echo '<center><a href="liste_fournisseur.php"> Liste des fournisseurs</a></center>';

    }
    else {

    //sinon on affiche la base de donée

    $sql= "SELECT Nom,Adresse,Telephone,Fax,Webemail,Fourni_id FROM fournisseurs WHERE Fourni_id=$Fourni_id ";

    $res=mysql_query($sql);

    if($res == false){
    echo "<h4>Probleme d'affichage</h4>";
    exit;
    }

    $row=mysql_fetch_array($res);

    ?>

    <h2 align="center">Mettre à jour un Fournisseur</h2>
    <br>
    <a href="liste_fournisseur.php">Liste des fournisseurs <a>

    <center><form name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <p>Nom<br />
    <textarea name="Nom" wrap="virtual"><?php echo $row['Nom']; ?> </textarea>
    </p>
    <p>Adresse<br />
    <textarea name="Adresse" wrap="virtual" ><?php echo $row['Adresse']; ?></textarea>
    </p>
    <p>Telephone<br />
    <textarea name="Telephone" wrap="virtual"><?php echo $row['Telephone']; ?></textarea>
    </p>
    <p>Fax<br />
    <textarea name="Fax" wrap="virtual"><?php echo $row['Fax']; ?></textarea>
    </p>
    <p>Web et mail<br />
    <textarea name="Webemail" wrap="virtual"><?php echo $row['Webemail']; ?></textarea>
    </p>
    <p>
    <input name="go" type="hidden" value="1" />
    <input name="Fourni_id" type="hidden" value="<?php echo $Fourni_id; ?>" />
    <input type="submit" name="Submit" value="Mettre à jour">
    <br />
    </p>
    </form></center>
    <?php
    }
    ?>
    </body>
    </html>
    0
  4. le père
     
    Salut , merci pour ta réponse mais c'etait pas cela.
    Mais si justement c'était bien cela ! Explique-moi ce qu'il y avait de faux dans a réponse au lieu de te contenter de le dire.

    C'est normal que ça marche aussi avec $_REQUEST, puisque $_REQUEST regroupe $_GET et $_POST.
    Si tu considères que programmer c'est essayer des formules magiques au pif jusqu'à ce qu'il y en ait une qui semble donner satisfaction, on peut arrêter le sujet là.
    Sinon renseigne-toi sur ce que signifient les variables $_GET, $_POST et $_REQUEST
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Babaki
     
    Je suis d'accord que ca fonctionnerait pas si je mais GET avec comme methode POST , mais le probleme c'est que sur l'autre fichier(liste_fournisseur.php j'arrivai pas à récupérer la valeur sauf en faisant un GET et pour l autre page ( update_fournisseur.php) je essaiy GET ca ne me le mettai pas a jour et quand j essaie POST , ca affichait aucune valeur dans le fichier .

    Parck si tu veux j'ai une liste de fournisseurs qui est affiché dans un tableau et lorsque je clique sur un lien qui doit envoyé l'ID du fournisseur pour mettre à jour le fournisseur choisi et qu'on arrive sur le fichier , mettre à jour , il y a un formulaire avec les valeurs du fournisseur et la on modifie , puis on met a jour.

    Et avec GEt ca marchait pas , mais je suis sur que j'aurais pu faire tout cela avec POST seulement mais bon j'ai pas le temps , et ce que je trouve je le prend.

    Peut etre que je n'ai pas fait ça dans l'ordre , mais je ne suis pas très bon dans ce domaine.

    Meric de ta compréhension.
    0
  7. le père
     
    mais bon j'ai pas le temps ,
    Tu gagnerais beaucoup de temps si tu essayais de savoir pourquoi il faut mettre tantôt $_GET tantôt $_POST au lieu d'en perdre à essayer au hasard
    0
  8. Babaki
     
    oui tout a fait d accord avec toi
    0