PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#1 19-03-2010 11:06:36

gabi1202
Membre
Inscription : 26-05-2009
Messages : 13

vérification d'une valeur existante

Bonjour a toutes et tous,

voici mon soucis,

j'ai une table nommé ecole, dans cette table j'ai des champs nommé indexSiep,nom,....etc.

j'ai un formulaire pour ajouter une nouvelle école,
En fait j'aimerais bien que quand on envois le formulaire, une vérification du chapms indexSiep se fasse pour voir si il existe déjà et sous quel nom.

j'arrive a faire la vérification sur l'indexSiep mais je n'arrive pas a mettre sous quel nom cet indexSiep exista déjà.

Voici mon code:

le formulaire:


<div id="newSiep">

<h3>Ajout d'un nouveau Siep</h3>

<form action="recNewSiep.php" onsubmit="return verif()" method="post" name="insertionEcole" >
  <table id="tableNewSiep">
      <tr> <td>Num Siep :</td> <td><input type="text" name="indexSiep" id="indexSiep" style="background-color:#F00;" onBlur=" if(this.value==''){this.style.backgroundColor='red'}else if(this.value!= ''){this.style.backgroundColor='white'}" /></td> </tr>
        <tr> <td>Nom :</td> <td><input type="text" name="nom" id="nom" style="background-color:#F00;" onBlur=" if(this.value=='
'){this.style.backgroundColor='red'}else if(this.value!= ''){this.style.backgroundColor='white'}" /></td> </tr>
        <tr> <td>Rue :</td> <td><input type="text" name="rue" id="rue" /></td> </tr>
        <tr> <td>Numéro :</td> <td><input type="text" name="numero" id="numero" /></td> </tr>
        <tr> <td>Code postal :</td> <td><input type="text" name="codePostal" id="codePostal" style="background-color:#F00;" onBlur=" if(this.value=='
'){this.style.backgroundColor='red'}else if(this.value!= ''){this.style.backgroundColor='white'}" /></td> </tr>
        <tr> <td>Localité :</td> <td><input type="text" name="localite" id="localite" style="background-color:#F00;" onBlur=" if(this.value=='
'){this.style.backgroundColor='red'}else if(this.value!= ''){this.style.backgroundColor='white'}" /></td> </tr>
        <tr> <td>Téléphone :</td> <td><input type="text" name="telephone" id="telephone" style="background-color:#F00;" onBlur="if(this.value=='
'){this.style.backgroundColor='red'}else if(this.value!= ''){this.style.backgroundColor='white'}" /></td> </tr>
        <tr> <td>Fax :</td> <td><input type="text" name="fax" id="fax" /></td> </tr>
        <tr> <td>Mail :</td> <td><input type="text" name="mail" id="mail"/></td> </tr>
        <tr> <td>Web :</td> <td><input type="text" name="web" id="web" /></td> </tr>
        <tr> <td></td><td><input type="submit" name="enregistrer" value="Enregistrer" /> <input type="reset" value="Reset" /></td></tr>
    </table>
    </form>

</div>

a vérification avec l'enregistrement dans la bd:


<?php
include ("_connexion.inc.php");
?>
<?php
$siep = $_POST['indexSiep'];
    if(isset($_POST['enregistrer'])){
     
      $requete = "SELECT * FROM ecole where indexSiep='".mysql_real_escape_string($siep)."'";
        if(mysql_num_rows(mysql_query($requete))>0){
         
          $nom = $requete['numero'];
         
          echo "$nom";
         
          echo"
            <!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">
<html xmlns=\"http://www.w3.org/1999/xhtml\">
            <head>
            <title>Erreur Siep</title>
            </head>
           
            <body>
         
            <div id=\"numExistant\">
              <div id=\"pNumExistant\">ATTENTTION se numéro de Siep ($siep) existe déjà sous le nom de $nom</p>
              <a style=\"color:red; margin-left:125px;\" href=\"Javascript:history.go(-1)\">Retour au formulaire</a>
              </div>
            </div>
            </body>
            "
;
        }
        else{
     
          $sqlEcole =   "INSERT INTO ecole (indexSiep ,nom, rue, numero, codePostal, localite, telephone, fax, mail, web)
                  VALUES
                  (
                    '"
.$_POST['indexSiep']."',
                    '"
.$_POST['nom']."',
                    '"
.$_POST['rue']."',
                    '"
.$_POST['numero']."',
                    '"
.$_POST['codePostal']."',
                    '"
.$_POST['localite']."',
                    '"
.$_POST['telephone']."',
                    '"
.$_POST['fax']."',
                    '"
.$_POST['mail']."',
                    '"
.$_POST['web']."'
                  )"
;
     
          $reqEcole = mysql_query($sqlEcole) or die(mysql_error());
     
          header ('Location: index.php');
        }
    }
