Page 1 sur 2

probleme sur renseignement des checkboxs dans la table

Posté : 29 déc. 2005, 14:43
par dam-s
Slt

encore moi lol

voila j'aie une erreur (sur une autre page, pour ceux qui on suivit mes premier "probleme" )

en fait chaque date que j'avait rentré avant fait apel a 4 checkbox (pour resumer) j'aie preque reussi a les renseigner dans la table mais voila j'aie une erreur:

Code : Tout sélectionner

INSERT INTO chds_cours_recup_horraire (ID_couple, ID_cours, ID_date, Matin, Après_Midi, Soir, inscription) VALUESErreur de syntaxe près de '' à la ligne 1
et voici le bout de code qui y correspond je croi...
if(!isset($_POST['iddate'])) $iddate=""; else $iddate=$_POST['iddate'];
 $values=""; 
for($i=$iddate;$i<=$totalRows_rsselectcours_horraire;$i++) 
            { 
if(!isset($_POST['checkbox_Matin'.$i])) $chckmatin=""; else $chckmatin=$_POST['checkbox_Matin'.$i];
if(!isset($_POST['checkbox_Après_Midi'.$i])) $chckapremidi=""; else $chckapremidi=$_POST['checkbox_Après_Midi'.$i];
if(!isset($_POST['checkbox_Soir'.$i])) $chcksoir=""; else $chcksoir=$_POST['checkbox_Soir'.$i];
if(!isset($_POST['checkbox_Non'.$i])) $chckinscrit=""; else $chckinscrit=$_POST['checkbox_Non'.$i];

$values.= "('$ID_couple_1', '$ID_cours','".$i."','".$chckmatin."','".$chckapremidi."','".$chcksoir."','".$chckinscrit."'),"; 
            }        
		mysql_select_db($database_phpconnexion, $phpconnexion);
		$insertvaliddate = "INSERT INTO chds_cours_recup_horraire (ID_couple, ID_cours, ID_date, Matin, Après_Midi, Soir, inscription) VALUES ".$values; 
		$insertvaliddate = substr($insertvaliddate, 0, -1);
   echo $insertvaliddate;
		mysql_query($insertvaliddate, $phpconnexion) or die(mysql_error());

Posté : 29 déc. 2005, 14:55
par Truc
que donne le echo sur la requete ?

EDIT: évite de mettre des apostrophes pour des champs de type entier :wink:

Posté : 29 déc. 2005, 14:55
par fab
et c'est quoi cette erreur ? :p

Posté : 29 déc. 2005, 15:26
par dam-s
echo $insertvaliddate;
donne donc

Code : Tout sélectionner

INSERT INTO chds_cours_recup_horraire (ID_couple, ID_cours, ID_date, Matin, Après_Midi, Soir, inscription) VALUES
[Truc] ou aie-je mis des apostrophe (je croyais les avoir deja retier)

[fab] l'erreur je ne sais pas ou elle est justement je la cherche...

si vous vouler tous le code je peut le metre mais ca risque de charger la page en code inutile...

Posté : 29 déc. 2005, 15:40
par Truc
bon ben c'est clair tu n'entre pas dans la boucle pour construire le reste de la requete puisqu'il n'y a rien apres "VALUES" dans la requete.

à quoi correspond cette boucle
for($i=$iddate;$i<=$totalRows_rsselectcours_horraire;$i++)
Pour les apostrophes il y en a là:
$values.= "('$ID_couple_1', '$ID_cours','".$i."',
ce sont des id donc je suppose des entiers donc:
$values.= "($ID_couple_1, $ID_cours,".$i.",

Posté : 29 déc. 2005, 20:35
par dam-s
la boucle me permet de traiter les differente ligne car il n'y en a pas tjr le meme nombre tu vois ???

ok pour les apostrophe mais je ne vois tjr pas pourquoi j'aie cette erreur

Posté : 29 déc. 2005, 20:39
par Truc
je ne vois tjr pas pourquoi j'aie cette erreur
bon ben c'est clair tu n'entre pas dans la boucle pour construire le reste de la requete
verifis la condition de la boucle elle ne doit pas etre bonne:

fait un simple test, inser un echo 'test'; dans la boucle pour voir si tu y entre ou pas :wink:

