Enregistrement valeur checkboxs dans une base de données

Petit nouveau ! | 7 Messages

08 juin 2011, 14:01

Salut à tous ! :)

Je me présente, je suis nouveau sur ce forum, j'm'appelle Fabien et je sors tout juste de 1ère année de BTS Informatique de Gestion. J'ai commencé à apprendre le PHP il y a environ un mois (je l'avais survolé en cours) pour les besoins de mon stage duquel je vous écris en ce moment même. Je n'avais donc aucune notion de gestion de BdD avec PHP et j'éprouve quelques difficultés ...

J'essaye d'enregistrer des valeurs de checkboxs cochées sur une précédente page dans une BdD, mais sans succès. Voici mon code:
<?php
$sql = 'UPDATE personnel 
SET ID_JOUR =  ('.implode('),(', $_POST['jour_dispo']).')
WHERE NOM_PERSONNE = '.$_SESSION['nom'].'; ?>
Il ne m’entraîne pas d'erreurs et je fais juste après la validation de ma page un echo de mon implode, qui renvoie bien les valeurs cochées. La table reste telle quelle, pas moyen d'enregistrer quoi que ce soit dedans. Cela dit, j'ai 2 champs que je désire remplir: ID_JOUR et ID_JOUR_INDISPO. Je travaille sur PhpMyAdmin et dans ma BdD, les champs ID_JOUR ont pour valeur NULL alors que les champs ID_JOUR_INDISPO ont pour valeur 0. Quelle est la différence ? Est-ce que cela importe dans ce que je veux faire ?

Pouvez-vous m'aider ?

ViPHP
ViPHP | 2577 Messages

08 juin 2011, 15:11

Bonjour,

Le mysql_query($sql) ne retourne pas d'erreur ?

Petit nouveau ! | 7 Messages

08 juin 2011, 15:19

Non, ma page s'affiche correctement. :wink:
D'ailleurs, cela me surprend quelque peu: à ma ligne de SET, les parenthèses ne correspondent pas .. :^o

ViPHP
ViPHP | 2577 Messages

08 juin 2011, 15:47

Pour voir l'erreur :
mysql_query($sql);
if (mysql_errno() <> 0)
{
   echo $sql,'<br>';
   echo mysql_errno(),' : ',mysql_error();
   exit;
}

Petit nouveau ! | 7 Messages

08 juin 2011, 16:38

Ah, c'était ça ta première question, désolé je connaissais pas ... !
Génial ce code. :wink:
Il me renvoie cette erreur: "1046 : No database selected"

Je me suis pourtant bien connecté à la BdD. :|

ViPHP
ViPHP | 2577 Messages

08 juin 2011, 16:45

Tu t'es connecter au serveur, pas à la base.
Le même code "if..." peut s'utiliser pour toutes les fonctions mysql pour vérifier leur bonne exécution.

http://fr.php.net/manual/fr/function.my ... ect-db.php ?

Petit nouveau ! | 7 Messages

08 juin 2011, 16:53

D'accord, merci pour l'info. :wink:

Mais ça :
<?php
//Connexion à la base de données
try
{
	$bdd = new PDO('mysql:host=localhost;dbname=bdd_test' , 'root', '');
}
catch(Exception $e)
{
	die('Erreur : ' .$e->getMessage());
}
?>
C'est bien une connexion à la BdD non ?