?>

en espérant que vous pourrez m'aider, bonne journée a vous tous :)

Gabi
 

Hors ligne

#2 19-03-2010 11:35:21

gabi1202
Membre
Inscription : 26-05-2009
Messages : 13

Re : vérification d'une valeur existante

Mon problème est résolu

Bonne journée a tous.

Hors ligne

#3 22-03-2010 07:18:15

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : vérification d'une valeur existante

J'ai essayé en l'adaptant à mon code et ça marche pas.. j'ai peut-être fait une erreur.. si quelqu'un peu vérifier.  Mon but est de voir si la donnée existe dans ma base.

La base SQL :

CREATE TABLE IF NOT EXISTS `produits` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `nocat` varchar(63) NOT NULL,
  `noart` varchar(63) NOT NULL,
  `article` varchar(63) NOT NULL,
  `taille` varchar(63) NOT NULL,
  `stock` varchar(3) NOT NULL,
  `prix` varchar(11) NOT NULL,
  `details` text NOT NULL,
  UNIQUE KEY `noart` (`noart`),
  KEY `id` (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

INSERT INTO `produits` (`id`, `nocat`, `noart`, `article`, `taille`, `stock`, `prix`, `details`) VALUES (1, '001', '001', 'Tableau', '8x11', 'oui', '145', 'Ce produit est fait en acrilique etc.');

Et le code :
note1: j'ai simplifié des choses pour ne mettre que la base.
note2: j'ai mis dans le formulaire à submit name="enregistrer".

<?php

$db = mysql_connect('localhost', 'root', 'root') or die(mysql_error());
mysql_select_db('cristauxphil', $db) or die(mysql_error());

    $nocat = $_POST['nocat'];

    if(isset($_POST['enregistrer'])){

      $requete = "SELECT * FROM produits WHERE noart='".$nocat."'";
        if(mysql_query($requete)>0){
         
          $noarttest = $requete['nocat'];
         
          echo "$noarttest";

      mysql_query("insert into produits(id,nocat,noart,article,taille,stock,prix,details) values(

        '".$_POST['']."',
        '".$_POST['nocat']."',
        '".$_POST['noart']."',
        '".$_POST['article']."',
        '".$_POST['taille']."',
        '".$_POST['stock']."',
        '".$_POST['prix']."',
        '".$_POST['details']."'

      ,$db)");

      mysql_close();

      header('location:affiche.php');
  }
}

?>

Si gabi1202 a réussi à résoudre son problème, je souhaite un peu de son aide S.V.P. Merci. C'est principalement la vérification de la présence de "nocat" qu'il me faut. Si j'insère à nouveau le contenu de nocat qu'il puisse m'avertir si la valeur existe.

a+
Dan

Dernière modification par dan4 (22-03-2010 07:19:16)


Salutations smile

Hors ligne

#4 22-03-2010 10:29:03

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : vérification d'une valeur existante

mysql_query() renvoie une ressource mysql et non le nombre d'éléments.

Pour savoir si ton article existe déjà voici comment faire :


$requete = "SELECT id FROM produits WHERE nocat='".mysql_real_escape_string($nocat)."' AND noart='".mysql_real_escape_string($noart)."'";
$res = mysql_query($requete)or die(mysql_error());
if( mysql_num_rows($res) == 1 )
  echo "L'article existe déjà.";
else
  echo "L'article n'existe pas.";

Hors ligne

#5 22-03-2010 16:28:22

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : vérification d'une valeur existante

L'essentiel de votre réponse marche avec mon code si je mets seulement cela.

j'ai surement une erreur ici et je ne la vois pas du tout :

<?php

$db = mysql_connect('localhost', 'root', 'root') or die(mysql_error());
mysql_select_db('cristauxphil', $db) or die(mysql_error());


if(!empty($_POST['nocat']) &&
   !empty($_POST['noart']) &&
   !empty($_POST['article']) &&
   !empty($_POST['taille']) &&
   !empty($_POST['stock']) &&
   !empty($_POST['prix']) &&
   !empty($_POST['details']))

{  

      $nocat=$_POST['nocat'];
      $noart=$_POST['noart'];
      $article=$_POST['article'];
      $taille=$_POST['taille'];
      $stock=$_POST['stock'];
      $prix=$_POST['prix'];
      $details=$_POST['details'];

      $code_cherche="001";

      $result = mysql_query("SELECT * FROM produits WHERE prix='".$code_cherche."'",$db);
         
          if(mysql_num_rows($result)== 1)
          {
            echo "le code $code_cherche a été trouvé dans la base";
          }
          else
          {
            echo "le code $code_cherche n'a pas été trouvé dans la base !";
           
            mysql_query("INSERT INTO produits(id,nocat,noart,article,taille,stock,prix,details) VALUE(
           
            '',
            '" . mysql_real_escape_string($nocat) . "',
            '" . mysql_real_escape_string($noart) . "',
            '" . mysql_real_escape_string($article) . "',
            '" . mysql_real_escape_string($taille) . "',
            '" . mysql_real_escape_string($stock) . "',
            '" . mysql_real_escape_string($prix) . "',
            '" . mysql_real_escape_string($details) . "'
           
           ),$db");

          mysql_close();

          }

      mysql_close();  

      header('location:affiche.php');

}

else

{

      echo 'Variable vide ou indéfinie!';

}

mysql_close();
?>


Salutations smile

Hors ligne

#6 22-03-2010 17:14:41

xTG
GrandGourou
Inscription : 18-06-2009
Messages : 1 127
Site Web

Re : vérification d'une valeur existante

A mon avis c'est la façon dont tu recherche l'enregistrement. A quoi te servent les attributs nocat et noart ?
En combinant les deux on est normalement censé obtenir un identifiant unique, pourquoi ne pas l'utiliser pour vérifier que l'enregistrement n'existe pas plutôt que de prendre le prix ?

Hors ligne

#7 22-03-2010 17:15:44

Maljuna Kris
Infantimigulo
Lieu : Douarnenez 29100 Breizh Izel
Inscription : 08-05-2009
Messages : 2 453
Site Web

Re : vérification d'une valeur existante

Saluton,
Un appel à header() après un echo, ça devrait retourner un message d'erreur header already sent


Gloire à qui n'ayant pas d'idéal sacro-saint,
Se borne à ne pas trop emmerder ses voisins. G. Brassens Don Juan 1976.
Avĉjo MoKo kantas
La chaîne YouTube MoKo Papy

Hors ligne

#8 23-03-2010 03:57:41

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : vérification d'une valeur existante

ça fait pas cette erreur.

c est la requete qui ne se fait pas.

insert into.


Salutations smile

Hors ligne

#9 23-03-2010 03:59:01

dan4
Membre
Inscription : 10-01-2010
Messages : 128

Re : vérification d'une valeur existante

xTG a écrit :

A mon avis c'est la façon dont tu recherche l'enregistrement. A quoi te servent les attributs nocat et noart ?
En combinant les deux on est normalement censé obtenir un identifiant unique, pourquoi ne pas l'utiliser pour vérifier que l'enregistrement n'existe pas plutôt que de prendre le prix ?

noart

prix n étais pas prévu.


Salutations smile

Hors ligne

Pied de page des forums