[RESOLU] Passage au Mysqli

Petit nouveau ! | 9 Messages

13 sept. 2014, 08:29

Merci pour votre aide encore une fois.
J'ai donc bien modifié mon
mysqli_free_result($requete);
en
mysqli_free_result($resultat);
comme tu me l'as suggéré Moogli.

J'ai aussi revu les guillemets de la syntaxe de ma requête, je ne sais pas si celle-ci est correcte mais mes variables $disponible, $enfants et $nb_enfants prennent bien le code couleur des variables sous DreamWeaver

Cependant, le message d'erreur a changé puisqu'à présent le retour est : Erreur sql: Unknown column 'oui' in 'field list'
Voici le code en question :
$requete = "UPDATE Mariage SET disponible = ".$disponible." , enfants = ".$enfants.", nb_enfants = '$nb_enfants' WHERE id = ".$id." ";
print "<br>$requete";
// Requete
$resultat = mysqli_query($bdd, $requete);
     if (!$resultat) // et remplacer on $requete par $resultat
        die ('Erreur sql: '.mysqli_error($bdd));
    else
    {
        mysqli_free_result($resultat);
    }
}
Si auquel cas, l'erreur proviendrait de mon formulaire, je vous liste le code :
<div id="formulaire-reservation">
					<form method="post" action="reservation.php">
                       <h3>Réservation de la famille <?php echo $_SESSION['Auth']['nom']; ?></h3>
                       <p>Bonjour <span><?php echo $_SESSION['Auth']['prenom'] ?> !</span><br />
                    <p>
                    Serez vous disponible?
                         <label>Oui
                            <input type="radio" name="disponible" id="oui" value="oui">
                        </label>
                        <label>Non
                            <input type="radio" name="disponible" id="non"value="non">
                        </label>
                    </p>
                    <p>
                    Serez-vous accompagnez d'enfants?   
                         <label>Oui
                            <input type="radio" name="enfants" onClick="afficher()" id="oui" value="oui">
                        </label>
                        <label>Non
                            <input type="radio" name="enfants" onClick="cacher()" id="non" value="non">
                        </label>
                         
                    <p id="champ_cache">
                        Combien d'enfants?
                        <input type="number" value="0" max="3" min="0" name="nb_enfants"/>
                   </p>
                       <p> 
                         <input type="submit" value="Valider" />
                        </p>
                  

Petit nouveau ! | 9 Messages

14 sept. 2014, 19:03

Un petit up pour ne pas tomber dans l'oubli ! :p

Eléphant du PHP | 113 Messages

15 sept. 2014, 09:37

tu vas te faire taper sur les doigts pour ton "up" ^^

Pour les requêtes sql, si tu veux utilisez une chaîne de caractère il te faut des quote, si bien que lorsque ta requête est exécuter elle respecte cette syntaxe:

SELECT nom FROM user; // nom est le nom d'une colonne

SELECT nom FROM user WHERE nom='toto'; //nom est le nom d'une colonne, toto est une chaîne de caractère, ici on sélectionne tous les noms de la table user quand nom vaut toto

SELECT nom FROM user WHERE nom=prenom //nom et prenom sont des noms de colonnes Ici on sélectionne tous les noms dans la table user quand le nom et le prenom sont identiques

Donc quand tu construits ta requête en php, si tes variables sont des types string, il ne faut pas oublier des ' en plus, ex:

$nom = "toto";
$requete = 'SELECT nom FROM user WHERE nom=' . $nom; // il rechercheras la colonne "toto" !
$requete = 'SELECT nom FROM user WHERE nom="' . $nom . '"'; // il rechercheras les nom qui valent "toto"

Petit nouveau ! | 9 Messages

15 sept. 2014, 11:52

Merci pour ta réponse.
Mon formulaire fonctionne parfaitement à présent, sur mon formulaire j'ai modifié les valeurs (value) pour "disponible" et "enfants" de "oui"/"non" en "1"/"0".

De plus, j'ai vu sur internet qu'il n'était pas utile de fermer la requête avec mysqli_free_result($query); lorsqu'on avait qu'une seule requête qui plus est un SELECT ou UPDATE. J'ai supprimé cette ligne donc et toute marche à merveille!

Merci à tous de vos conseils en tout cas, vous m'avez beaucoup aider. Je met le sujet en résolu!