IF sql == null echo ok else ko

Petit nouveau ! | 2 Messages

26 sept. 2008, 23:02

Je souhaite valider un enregistrement que si ma table est vide
voici mon script mais ça ne marche pas voir sqlcompar
<?php
include "connexion.php";
//récupération des valeurs des champs:
  //nom:
  $email     = mysql_real_escape_string($_POST["email"]) ;
  //prenom:
  $datereserv = mysql_real_escape_string($_POST["datereserv"]) ;
  //adresse:
  $heurereserv = mysql_real_escape_string($_POST["heurereserv"]) ;
  //code postal:
  $type        = mysql_real_escape_string($_POST["type"]) ;
  //Date où la reservation a été faite
$date=date("Y-m-d");
{
     $sqlcompar = " SELECT reservation.type FROM reservation
WHERE reservation.datereserv='$datereserv' AND reservation.heurereserv='$heurereserv'";
  
  //exécution de la requête SQL:
  $requetecompar = mysql_query($sqlcompar, $bdd) or die( mysql_error() ) ;
  }
if ($requetecompar =="")
{
    echo("Votre reservation ne peut être enregistrée. Celle-ci est déjà occupée !") ;
    echo("<a href=reservation_083.php>retour à la réservation</a>");
}

if($_POST["email"] != "" && $_POST[datereserv] != " "&& $_POST[heurereserv] != " "&& $_POST[type] != " ") 
{
     $sql = "UPDATE reservation SET reservation.type = '$type' , reservation.email = '$email' , reservation.date ='$date'
WHERE reservation.datereserv='$datereserv' AND reservation.heurereserv='$heurereserv'";
  
  //exécution de la requête SQL:
  $requete = mysql_query($sql, $bdd) or die( mysql_error() ) ;
    echo("Votre reservation est enregistrée. Vous serez contacté sous peu pour plus d'informations !") ;
    echo("<a href=accueil_026.php>retour à l'accueil</a>");
} 
else
{
    echo("problème de réservation : tous les champs doivent être remplis !") ;
    echo("<a href=reservation_083.php>retour à la réservation</a>");
} 

?>

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 sept. 2008, 00:09

Bonjour,
Je souhaite valider un enregistrement que si ma table est vide
voici mon script mais ça ne marche pas voir sqlcompar
C'est bien dommage car compréhension question marche que si script (ou pas)
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 2 Messages

27 sept. 2008, 11:32

Bonjour, :oops:
je pense que je n'ai pas été clair. Autant pour moi ! :( :oops:
Je voudrais comparer le résultat d'une requête sql avec les instructions d'un formulaire. Si la date et l'heure de mon rdv est déjà pris l'echo sera "vous ne pouvez pas choisir ce rdv car déjà pris". et si la date et l'heure de rdv est libre l'update peut fonctionner et valider l'enregistrement.
Mais dans mon script je ne vois pas où çà coince :(
merci pour votre aide

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

27 sept. 2008, 11:49

Ahh effectivement, c'est plus clair comme cela! :wink:

Regarde ton code ici:
{
     $sqlcompar = " SELECT reservation.type FROM reservation
WHERE reservation.datereserv='$datereserv' AND reservation.heurereserv='$heurereserv'";
  
  //exécution de la requête SQL:
  $requetecompar = mysql_query($sqlcompar, $bdd) or die( mysql_error() ) ;
  }
if ($requetecompar =="") 
1) Tu as des accolades bizarrement placées (inutile?)
2) mysql_query() renvoie un identifiant de connexion MySQL ou "false" en cas d'erreur. Par conséquent $requetecompar ne pourra jamais être vide.
Pour savoir si il y a des résultats à ta requête, utilise mysql_num_rows($requetecompar)==0
Quand tout le reste a échoué, lisez le mode d'emploi...