Pb php/mysql

Résolu/Fermé
walibi - 24 mai 2011 à 13:16
 walibi - 25 mai 2011 à 11:29
Bonjour, j'ai un gros problème dans mon script php, je suis un peu une chèvre pouvez-vous m'aider svp
apparemment j'ai des problèmes de variable mais il y a pas que ca j'en suis sur

Notice: Undefined index: idcli in C:\wamp\www\*******\climodif.php on line 26
<?php
session_start();
include("securite.php");
include ("fondPage.php");
echo '<div id="centre"><center>';
include("Connexion_inc.php");


if(isset($_POST['valider']))

{

$id=$_POST['idcli'];
$codeinterne = $_POST['codeinterne'];
$raisoccli = $_POST['raisoccli'];
$nomcli = $_POST['nomcli'];
$precli = $_POST['precli'];
$adrcli = $_POST['adrcli'];
$cpcli = $_POST['cpcli'];
$villecli = $_POST['villecli'];
$telcli = $_POST['telcli'];
$telportcli = $_POST['telportcli'];

// insertion des informations du formulaire dans la table


$req="UPDATE client SET(idcli='".$id."',codeinterne='".$codeinterne."', raisoccli='".$raisoccli."', nomcli='".$nomcli."', precli='".$precli.", adrcli='".$adrcli."',cpcli='".$cpcli."' villecli='".$villecli."', , telcli='".$telcli."', telportcli='".$telportcli."') ";
$req.=" where idcli=".$id;
$result=mysql_query($req) or die (" impossible d'executer la req");


}
// 2 eme partie
else

{

echo '<center><form method="POST" action="climodif.php" >';
echo '<table>' ;


if(isset ($_GET ['idcli']))
{
$idcli=$_GET['idcli'];
}
else {
$idcli = 'idcli';
}

$req='select * from client where idcli='.$idcli;
$result= mysql_query($req) or die ("imposible d'excécuter la req");
$ligne=mysql_fetch_array($result);

echo "<tr><td align=right><label for='codeinterne'>Code client : </label></td><td><input type='text' name='codeinterne' value='$ligne[1]'/></td><tr>";
echo "<tr><td align=right><label for='raisoccli'>Raison sociale : </label></td><td><input type='text' name='raisoccli' value='$ligne[2]'/></td></tr>";
echo "<tr><td align=right><label for='nomcli'>Nom : </label></td><td><input type='text' name='nomcli' value='$ligne[3]'/></td></tr>";
echo "<tr><td align=right><label for='precli'>Prenom : </label></td><td><input type='text' name='precli' value='$ligne[4]'/></td></tr>";
echo "<tr><td align=right><label for='adrcli'>Adresse : </label></td><td><input type='text' name='adrcli' value='$ligne[5]'/></td></tr>";
echo "<tr><td align=right><label for='villecli'>Ville : </label></td><td><input type='text' name='villecli' value='$ligne[7]'/></td></tr>";
echo "<tr><td align=right><label for='cpcli'>Code postale: </label></td><td><input type='text' name='cpcli' value='$ligne[6]'/></td></tr>";
echo "<tr><td align=right><label for='telcli'>Tel fix : </label></td><td><input type='text' name='telcli' value='$ligne[8]'/></td></tr>";
echo "<tr><td align=right><label for='telportcli'>Tel port: </label></td><td><input type='text' name='telportcli' value='$ligne[9]'/></td></tr>";

echo '<tr><td align=right><label for="typcli">Type de client : </label></td>';

$req="SELECT * FROM typeclient order by libtypecli";
$result=mysql_query($req) or die (" impossible d'executer la req");

echo '<td><select name="typcli" >';
{
while ($row=mysql_fetch_array($result))
echo "<option>".$row['libtypecli']."</option>";

}
echo '</select></td></tr>';

echo '</table><br /><br />' ;
echo '<input type="submit" name="valider" value="Valider">';
echo '<input type="button" name="retour" value="Retour" onclick=self.location.href="cliliste.php">';
echo '</form></center>';
}

?>

7 réponses

Bonjour

Où est le champ nommé 'idcli' dans ton formulaire ?
Sans ça, dans $id=$_POST['idcli']; (c'est ça la ligne 26 ?) l'index 'idcli' n'est effectivement pas défini.

J'ai comme un doute... le script que tu montres est-il bien celui de climodif.php ?
0
Merci d'avoir répondue aussi vite le père

Mais à la base idcli c'est une clé primaire auto_incrémenté
je veux pas que l'utilisateur puisse la modifier dans le formulaire
(je sais pas si vous me comprenez)
je pensé en avoir besoin pour ma requête update )=
0
Je n'ai rien contre la fait que idcli soit une clé primaire. Je te demande simplement si le script que tu montres est bien celui de climidif.php
Si oui, comme dans ce formulaire il n'y a pas de <input name='idcli'>, il n'y a aucune variable $_POST['idcli'] et ton message d'erreur est parfaitement normal. Je suppose que tu passes en fait ton id par le $_GET, comme on voit que tu le récupères un peu plus loin (mais trop tard)

De plus, ta mise à jour est incorrecte :
$req="UPDATE client SET(idcli='".$id."',codeinterne='".$codeinterne."', raisoccli='".$raisoccli."', nomcli='".$nomcli."', precli='".$precli.", adrcli='".$adrcli."',cpcli='".$cpcli."' villecli='".$villecli."', , telcli='".$telcli."', telportcli='".$telportcli."') "; 
sans 'WHERE', tu vas mettre à jpour TOUS les enregistrement de ta table.
Je suppose que tu voulais faire
$req="UPDATE client SET codeinterne='$codeinterne', raisoccli='$raisoccli', nomcli='$nomcli', precli='$precli', adrcli='$adrcli',cpcli='$cpcli', villecli='$villecli', telcli='$telcli', telportcli='$telportcli' WHERE idcli=$idcli"; 