Posté : 29 déc. 2005, 21:08
par dam-s
je ne voi pas ce que tu veux que je fasse ....

Posté : 29 déc. 2005, 21:27
par Truc
for($i=$iddate;$i<=$totalRows_rsselectcours_horraire;$i++)
            {

echo 'TEST'; // tu regardes s'il y a un affichage de ce echo

if(!isset($_POST['checkbox_Matin'.$i])) $chckmatin=""; else $chckmatin=$_POST['checkbox_Matin'.$i];
if(!isset($_POST['checkbox_Après_Midi'.$i])) $chckapremidi=""; else $chckapremidi=$_POST['checkbox_Après_Midi'.$i];
if(!isset($_POST['checkbox_Soir'.$i])) $chcksoir=""; else $chcksoir=$_POST['checkbox_Soir'.$i];
if(!isset($_POST['checkbox_Non'.$i])) $chckinscrit=""; else $chckinscrit=$_POST['checkbox_Non'.$i];

$values.= "('$ID_couple_1', '$ID_cours','".$i."','".$chckmatin."','".$chckapremidi."','".$chcksoir."','".$chckinscrit."'),";
            } 

Posté : 29 déc. 2005, 21:38
par fab
il existe une synthaxe encore plus courte pour if else
ainsi
if(!isset($_POST['checkbox_Matin'.$i])) $chckmatin=""; else $chckmatin=$_POST['checkbox_Matin'.$i]; 
équivaut à :
$chckmatin = (!isset($_POST['checkbox_Matin'.$i])) ? "" : $_POST['checkbox_Matin'.$i];

Posté : 30 déc. 2005, 00:14
par dam-s
Merci fab j'aie plus l'erreur mais j'aie d'autre probleme ca avance quoi

truc l'echo marche bien ca retourne bien l'info : (avec l'erreur)

Code : Tout sélectionner

TESTINSERT INTO chds_cours_recup_horraire (ID_couple, ID_cours, ID_date, Matin, Après_Midi, Soir, inscription) VALUES ('22', '101','7','Matin','Apres_Midi','Soir','ne sinscrit pas') Warning: Cannot modify header information - headers already sent by (output started at ...\escpaceprive\uti_coursv1_0.php:144) in ...\escpaceprive\uti_coursv1_0.php on line 158

Posté : 30 déc. 2005, 00:20
par Truc
truc l'echo marche bien ca retourne bien l'info : (avec l'erreur)
maintenant oui la requete est complète donc plus de probleme de ce coté ?
la requete est bien exécutée ?

L'autre erreur vient d'un header qui n'est pas visible dans les lignes de code ici présent.Regarde la FAQ pour plus d'infos
:wink:

mais vient certainement de l'affichage de la requete, refait un essaie sans le echo

Posté : 30 déc. 2005, 00:22
par dam-s
en fait ma boucle ne marche pas il ne prend en compte que la derniere ligne de checkbox

et pour mon erreur je sais d'ou elle provient c'est ma redirection et du fait qu'il y a un echo elle n'ets pas traiter ...

Posté : 30 déc. 2005, 00:25
par Truc
en fait ma boucle ne marche pas il ne prend en compte que la derniere ligne de checkbox
d'où l'affichage du echo de TEST, pour verifier le nombre de passages dans la boucle :wink:

sinon à quoi correspondent:
:arrow: $iddate
:arrow: $totalRows_rsselectcours_horraire

dans le formulaire comment sont construits les cases a cocher (attribut name) ?

Posté : 30 déc. 2005, 00:39
par dam-s
exacte je n'aie qu'un seul passage de ma boucle , je n'aie qu'un seul TEST donc 1 seul passage c'est ca ???

$iddate correspond a l'id de ma premiere date donc ma premiere ligne ca me permet de faire demarer ma boucle et ainsi de retomber sur mes id de champ pour $iddate je pense que c'est bon...

$totalRows_rsselectcours_horraire ca c'est normalement le nombre total de ligne selectionner par la requette sql et qui me permet en fesant $iddate+$totalRows_rsselectcours_horraite de retrouver la derniere id de ma ligne et donc stoppper l'incrementtaitoin....

et c'est la le probleme je croi que $totalRows_rsselectcours_horraire ne renvoi que 0

donc la limite est directement atteinte ...

(ce code est generer par dreamweaver...)