IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

Coché un checkbox suivant le resultat d'une requete


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut Coché un checkbox suivant le resultat d'une requete
    Bonjour a tous.

    - J'ai une table Reports avec le nom de mes reports
    - J'ai une table Contact avec les coordonnées de mes contact
    - J'ai une table Report_contact qui contient les 2 clée primaire Id_reports et id_contact pour stocké les report intéressée par le contact.

    Donc je voudrais lister tout les report mais coché uniquement ceux que le contat a choisi.

    Voic ce que j'ai déjà fais :

    j'ai une liste de checkbox qui se crée dynamiquement ( liste tous les report ).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <table id="separation">
    					<?php 
     
    					$reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL 
    					$nb_entrees = mysql_num_rows($reponse);
    					// Puis on fait une boucle pour tout afficher. 
     
    					while($donnees = mysql_fetch_array($reponse))
    					{ 
     
    	   				echo '<tr>
    							<td class="col3"><input type="checkbox" name="cb[]" value="'.$donnees['Id_reports'].'" '; echo'>  
              					<td class="col4">' . $donnees['Name'] . '</td>';
              					$date= substr_replace($donnees['Date'], '', 7, 3);
              					echo '<td class="col5">' . $date . '</td>
            	 			 </tr>';
    					}
    					?>	          
    					</table>
    Ensuite j'ai voulu mettre une condition pour coché mes checkbox si il retrouve le meme id_report que dans ma table de liaison mais je n'arrive pas...

    voici mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <table id="separation">
    					<?php 
     
    					$reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL 
    					$nb_entrees = mysql_num_rows($reponse);
    					// Puis on fait une boucle pour tout afficher. 
     
    					while($donnees = mysql_fetch_array($reponse))
    					{ 
    					$rep = mysql_query("SELECT Id_reports FROM reports_contacts WHERE Id_contacts=".$donnees['Id_reports']."");
    					$check = mysql_fetch_array($rep);
     
    	   				echo '<tr>
    							<td class="col3"><input type="checkbox" name="cb[]" value="'.$donnees['Id_reports'].'"';if ($donnees['Id_reports']==$check['Id_reports']){echo "CHECKED";}; echo'>  
              					<td class="col4">' . $donnees['Name'] . '</td>';
              					$date= substr_replace($donnees['Date'], '', 7, 3);
              					echo '<td class="col5">' . $date . '</td>
            	 			 </tr>';
    					}
    					?>	          
    					</table>
    j'ai surement un problème dans ma condition IF car aucune n'est cochée pourtant j'ai un contact qui est intéresse par 2 reports.

    Merci

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    j'ai essayé de mettre cette condition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <td class="col3"><input type="checkbox" name="cb[]" value="'.$donnees['Id_reports'].'"'; if (in_array($donnees['Id_reports'], $check)){ echo 'checked="checked"';} echo'>
    mais j'ai cette erreur :
    Warning: in_array() [function.in-array]: Wrong datatype for second argument in C:\Program Files\EasyPHP 2.0b1\www\SellMate\Contacts\updatecontacts.php on line 520
    >

  3. #3
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    Salut,

    Je ne vois pas trop le souci. Mais as-tu regardé le code html généré, il y a peut-être une erreur de syntaxe dans la balise générée.
    Peux-tu donc nous afficher le code html d'un input ?

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE Id_contacts=".$donnees['Id_reports']
    Pourquoi l'id du "contact" serait egale à l'id d'un "report"
    Moi je tenterais un truc comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM t_report LEFT JOIN tl_report_contact USING (Id_report) WHERE tl_report_contact.Id_contact = ' . $id_du_contact . ' OR Id_contact IS NULL
    tu recoltes donc tous les reports avec soit id_contact soit un null s'il n'est pas dans la table.

    Mais as-tu regardé le code html généré, il y a peut-être une erreur de syntaxe dans la balise générée.
    Une mauvaise syntaxe html ne provoque pas une erreur PHP.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    593
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 593
    Par défaut
    effectivement j'avais fais un copier coller de trop.

    Maintenant je n'ai plus d'erreur mais par contre toutes mes checkbox sont cochées

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $reponse = mysql_query("SELECT * FROM reports WHERE Listing=1 ORDER BY Name "); // Requête SQL 
    					$nb_entrees = mysql_num_rows($reponse);
    					// Puis on fait une boucle pour tout afficher. 
     
    					while($donnees = mysql_fetch_array($reponse))
    					{ 
    					$rep = mysql_query("SELECT Id_reports FROM reports_contacts WHERE Id_reports=".$donnees['Id_reports']."");
    					$check = mysql_fetch_array($rep);
     
    	   				echo '<tr>
    							<td class="col3"><input type="checkbox" name="cb[]" value="'.$donnees['Id_reports'].'"'; if (in_array($donnees['Id_reports'], $check)){echo 'checked="checked"';} echo'>

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    in_array($donnees['Id_reports'], $check)
    Ce n'est pas id_report que tu cherches, c'est l'id du contact connecté.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

Discussions similaires

  1. [AC-2007] Mise en forme conditionnelle suivant le resultat d'une requete
    Par Danceg dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 11/05/2012, 06h07
  2. Réponses: 7
    Dernier message: 04/10/2007, 10h10
  3. Réponses: 2
    Dernier message: 29/11/2004, 12h13
  4. Syntaxe pour avoir un seul resultat dans une requete
    Par Pompil dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/09/2003, 15h51
  5. [VB6] [Excel] Résultat d'une requete ds une feuille
    Par elifqaoui dans le forum VB 6 et antérieur
    Réponses: 12
    Dernier message: 07/01/2003, 17h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo