Test if

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 : Test if

Re: Test if

par Sabrina » 28 avr. 2011, 15:40

Pour pouvoir vous aider voici tous mon code :
 include "connexion.php";
   
     $sql = "SELECT id,Titre, Auteur, Cote, Disponibilite  FROM livres ORDER BY Titre";
      $ReqLog = mysql_query($sql);
   
         while ($resultat = mysql_fetch_row($ReqLog))
                 {
       echo '<option value="'.$resultat[0].'" onclick="affiche(\'<br /><strong>Auteur :</strong>&nbsp;&nbsp;'.$resultat[2].'<br /><br /><strong>Cote :</strong>&nbsp;&nbsp;'.$resultat[3].'\',\'descr\')"><br />'.$resultat[1];
         echo '</option>'."\n";
         
       }
   echo '</select>'."\n";




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

$accept=False;

$nom=$_POST['select'];
$dateS=$_POST['textfield4'];
$dateE=$_POST['textfield5'];


if((empty($_POST['select']))  ||(empty($_POST['textfield4'])) || (empty($_POST['textfield5'])) )
{ 
 ?>

        <script language="javascript"> 
            alert('Vous devez remplir tous les champs');
        </script>
 <?php 

}//Champs vides

 else
{

$requet="SELECT * FROM livres";
   $resultt = mysql_query($requet) or exit(mysql_error().'Echec');
 
  
   while( $data = mysql_fetch_assoc($resultt)) 
  { 
     
  if($data['id']==$nom)
      {
         $h=$data['Titre'];
		 
   
      }
  }


$disponibilite = $_GET['Disponibilite'];
echo '$disponibilite';
 
 if ($disponibilite != "Disponible")	
 {
 ?>

        <script language="javascript"> 
            alert('Le livre choisi est empreunté.');
        </script>
 <?php  
  }
else 
{
// Inserer les données entrées dans la tables Pret
 $requete = "INSERT INTO pret(Titre,Datesortie,Dateentree) VALUES('$h','$dateS','$dateE')";
   
   $resultat = mysql_query($requete) or exit(mysql_error().'Echec');
    $accept =true;

// Changer le champ Disponibilite de la table livres de Disponible à En pret

  $query = "UPDATE livres SET Disponibilite = 'En prêt' WHERE Titre='$h'  ";
		$result = mysql_query($query); 

 ?>

        <script language="javascript"> 
            alert('Votre demande a été bien enregistrée, veillez contacter la bibliothécaire pour avoir l''ouvrage empreunté.');
        </script>
 <?php  
 	  
}
 }

} // fin Submit

?>


Jusque là tous marche bien à part le test concernant la Disponibilité du Livres (Je veux faire si Disponibilite est En pret il dois afficher un message si non faire le pret

Re: Test if

par macgawel » 28 avr. 2011, 15:29

1. PHP te dit que la variable $id n'existe pas quand tu essayes de l'utiliser à la ligne 226 de ton script.
2. MySQL te dit que la syntaxe n'est pas correcte (ce qui est logique : si $id n'existe pas la requête est fausse).
A toi d'adapter en mettant le bon nom de colonne pour id et la bonne valeur dans $id.
Il faut aussi ajouter un contrôle sur l'existence de la valeur dans la table pour traiter le cas ou le livre n'existe pas dans ta table.

Re: Test if

par Sabrina » 28 avr. 2011, 15:23

NON une erreur s'affiche c'est :
Informations sur l'ouvrage à empreunter :

Notice: Undefined variable: id in C:\wamp\www\biblio\Pret1.php on line 226
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1Echec

Re: Test if

par Mazarini » 28 avr. 2011, 14:11

Mes excuses pour le $_GET que j'avais laissé trainer à la place de $data.

Est ce que tu a trouvé comment identifier ton livre pour le "where id = $id" ?

Re: Test if

par macgawel » 28 avr. 2011, 14:06

Re bonjour,
Merci pour vous mais j'ai pas encore trouver de solution
Tant que le Get ne marche pas, y'a t-il autre méthode pour faire ma condition
J'attends encore
Merci 'avance
bonjour.

disponibilite, c'est un champ de ta table si je suis bien ?
=> tu récupères sa valeur avec ta requête. Va voir le manuel de PHP pour connaître le fonctionnement de mysql_fetch_array (tu peux cliquer sur la fonction dans le code PHP en-dessous :wink: )
$requet='SELECT * FROM livres where id = '.mysql_real_escape_string($id);
$resultt = mysql_query($requet) or exit(mysql_error().'Echec');
$data = mysql_fetch_array($result);
$disponibilite = $data['Disponibilite'];

Re: Test if

par Sabrina » 28 avr. 2011, 13:38

Re bonjour,
Merci pour vous mais j'ai pas encore trouver de solution
Tant que le Get ne marche pas, y'a t-il autre méthode pour faire ma condition
J'attends encore
Merci 'avance

Re: Test if

par Sabrina » 28 avr. 2011, 11:52

désole mais je suis débutante en PH , que ce que je dois faire j'ai pensé que c le necessaire à faire
Appelé le champ "disponibilite", l'afficher pour être sure qu'il est vrai et puis faire mon test

??? :?

Re: Test if

par Mazarini » 28 avr. 2011, 11:40

Bonjour

Les variables $_GET font référence à des info en provenance de l'url, pas de la base de données.

A mon avis il faudrai ajouter une clause "WHERE" à ton SELECT pour choisir un livre.
$requet='SELECT * FROM livres where id = '.mysql_real_escape_string($id);
$resultt = mysql_query($requet) or exit(mysql_error().'Echec');
$data = mysql_fetch_array($result);


$disponibilite = $_GET['Disponibilite'];


A toi d'adapter en mettant le bon nom de colonne pour id et la bonne valeur dans $id.
Il faut aussi ajouter un contrôle sur l'existence de la valeur dans la table pour traiter le cas ou le livre n'existe pas dans ta table.

Re: Test if

par popy » 28 avr. 2011, 11:31

$_GET['Disponibilite'] c'est pas ta base de données, en fait. Donc c'est tout à fait possible que $_GET['Disponibilite'] ne soit pas définis.

Test if

par Sabrina » 28 avr. 2011, 10:56

Bonjour
J'ai une condition qui ne marche pas et je trouve pas où es le problème veuillez m'aider svp :

Voici une partie de mon code :

$requet="SELECT * FROM livres";
$resultt = mysql_query($requet) or exit(mysql_error().'Echec');


$disponibilite = $_GET['Disponibilite'];

echo '$disponibilite';
 
 if ($disponibilite != "Disponible")	
 {
 ?>
        <script language="javascript"> 
            alert('Le livre choisi est empreunté.');
        </script>
 <?php  
  }

else 
{
 ?>
        <script language="javascript"> 
            alert('Le livre choisi est Disponible.');
        </script>
<?php  
}
?>
Il m'affiche cet erreur :
Notice: Undefined index: Disponibilite in C:\wamp\www\biblio\Pret1.php on line 225
$disponibilite

RQ :
- la ligne 225 est : $disponibilite = $_GET['Disponibilite'];
- Je suis sure que dans ma base de donnée le champ est "Disponibilite".

Veuillez m'aider s'il vous plait :priere: