Mon if ne fonctionne pas sur le serveur

Résolu/Fermé
fedely - Modifié le 2 déc. 2018 à 15:17
 fedely - 3 déc. 2018 à 13:09
Bonjour,

J'espère que vous allez bien.

J'ai un problème ce jour, je veux pouvoir après un update faire un insert mais mon if ne fonctionne pas.

ça ne fonctionne pas.

Voici mon code ;

<?php
      if(isset($_POST['co']))
      { 
       $st = $_POST['conf'];
       
        
       
       if($st=="Valider")
       {
         $urb = "UPDATE `reservations` SET `stats`='$st' WHERE idreserv = '$id'";
         
        if($c=="NO" )
        {
         echo "<script type='text/javascript'> alert('Désolé, plus de package disponible')</script>";
        }
        else if($f5 =="NO")
         {
          echo "<script type='text/javascript'> alert('Désolé, Toutes les chambres sont occupées')</script>";
          
         }
        
          
          else if( mysqli_query($conna,$urb))
           { 
            //echo "<script type='text/javascript'> alert('Guest Room booking is conform')</script>";
            //echo "<script type='text/javascript'> window.location='home.php'</script>";
            // $type_of_room = 0;       
             // if($meal=="standard")
              //{
               //$type_of_room = 320;
              
              //}
              //else if($meal=="couple")
              //{
             //  $type_of_room = 220;
             // }
              
              
              
              
              
             // if($bed=="single")
              //{
              // $type_of_bed = $type_of_room * 1/100;
             // }
              //else if($bed=="couple")
             // {
             //  $type_of_bed = $type_of_room * 2/100;
             // }
              
              
              
              
              
             
              
              
              //$ttot = $type_of_room * $days * $nroom;
              //$mepr = $type_of_meal * $days;
              //$btot = $type_of_bed *$days;
              
              //$fintot = $ttot + $mepr + $btot ;
               
               //echo "<script type='text/javascript'> alert('$count_date')</script>";
                 $date = date('Y/m/d');
                 
              $psql = "INSERT INTO `payement`(`id`,`nomclient`, `hoteli`, `tcham`, `cin`, `cout`, `montant`, `id_user`, `datpay`) VALUES ('$id','$fname','$title','$formule','$cin','$cout','$country','$Phonei', '$date')";
              
              if(mysqli_query($conna,$psql))
              { //$notfree="OCCUPE";
               //$rpsql = "UPDATE `chambres` SET `statut`='$notfree',`cusid`='$id' where formule ='$bed' and type='$meal' ";
               //if(mysqli_query($conna,$rpsql))
               //{
               echo "<script type='text/javascript'> alert('Reservation validee')</script>";
               echo "<script type='text/javascript'> window.location='roombook.php'</script>";
               //}
               
               
              }
            
           }
         
                                        
       } 
     
      }
     
         
         
       
      ?>


Je ne sais pas si je me suis tromper quelque part mais ça ne fonctionne pas.

Merci d'avance pour l'aide

1 réponse

jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
2 déc. 2018 à 15:19
Bonjour,
Lequel de tes if ne fonctionne pas ?
As tu essayé d'afficher le contenu de tes variables pour voir quelles valeurs elles ont ?
As tu activé l'affichage des erreurs php ?

Je t'invite, avant tout.., de commencer par appliquer ce qui est indiqué ici :
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0
Merci pou ta réponse Jordan 45.

En mode localhost, tout fonctionne bien mais lorsque je mets sur le serveur et que je fais le test, le UPDATE fonctionne mais pas le INSERT.
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
2 déc. 2018 à 19:53
Je peux supposer que ton champ ID est de type auto-incrémenté ...
Il ne faut donc pas le mettre dans l' INSERT..

De plus... pense à gérer les éventuelles erreurs mysqli... par exemple :

  $psql = "INSERT INTO `payement`(`nomclient`, `hoteli`, `tcham`, `cin`, `cout`, `montant`, `id_user`, `datpay`) VALUES ('$fname','$title','$formule','$cin','$cout','$country','$Phonei', '$date')";
              
if(mysqli_query($conna,$psql)){
      echo "<script type='text/javascript'> alert('Reservation validee')</script>";
      echo "<script type='text/javascript'> window.location='roombook.php'</script>";
}else{
  // en cas d'erreurs mysqli
  echo("Error sql - description: " . mysqli_error($conna));
}
0
Non non le id s'auto incrémente pas ces ont les valeurs d'une table qu'on deverse dans celle ci juste après un update.

Je vais tester avec la gestion des erreurs pour voir ce que ça donne
0
Bonjour Jordane,

Voici ce qui en ressort :

reser' doesn't have a default value

Je ne sais pas trop ou est la valeur manquante
0
jordane45 Messages postés 38201 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 5 juin 2024 4 675
3 déc. 2018 à 10:16
Cela signifie que dans ta BDD le champ "reser" n'a pas de valeur par défaut définie.
Donc soit tu modifies champ en question dans la table pour lui définir une valeur par défaut.... soit tu le met dans ta requête INSERT ( un chiffre si champ numérique.. ou une chaine vide "" si un champ text/varchar.. ou une Date .. ben si c'est un champ de type date.... )
0