(ap passage, pas de () autour de ce qui suit le SET, ni de concaténations inutiles qui rendent le tout difficile à lire)
0
Après être entré dans ton if(isset($_POST['valider']))
fait simplement un print_r($_POST); pour voir si idcli est bien set
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ah j'avais pas vu que le formulaire était en dessous.
idcli n'est pas dans le formulaire, normal que tu ne l'ai plus à la validation.
de + le passer dans le formulaire, par exemple avec un <input type='hidden' name='idcli' value='<?=$idcli?>' /> c'est pas terrible car il pourra être modifié coté client et modifier une autre fiche client si le gars est mal intentionné.
passe ton idcli en session. $_SESSION['idcli']
0
Probleme resolue je donne la solution pour ceux qui ont le meme probleme que moi ou qui vont le rencontrer :)

<?php
session_start();
include("securite.php");
include ("fondPage.php");
echo '<div id="centre"><center>';
include("Connexion_inc.php");

$idcli=$_GET['idcli'];
if(isset($_POST['valider']))
// premiere partie
{

$test=true;
$codeinterne = $_POST['codeinterne'];
$raisoccli = $_POST['raisoccli'];
$nomcli = $_POST['nomcli'];
$precli = $_POST['precli'];
$adrcli = $_POST['adrcli'];
$cpcli = $_POST['cpcli'];
$villecli = $_POST['villecli'];
$telcli = $_POST['telcli'];
$telportcli = $_POST['telportcli'];

if ($codeinterne==""){
echo "<p align =center> Saisir un code interne";
$test=false;
}

if ($raisoccli==""){
echo "<p align =center> Saisir une raison sociale";
$test=false;
}

if ($nomcli==""){
echo "<p align =center> Saisir un nom ";
$test=false;
}
if ($precli==""){
echo "<p align =center> Saisir un prenom";
$test=false;
}
if ($adrcli==""){
echo "<p align =center> Saisir une adresse";
$test=false;
}

if ($cpcli==""){
echo "<p align =center> Saisir un code postal";
$test=false;
}

if ($villecli==""){
echo "<p align =center> Saisir une ville ";
$test=false;
}


if ($test==true)
{
// insertion des informations du formulaire dans la table


$req="UPDATE client SET codeinterne='".$codeinterne."', raisoccli='".$raisoccli."', nomcli='".$nomcli."', precli='".$precli."', adrcli='".$adrcli."',cpcli='".$cpcli."', villecli='".$villecli."', telcli='".$telcli."', telportcli='".$telportcli."' ";
$req.=" where idcli=".$idcli;
$result=mysql_query($req) or die (" impossible d'executer la req1");

echo "<p align=center> Client modifié !</p>";
echo "<form action='cliliste.php' method='POST' >";
echo '<p align=center><INPUT TYPE=submit NAME=retour VALUE="Retour" >';
}


else
{
echo '<form action="climodif.php?idcli='.$idcli.'" method="POST" enctype="multipart/form-data">';
echo '<p align=center><INPUT TYPE=submit NAME=retour VALUE="Retour" >';
}

}

else
// 2 eme partie
{

echo '<center><form method="POST" action="climodif.php?idcli='.$idcli.'" >';
echo '<table>' ;


$req='select * from client where idcli='.$idcli;
$result= mysql_query($req) or die ("imposible d'excécuter la req2");
$ligne=mysql_fetch_array($result);


echo "<tr><td align=right><label for='codeinterne'>Code client : </label></td><td><input type= text name= codeinterne value='$ligne[1]'/></td><tr>";
echo "<tr><td align=right><label for='raisoccli'>Raison sociale : </label></td><td><input type= text name= raisoccli value='$ligne[2]'/></td></tr>";
echo "<tr><td align=right><label for='nomcli'>Nom : </label></td><td><input type= text name= nomcli value='$ligne[3]'/></td></tr>";
echo "<tr><td align=right><label for='precli'>Prenom : </label></td><td><input type= text name= precli value='$ligne[4]'/></td></tr>";
echo "<tr><td align=right><label for='adrcli'>Adresse : </label></td><td><input type= text name= adrcli value='$ligne[5]'/></td></tr>";
echo "<tr><td align=right><label for='villecli'>Ville : </label></td><td><input type= text name= villecli value='$ligne[7]'/></td></tr>";
echo "<tr><td align=right><label for='cpcli'>Code postale: </label></td><td><input type= text name= cpcli value='$ligne[6]'/></td></tr>";
echo "<tr><td align=right><label for='telcli'>Tel fix : </label></td><td><input type= text name= telcli value='$ligne[8]'/></td></tr>";
echo "<tr><td align=right><label for='telportcli'>Tel port: </label></td><td><input type= text name= telportcli value='$ligne[9]'/></td></tr>";

echo '<tr><td align=right><label for="typcli">Type de client : </label></td>';

$req="SELECT * FROM typeclient order by libtypecli";
$result=mysql_query($req) or die (" impossible d'executer la req");

echo '<td><select name="typcli" >';

{
while ($row=mysql_fetch_array($result))
echo "<option>".$row['libtypecli']."</option>";
}
echo '</select></td></tr>';

echo '</table><br /><br />' ;
echo '<input type="submit" name="valider" value="Valider">';
echo '<input type="button" name="retour" value="Retour" onclick=self.location.href="cliliste.php">';
echo '</form></center>';
}
0
exacte le pere ^^
j'ai rajouté le where :p merci
0