Test if

Sabrina
Invité n'ayant pas de compte PHPfrance

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:

Eléphant du PHP | 275 Messages

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.

ViPHP
ViPHP | 2577 Messages

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.

Sabrina
Invité n'ayant pas de compte PHPfrance

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

??? :?

Sabrina
Invité n'ayant pas de compte PHPfrance

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

Mammouth du PHP | 672 Messages

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'];

ViPHP
ViPHP | 2577 Messages

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" ?

Sabrina
Invité n'ayant pas de compte PHPfrance

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

Mammouth du PHP | 672 Messages

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.

Sabrina
Invité n'ayant pas de compte PHPfrance

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