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 :

Plusieurs valeurs pour un champ sql


Sujet :

PHP & Base de données

  1. #1
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut Plusieurs valeurs pour un champ sql
    Bonjour,

    Je vais essayer d'être claire et me faire comprendre :-)

    Pour une centrale de mobilité, je dois créer un site internet permettant aux internautes de retrouver tous les moyens de transports alternatifs aux transports en commun dans leur commune.

    J'ai donc une table "communes", une table "catégorie" (pour le type de transport) et une table "service" avec tous le descriptif du service.

    Sur ma page d'accueil, j'ai un formulaire demandant aux gens de sélectionner leur commune et le type de transports souhaité (personne à mobilité réduite, taxi, ...).

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
     
    <h3>2. Rechercher une solution de mobilité alternative dans ma commune :</h3>	
     
     
    <form action="communes.php" method="POST">
     
     
    <?php // communes
    	$reponse = $bdd->query("SELECT * FROM communes ORDER BY commune ASC;");
    ?>
     
     
    <select value="id_communes" name="id_communes" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['commune'].'</option>';
     
    }
    		$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>
    ?>
    		</select><br>
     
    <h3>3. De quel type de transport adapté avez-vous besoin ? </h3>
     
    	<?php // categories
    	$reponse = $bdd->query("SELECT * FROM categories ORDER BY id;");
    ?>
     
    <select value="id_categories" name="id_categories" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['categorie'].'</option>';
     
     
    ?>
     
    	<?php }
    	$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>	</select>		<br>
     
     
    	<input type="submit" value="Rechercher" class="btnrouge"/>
    										</form>
    Après avoir sélectionné les deux informations, on affiche tous les services relatifs au type de transport et à la commune souhaitée :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php // 1- requête
    $sql = "SELECT S.*, C.*, T.*
    	FROM services S
    	INNER JOIN communes C 
    		ON S.id_communes = C.id
    	INNER JOIN categories T 
    		ON S.id_categories = T.id
    	WHERE S.id_communes = :id_communes
    	AND S.id_categories = :id_categories
    	";
    // 2- Préparation de la requête
    $reponse = $bdd->prepare( $sql ); 
    // 3- Exécution, avec passage des paramètres externes
    $reponse->execute(array(
    	':id_communes' => $_POST["id_communes"],
    	':id_categories' => $_POST["id_categories"]
    ));
     
    while ($donnees = $reponse->fetch())
    {?>
     
    				<div class="col-lg-12">
    				<div class="pricing-box-alt">
    					<div class="pricing-heading">
    					<div class="col-lg-4">
    						<img src="img/logos/<?php echo nl2br($donnees['logo']);?>" style="width : 160px;"/>
    					</div>
     
    									<div class="col-lg-8">
     
     
    						<h4 class=""><?php echo ($donnees['nom']);?></h4>
    						<p><?php echo nl2br($donnees['motif_de_transport']);?><br>
    						<p class="beneficiaires"><strong>Bénéficiaires : </strong><?php echo nl2br($donnees['beneficiaires']);?></p><br><br>
     
     
    						</div>
     
    					<div class="pricing-action">
    						<a href="service.php?idservice=<?php echo $donnees['idservice']; ?>" class="btnrouge"><i class="icon-bolt"></i> Plus d'informations sur ce service</a>
    										</div></div>
    					</div>
    				</div>
     
    <?php				
     
    }
    $reponse->closeCursor(); 
    ?>
    Tout ceci fonctionne, mon problème, le voici : les services de transport peuvent se retrouver dans plusieurs communes et plusieurs catégories. Je pense qu'on ne peut pas mettre plusieurs valeurs dans un champ, je ne peux donc pas mettre dans "id_communes", 1,3,5 pour faire le lien avec la table commune et c'est là que je cale.

    Voici comment mes tables sont formées:
    communes : id, commune
    categories : id, catégorie
    services : idservice (primary key), id_communes, id_categories, nom, type_de_service, etc.

    Pouvez-vous m'aider ? Je suis sûr que ça ne doit pas être compliqué mais je ne sais pas par où commencer.

    Merci

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Bonjour,

    vois du cote des tables intermediaires.

    Si j'ai bien compris, tu as plusieurs communes, plusieurs moyens de transports, et des descriptifs (en fait j'ai pas trop compris ton histoire de descriptif, mais c'est pas grave...). une commune a plusieurs moyens de transport et inversement et et suivant ce couple des descriptifs.

    Perso je ferai une table commune, une table transports, comme tu as fait.
    Une table descriptif, sauf que dans celle ci tu mets juste : idservice (primary key),nom, type_de_service, etc.

    et pour finir une table intermediaire, qui unifie les trois autres : idIntermediare(quoi que facultatif), id_communes, id_categories, id_service.

    cette table te permet de tout gerer, si tu as commune id_C=1 pour transport id_T=2 id_T=6, et pour service id_S=8 id_S=14
    tu auras plusieurs tuple (ligne) :
    id=1 id_C=1 id_T=3 i d_S=8
    id=2 id_C=1 id_T=6 id_S=14
    id=3 id_C=19 id_T=6 id_S=8 (la une autre commune, meme moyen de transport, un autre descriptif)
    ....
    .....


    Evidemment tous ces id (id_communes, id_categories, id_service) de ta table intermediare sont des foreign keys des autres tables, donc via les jointures tu recupereras les infos que tu desirs.

  3. #3
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    Merci pour la réponse.

    En gros, comme exemple :
    Dans la table "services", on retrouve "Ambulance X" avec ses horaires, ses tarifs, sa description.
    "Ambulance X" est dans les catégories "transport pour personne à mobilité réduite" et dans la catégorie "transport médical assisté"
    "Ambulance X" est active sur la commune A, B et C.

    Donc sur la page d'accueil, quand l'internaute choisi sa commune et le type de déplacement souhaité, le site affiche tous les services disponibles par rapport à ses critères.

    Je vais tester ce que vous avez mis ;-)

    Merci

  4. #4
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    J'ai bien modifié mes bases de données mais je cale quand même sur comment faire pour que "Ambulance X", par exemple, soit lié à plusieurs communes. Même en faisant une table intermédiaire, on ne sait pas le lié à plusieurs id de la table communes ?

  5. #5
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Donc si j'ai bien compris :


    si il y a plusieurs services par moyen de transport alors seconde table intermediaire.


    ca donne :

    table commune => InterCT => plusieurs moyens de transport => InterTS =>plusieurs services par moyen de transport



    table commune inchange

    InterCT
    id_commune|id_transport

    table transport inchange

    T.interTS
    id_transport|id_service


    et tu fais des multiples jointures, tu joins les tables les unes aux autres, comme tu as fais deja.....


    dis moi si ca te parles ??

  6. #6
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Bon voila,

    Je t ai fait un exemple suivant le deuxieme model que je t ai indique (2 tables intermediaires): table commune => InterCT => plusieurs moyens de transport => InterTS =>plusieurs services par moyen de transport

    j'ai donc recreer 5 tables :


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    -- phpMyAdmin SQL Dump
    -- version 4.7.7
    -- https://www.phpmyadmin.net/
    --
    -- Host: localhost:8889
    -- Generation Time: Jun 19, 2019 at 05:03 AM
    -- Server version: 5.6.38
    -- PHP Version: 7.2.1
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
    --
    -- Database: `help`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `commune`
    --
     
    CREATE TABLE `commune` (
      `id` int(11) NOT NULL,
      `nom_commune` varchar(30) COLLATE utf8_unicode_ci NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `commune`
    --
     
    INSERT INTO `commune` (`id`, `nom_commune`) VALUES
    (1, 'paris'),
    (2, 'lille'),
    (3, 'marseille'),
    (4, 'toulouse');
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `IntCT`
    --
     
    CREATE TABLE `IntCT` (
      `id_commune` int(11) NOT NULL,
      `id_transport` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `IntCT`
    --
     
    INSERT INTO `IntCT` (`id_commune`, `id_transport`) VALUES
    (1, 2),
    (1, 3),
    (2, 3),
    (2, 2),
    (2, 1),
    (3, 2),
    (4, 2),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `IntTS`
    --
     
    CREATE TABLE `IntTS` (
      `id_transport` int(11) NOT NULL,
      `id_service` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `IntTS`
    --
     
    INSERT INTO `IntTS` (`id_transport`, `id_service`) VALUES
    (1, 1),
    (1, 2),
    (2, 1),
    (2, 4),
    (3, 2),
    (3, 3),
    (3, 4),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `service`
    --
     
    CREATE TABLE `service` (
      `id` int(11) NOT NULL,
      `nom_service` varchar(30) COLLATE utf8_unicode_ci NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `service`
    --
     
    INSERT INTO `service` (`id`, `nom_service`) VALUES
    (1, 'ambulance'),
    (2, 'restauration'),
    (3, 'tourisme'),
    (4, 'bien-etre');
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `transport`
    --
     
    CREATE TABLE `transport` (
      `id` int(11) NOT NULL,
      `nom_transport` varchar(30) COLLATE utf8_unicode_ci NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `transport`
    --
     
    INSERT INTO `transport` (`id`, `nom_transport`) VALUES
    (1, 'velo'),
    (2, 'voiture'),
    (3, 'train'),
    (4, 'avion');
     
    --
    -- Indexes for dumped tables
    --
     
    --
    -- Indexes for table `commune`
    --
    ALTER TABLE `commune`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Indexes for table `service`
    --
    ALTER TABLE `service`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Indexes for table `transport`
    --
    ALTER TABLE `transport`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT for dumped tables
    --
     
    --
    -- AUTO_INCREMENT for table `commune`
    --
    ALTER TABLE `commune`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
     
    --
    -- AUTO_INCREMENT for table `service`
    --
    ALTER TABLE `service`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
     
    --
    -- AUTO_INCREMENT for table `transport`
    --
    ALTER TABLE `transport`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;

    1er exemple tu veux toutes les infos d'une commune d'un coup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //affiche tout => tout pour la commune id=1 (ici Paris): les moyens de transport + tous les services qui leurs correspondent
    SELECT * FROM help.commune
    INNER JOIN help.IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = 1;
    2eme exemples tu veux pour commune definit et un transport definit les services dispo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    //affiche pour la commune id=1 tous les services correspondant au moyen de transport id=3 (train)
    SELECT * FROM help.commune
    INNER JOIN help.IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = 1 AND transport.id = 3;
    tu vois le principe, apres vous mettez/recherchez ce que vous voulez.

    Note qu il tres tres tres fortement recommander de mettre des foreign-keys sur chaque colonne des tables intermediaires, "ca protege des erreurs de saisies", mais en plus ca te permettra de mettre ON DELETE par exemple, permettant de mettre a jour automatiquement les tables intermediaires si un moyen de transport venait a diparaitre par exemple....

    ps: en esperant avoir bien compris ton probleme !!!!

  7. #7
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Ici c'est simplement pour te montrer comment obtenir le meme resultat avec une seule table intermediaire a 3 colonnes (la premiere solution que je t'avais propose).

    id=1 id_C=1 id_T=3 i d_S=8
    id=2 id_C=1 id_T=6 id_S=14
    id=3 id_C=19 id_T=6 id_S=8 (la une autre commune, meme moyen de transport, un autre descriptif)
    ....
    .....


    Cependant on prefere en general, utiliser 2 tables intermediaire (c'est plus clair).

    rajoute la table intUni a ta database (help)

    Code sql : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    -- phpMyAdmin SQL Dump
    -- version 4.7.7
    -- https://www.phpmyadmin.net/
    --
    -- Host: localhost:8889
    -- Generation Time: Jun 19, 2019 at 05:57 AM
    -- Server version: 5.6.38
    -- PHP Version: 7.2.1
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
    --
    -- Database: `help`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Table structure for table `intUni`
    --
     
    CREATE TABLE `intUni` (
      `id_commune` int(11) NOT NULL,
      `id_transport` int(11) NOT NULL,
      `id_service` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Dumping data for table `intUni`
    --
     
    INSERT INTO `intUni` (`id_commune`, `id_transport`, `id_service`) VALUES
    (1, 3, 4),
    (1, 2, 4),
    (1, 2, 1),
    (1, 3, 3),
    (1, 3, 2),
    (2, 1, 1),
    (2, 3, 2),
    (2, 3, 4),
    (2, 2, 4),
    (2, 2, 1),
    (2, 3, 3),
    (3, 2, 4),
    (3, 2, 1),
    (4, 3, 2),
    (4, 3, 4),
    (4, 2, 4),
    (4, 3, 3),
    (4, 2, 1);

    voici donc la premiere requete (qui revient exactement au meme que la premiere precedente)

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM help.commune
    INNER JOIN help.intUni 
    	ON commune.id = intUni.id_commune
    INNER JOIN help.transport
    	ON intUni.id_transport = transport.id
    INNER JOIN help.service
    	ON intUni.id_service = service.id 
    WHERE commune.id = 1;

    et la seconde

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    SELECT * 
    FROM help.commune
    INNER JOIN help.intUni 
    	ON commune.id = intUni.id_commune
    INNER JOIN help.transport
    	ON intUni.id_transport = transport.id
    INNER JOIN help.service
    	ON intUni.id_service = service.id 
    WHERE commune.id = 1 AND transport.id = 3;

  8. #8
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    Salut,
    Merci pour la réponse.

    J'ai donc ajusté ma base de données et testé ta requête dans PHPMYADMIN. sur Phpmyadmin, ça marche.

    Je l'ai alors adapté pour mon site et il n'affiche rien,même pas un message d'erreur

    Voici les codes :
    Page formulaire de recherche

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    <h3>2. Rechercher une solution de mobilité alternative dans ma commune :</h3>	
     
     
    <form action="communes.php" method="POST">
     
     
    <?php // communes
    	$reponse = $bdd->query("SELECT * FROM commune ORDER BY nom_commune ASC;");
    ?>
     
     
    <select value="id_commune" name="id_commune" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['nom_commune'].'</option>';
     
    }
    		$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>
     
    		</select><br>
     
    <h3>3. De quel type de transport adapté avez-vous besoin ? </h3>
     
    	<?php // categories
    	$reponse = $bdd->query("SELECT * FROM transport ORDER BY id;");
    ?>
     
    <select value="id_transport" name="id_transport" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['nom_transport'].'</option>';
     
     
    ?>
     
    	<?php }
    	$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>	</select>		<br>
     
     
    	<input type="submit" value="Rechercher" class="btnrouge"/>
    										</form>
    Page de résultats :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    								<h2>Résultats de la recherche</h2>
     
    				<?php // 
     
    $sql = "SELECT * FROM help.commune
    INNER JOIN IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = id_commune AND transport.id = id_transport;
    	";
    $reponse = $bdd->prepare( $sql ); 
     
    $reponse->execute(array(
    	':commune.id' => $_POST["id_commune"],
    	':transport.id' => $_POST["id_transport"]
    ));
     
    while ($donnees = $reponse->fetch())
    {?>
     
    				<div class="col-lg-12">
    				<div class="pricing-box-alt">
    					<div class="pricing-heading">
    					<div class="col-lg-4">
    						<img src="img/logos/<?php echo nl2br($donnees['logo']);?>" style="width : 160px;"/>
    					</div>
     
    									<div class="col-lg-8">
     
     
    						<h4 class=""><?php echo ($donnees['nom_service']);?></h4>
    						<p><?php echo nl2br($donnees['motif_de_transport']);?><br>
    						<p class="beneficiaires"><strong>Bénéficiaires : </strong><?php echo nl2br($donnees['beneficiaires']);?></p><br><br>
     
     
    						</div>
     
    					<div class="pricing-action">
    						<a href="service.php?id=<?php echo $donnees['id']; ?>" class="btnrouge"><i class="icon-bolt"></i> Plus d'informations sur ce service</a>
    										</div></div>
    					</div>
    				</div>
     
    <?php				
     
    }
    $reponse->closeCursor(); 
    ?>

  9. #9
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    essais cette feuille deja.

    est ce que tes autres requetes fonctionnes ?

    peux tu me faire voir ta connexion en Bdd ??


    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    <?php  
     
    $sql = "SELECT * FROM help.commune
    INNER JOIN IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = :id_commune AND transport.id = :id_transport;
    	";
    $reponse = $bdd->prepare($sql);
    $reponse->bindValue(':id_commune', $_POST["id_commune"], PDO::PARAM_INT);
    $reponse->bindValue(':id_transport', $_POST["id_transport"], PDO::PARAM_INT);
    $reponse->execute();
     
     
    while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))
    {?>
     
    				<div class="col-lg-12">
    				<div class="pricing-box-alt">
    					<div class="pricing-heading">
    					<div class="col-lg-4">
    						<img src="img/logos/<?php echo nl2br($donnees['logo']);?>" style="width : 160px;"/>
    					</div>
     
    									<div class="col-lg-8">
     
     
    						<h4 class=""><?php echo ($donnees['nom_service']);?></h4>
    						<p><?php echo nl2br($donnees['motif_de_transport']);?><br>
    						<p class="beneficiaires"><strong>Bénéficiaires : </strong><?php echo nl2br($donnees['beneficiaires']);?></p><br><br>
     
     
    						</div>
     
    					<div class="pricing-action">
    						<a href="service.php?id=<?php echo $donnees['id']; ?>" class="btnrouge"><i class="icon-bolt"></i> Plus d'informations sur ce service</a>
    										</div></div>
    					</div>
    				</div>
     
    <?php				
     
    }
    $reponse->closeCursor();

  10. #10
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    La connexion BDD

    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
     <?php
     
    try
     
    {
     
        $bdd = new PDO("mysql:host=localhost;dbname=mobilef;charset=utf8", "root", "root");
     
    }
     
    catch(Exception $e)
     
    {
     
     
            die('Erreur : '.$e->getMessage());
     
    }
    ?>
    J'ai essayé le nouveau code mais la même chose. Quand je reclique sur rechercher, il me dit que le problème vient de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $reponse->bindValue(':id_commune', $_POST["id_commune"], PDO::PARAM_INT);
    $reponse->bindValue(':id_transport', $_POST["id_transport"], PDO::PARAM_INT);

  11. #11
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    ce qui me chagrine a premiere vue c'est que sur ta connection tu as dbname=mobilef


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $bdd = new PDO("mysql:host=localhost;dbname=mobilef;charset=utf8", "root", "root");

    sur la requete ici on a help

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $sql = "SELECT * FROM help.commune
    INNER JOIN IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = :id_commune AND transport.id = :id_transport;
    	";

    donc soit tu change 'mobilef' par 'help' (ou inversement) mais dans ce cas tu retire tous les help de la requete (car ta bdd est deja cite dans la connection).

    ou tu fait une connexion sans bdd de preciser (et tu laisse help ou mobilef)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $bdd = new PDO('mysql:host=localhost','root','root');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    et change comme ca (oups, autant pour moi)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $reponse->bindValue(':id_commune', $_POST["id_commune"]);
    $reponse->bindValue(':id_transport', $_POST["id_transport"]);

  12. #12
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    En modifiant "help" en "mobilef" et en modifiant la connexion à la BDD :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected' in C:\UwAmp\www\Mobilefv3\communes.php on line 62
    ( ! ) PDOException: SQLSTATE[3D000]: Invalid catalog name: 1046 No database selected in C:\UwAmp\www\Mobilefv3\communes.php on line 62

    En enlevant tous les "Help" et en laissant la connexion ainsi : rien

    Il y a une chose que je n'arrive pas à comprendre, comment une donnée dans la table "service", par exemple "Ambulance" sait à quel type de transport elle appartient et à quelle commune ? Qu'est-ce qui fait le lien entre la table service et les tables "IntTS" et "IntCT" ?

    Par exemple, Ambulance doit aller dans "Transport pour raison médical non urgente" (id 1 dans la table transport) et dans "Transport pour PMR" (id 2 dans la table transport) mais elle doit se retrouver sur plusieurs communes aussi.

    Il ne manque pas un lien ?

    Merci

  13. #13
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    La requete SQL fonctionne, ca c est sur (car elle fonctionne ds phpMyAdmin). le pourquoi du comment des jointures on pourra y revenir plus tard .

    ton probleme vient de la connection a la bdd (c'est ce que dit le message d'erreur)=>php ne trouve pas ta bdd.

    ""En modifiant "help" en "mobilef" et en modifiant la connexion à la BDD :"" =>As tu modifier le nom de ta bdd dans phpMyAdmin (ce n'est plus help mais mobilef) ?


    ""En enlevant tous les "Help" et en laissant la connexion ainsi : rien"" => pareil, est ce que le nom de ta bdd correspond ds phpMyAdmin ? Car pas de message d'erreur indique que la connection a la bdd fonctionne, donc ds tons cas que php se connecte a "mobilef", mais si ds phpMyAdmin tu tes tables dans "help", ca ne renverra effectivement rien.....

  14. #14
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    le probleme peut aussi venir d'ailleurs est tu sur que tes $_POST renvoient des valeurs ???

    ouvre une autre page php et execute ce code, comme ca tu testera ta connection + ta requete, si ca fonctionne c'est que ca vient d'ailleurs


    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
    22
    23
    24
    25
    26
    $bdd = new PDO('mysql:host=localhost','root','root');
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     
     
     
     
    $sql = "SELECT * FROM help.commune
    INNER JOIN IntCT 
    	ON commune.id = IntCT.id_commune
    INNER JOIN help.transport
    	ON IntCT.id_transport = transport.id
    INNER JOIN help.IntTS
    	ON transport.id = IntTS.id_transport
    INNER JOIN help.service
    	ON IntTS.id_service = service.id
    WHERE commune.id = 1 AND transport.id = 2//ici j'ai mis 1 et 2 comme ca, assure toi que correspond a quelque chose.
    	";
    $reponse = $bdd->prepare($sql);
    $reponse->execute();
     
     
    $donnees = $reponse->fetch(PDO::FETCH_ASSOC))
     
    echo '<pre>';
    print_r($donnees);
    echo '<pre>';

  15. #15
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    Dans phpmyadmin, c'est bien "mobilef". J'ai tout revérifié. Il a l'air de l'avoir trouvée.

    Quand je clique sur "chercher", voici ce qu'il m'affiche sur la page comme erreur :
    ( ! ) Notice: Undefined index: id_commune in C:\UwAmp\www\Mobilefv3\communes.php on line 42
    ( ! ) Notice: Undefined index: id_transport in C:\UwAmp\www\Mobilefv3\communes.php on line 43

    J'ai testé également la valeur des $_POST, il m'affiche : ( ! ) Parse error: syntax error, unexpected ')' in C:\UwAmp\www\Mobilefv3\test.php on line 23
    Qui équivaut à "$donnees = $reponse->fetch(PDO::FETCH_ASSOC))"


    Donc pour le moment, ça se présente :
    La page de recherche index.php

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    <form action="communes.php" method="POST">
     
     
    <?php // communes
    	$reponse = $bdd->query("SELECT * FROM mobilef.commune ORDER BY nom_commune ASC;");
    ?>
     
     
    <select value="id_commune" name="id_commune" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['nom_commune'].'</option>';
     
    }
    		$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>
     
    		</select><br>
     
    <h3>3. De quel type de transport adapté avez-vous besoin ? </h3>
     
    	<?php // categories
    	$reponse = $bdd->query("SELECT * FROM mobilef.transport ORDER BY id;");
    ?>
     
    <select value="id_transport" name="id_transport" type="text" class="form-control">
     
     
            <?php
    while ($donnees = $reponse->fetch())
    {
     
    echo '<option value="'.$donnees['id'].'">'.$donnees['nom_transport'].'</option>';
     
     
    ?>
     
    	<?php }
    	$reponse->closeCursor();
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    	?>	</select>
    La page "communes.php :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    <?php  
     
    $sql = "SELECT * FROM commune
    INNER JOIN intct 
    	ON commune.id = intct.id_commune
    INNER JOIN transport
    	ON intct.id_transport = transport.id
    INNER JOIN intts
    	ON transport.id = intts.id_transport
    INNER JOIN service
    	ON intts.id_service = service.id
    WHERE commune.id = :id_commune AND transport.id = :id_transport;
    	";
    $reponse = $bdd->prepare($sql);
    $reponse->bindValue(':id_commune', $_POST["id_commune"]);
    $reponse->bindValue(':id_transport', $_POST["id_transport"]);
    $reponse->execute();
     
     
    while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))
    {?>
     
    				<div class="col-lg-12">
    				<div class="pricing-box-alt">
    					<div class="pricing-heading">
    					<div class="col-lg-4">
    						<img src="img/logos/<?php echo nl2br($donnees['logo']);?>" style="width : 160px;"/>
    					</div>
     
    									<div class="col-lg-8">
     
     
    						<h4 class=""><?php echo ($donnees['nom_service']);?></h4>
    						<p><?php echo nl2br($donnees['motif_de_transport']);?><br>
    						<p class="beneficiaires"><strong>Bénéficiaires : </strong><?php echo nl2br($donnees['beneficiaires']);?></p><br><br>
     
     
    						</div>
     
    					<div class="pricing-action">
    						<a href="service.php?id=<?php echo $donnees['id']; ?>" class="btnrouge"><i class="icon-bolt"></i> Plus d'informations sur ce service</a>
    										</div></div>
    					</div>
    				</div>
     
    <?php				
     
    }
    $reponse->closeCursor(); ?>
    		</div>
    Et la bdd :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    Base de données :  `mobilef`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `commune`
    --
     
    CREATE TABLE `commune` (
      `id` int(11) NOT NULL,
      `nom_commune` varchar(30) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `commune`
    --
     
    INSERT INTO `commune` (`id`, `nom_commune`) VALUES
    (1, 'Aubel'),
    (2, 'Baelen'),
    (3, 'Dison'),
    (4, 'Herve'),
    (5, 'Jalhay'),
    (6, 'Lierneux'),
    (7, 'Limbourg'),
    (8, 'Malmedy'),
    (9, 'Olne'),
    (10, 'Pepinster'),
    (11, 'Plombières'),
    (12, 'Spa'),
    (13, 'Stavelot'),
    (14, 'Stoumont'),
    (15, 'Theux'),
    (16, 'Thimister-Clermont'),
    (17, 'Trois-Ponts'),
    (18, 'Verviers'),
    (19, 'Waimes'),
    (20, 'Welkenraedt');
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `intct`
    --
     
    CREATE TABLE `intct` (
      `id_commune` int(11) NOT NULL,
      `id_transport` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Contenu de la table `intct`
    --
     
    INSERT INTO `intct` (`id_commune`, `id_transport`) VALUES
    (1, 2),
    (1, 3),
    (2, 3),
    (2, 2),
    (2, 1),
    (3, 2),
    (4, 2),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `intts`
    --
     
    CREATE TABLE `intts` (
      `id_transport` int(11) NOT NULL,
      `id_service` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Contenu de la table `intts`
    --
     
    INSERT INTO `intts` (`id_transport`, `id_service`) VALUES
    (1, 1),
    (1, 2),
    (2, 1),
    (2, 4),
    (3, 2),
    (3, 3),
    (3, 4),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `service`
    --
     
    CREATE TABLE `service` (
      `id` int(11) NOT NULL,
      `nom_service` varchar(2500) NOT NULL,
      `type_de_service` varchar(2500) NOT NULL,
      `motif_de_transport` varchar(2500) NOT NULL,
      `beneficiaires` varchar(2500) NOT NULL,
      `zone_desservie` varchar(2500) NOT NULL,
      `prise_de_rdv` varchar(2500) NOT NULL,
      `horaire_de_prise_en_charge` varchar(2500) NOT NULL,
      `vehicules` varchar(2500) NOT NULL,
      `remarques` text NOT NULL,
      `tarif` varchar(2500) NOT NULL,
      `accompagnement` text NOT NULL,
      `convention` varchar(255) NOT NULL,
      `adresse` varchar(2500) NOT NULL,
      `telephone` varchar(255) NOT NULL,
      `courriel` varchar(2500) NOT NULL,
      `site` varchar(2500) NOT NULL,
      `presentation` text NOT NULL,
      `logo` varchar(255) NOT NULL,
      `icone` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `service`
    --
     
    INSERT INTO `service` (`id`, `nom_service`, `type_de_service`, `motif_de_transport`, `beneficiaires`, `zone_desservie`, `prise_de_rdv`, `horaire_de_prise_en_charge`, `vehicules`, `remarques`, `tarif`, `accompagnement`, `convention`, `adresse`, `telephone`, `courriel`, `site`, `presentation`, `logo`, `icone`) VALUES
     
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `transport`
    --
     
    CREATE TABLE `transport` (
      `id` int(11) NOT NULL,
      `nom_transport` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `transport`
    --
     
    INSERT INTO `transport` (`id`, `nom_transport`) VALUES
    (1, 'Transport pour raison médicale non-urgente'),
    (2, 'Transport adapté PMR'),
    (3, 'Transport ordinaire'),
    (4, 'Taxis');
     
    --
    -- Index pour les tables exportées
    --
     
    --
    -- Index pour la table `commune`
    --
    ALTER TABLE `commune`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Index pour la table `service`
    --
    ALTER TABLE `service`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Index pour la table `transport`
    --
    ALTER TABLE `transport`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables exportées
    --
     
    --
    -- AUTO_INCREMENT pour la table `commune`
    --
    ALTER TABLE `commune`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
    --
    -- AUTO_INCREMENT pour la table `service`
    --
    ALTER TABLE `service`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
    --
    -- AUTO_INCREMENT pour la table `transport`
    --
    ALTER TABLE `transport`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  16. #16
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    je ne peux pas installer ta bdd.

    dans phpMyAdmin clic sur ta bdd "mobilef", ensuite tu clic sur 'export' puis 'go'. fait un copier/coller et envoie.

  17. #17
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    -- phpMyAdmin SQL Dump
    -- version 4.5.4.1
    -- http://www.phpmyadmin.net
    --
    -- Client :  localhost
    -- Généré le :  Jeu 20 Juin 2019 à 13:20
    -- Version du serveur :  5.7.11
    -- Version de PHP :  5.6.18
     
    SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
    SET time_zone = "+00:00";
     
     
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8mb4 */;
     
    --
    -- Base de données :  `mobilef`
    --
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `commune`
    --
     
    CREATE TABLE `commune` (
      `id` int(11) NOT NULL,
      `nom_commune` varchar(30) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `commune`
    --
     
    INSERT INTO `commune` (`id`, `nom_commune`) VALUES
    (1, 'Aubel'),
    (2, 'Baelen'),
    (3, 'Dison'),
    (4, 'Herve'),
    (5, 'Jalhay'),
    (6, 'Lierneux'),
    (7, 'Limbourg'),
    (8, 'Malmedy'),
    (9, 'Olne'),
    (10, 'Pepinster'),
    (11, 'Plombières'),
    (12, 'Spa'),
    (13, 'Stavelot'),
    (14, 'Stoumont'),
    (15, 'Theux'),
    (16, 'Thimister-Clermont'),
    (17, 'Trois-Ponts'),
    (18, 'Verviers'),
    (19, 'Waimes'),
    (20, 'Welkenraedt');
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `intct`
    --
     
    CREATE TABLE `intct` (
      `id_commune` int(11) NOT NULL,
      `id_transport` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Contenu de la table `intct`
    --
     
    INSERT INTO `intct` (`id_commune`, `id_transport`) VALUES
    (1, 2),
    (1, 3),
    (2, 3),
    (2, 2),
    (2, 1),
    (3, 2),
    (4, 2),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `intts`
    --
     
    CREATE TABLE `intts` (
      `id_transport` int(11) NOT NULL,
      `id_service` int(11) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
     
    --
    -- Contenu de la table `intts`
    --
     
    INSERT INTO `intts` (`id_transport`, `id_service`) VALUES
    (1, 1),
    (1, 2),
    (2, 1),
    (2, 4),
    (3, 2),
    (3, 3),
    (3, 4),
    (4, 3);
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `service`
    --
     
    CREATE TABLE `service` (
      `id` int(11) NOT NULL,
      `nom_service` varchar(2500) NOT NULL,
      `type_de_service` varchar(2500) NOT NULL,
      `motif_de_transport` varchar(2500) NOT NULL,
      `beneficiaires` varchar(2500) NOT NULL,
      `zone_desservie` varchar(2500) NOT NULL,
      `prise_de_rdv` varchar(2500) NOT NULL,
      `horaire_de_prise_en_charge` varchar(2500) NOT NULL,
      `vehicules` varchar(2500) NOT NULL,
      `remarques` text NOT NULL,
      `tarif` varchar(2500) NOT NULL,
      `accompagnement` text NOT NULL,
      `convention` varchar(255) NOT NULL,
      `adresse` varchar(2500) NOT NULL,
      `telephone` varchar(255) NOT NULL,
      `courriel` varchar(2500) NOT NULL,
      `site` varchar(2500) NOT NULL,
      `presentation` text NOT NULL,
      `logo` varchar(255) NOT NULL,
      `icone` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `service`
    --
     
    INSERT INTO `service` (`id`, `nom_service`, `type_de_service`, `motif_de_transport`, `beneficiaires`, `zone_desservie`, `prise_de_rdv`, `horaire_de_prise_en_charge`, `vehicules`, `remarques`, `tarif`, `accompagnement`, `convention`, `adresse`, `telephone`, `courriel`, `site`, `presentation`, `logo`, `icone`) VALUES
    (1, 'Aide et Soins à Domicile de l\'Arrondissement de Verviers\r\n', 'Service de transport pour personne à mobilité réduite\r\n', 'Médical, Professionnel, Enseignement & Loisir\r\n', 'Notre service s’adresse à toute personne à mobilité réduite, de manière temporaire ou définitive, nécessitant une aide à la marche ou ayant une incapacité affectant la vue ou nécessitant une aide pour s’orienter dans l’espace et dans le temps ou atteint d’une maladie invalidante ou en chaise roulante', 'Nous nous déplaçons dans toute la province de Liège pour autant que l’adresse de votre domicile soit située sur l’une des communes de l’arrondissement francophone de Verviers.\r\n', 'Réservation par téléphone du lundi au vendredi de 8h à 12h au 087/32.90.90.\r\n', 'Prise en charge à partir de 7h30 et jusqu’à 18h\r\n', '5 véhicules (minibus) adaptés\r\n', 'Pour bénéficier du service de Transport Adapté, la personne doit habiter l’arrondissement francophone de Verviers et être une personne à mobilité réduite, à savoir : <ul>\r\n<li> Utiliser un fauteuil roulant ;</li>\r\n<li> Avoir une incapacité affectant la vue ;</li>\r\n<li> Avoir des incapacités motrices qui nécessitent une aide à la marche ;</li>\r\n<li> Etre incapable de s’orienter dans le temps ou dans l’espace ;</li>\r\n<li> Souffrir de maladies invalidantes, d’un handicap mental quelconque.</li>\r\n</ul><p>Le service PMR fait des efforts constants pour tenter de satisfaire le plus grand nombre de demandes de déplacement.\r\n \r\nSi toutefois il est impossible de vous prendre en charge, le service essaiera de vous proposer une solution alternative. \r\n\r\nPour les personnes malentendantes ou n’ayant pas l’usage de la parole, les réservations peuvent se faire par e-mail via l’adresse asd-verviers@asd-verviers.be. Une confirmation écrite de la réservation du transport vous sera envoyée par le même biais.\r\n \r\nEn cas d’annulation ou de modification d’une réservation :</p> <ul>\r\n<li>Le client doit aviser le service de transport en téléphonant au 087/32.90.90 ou en laissant un message. Vous permettez ainsi à un autre client occasionnel d’être transporté. </li>\r\n<li> Le client qui oublie d’annuler ses réservations au minimum 48h à l’avance ou qui annule à la porte, engendrant des transports inutiles, s’expose à d’éventuelles mesures restrictives pouvant entraîner le paiement d’un dédommagement.</li>\r\n</ul>\r\n\r\n\r\n', '<p class="justify">Notre service est conventionné avec le TEC Liège-Verviers et applique ses tarifs en fonction des zones traversées :\r\n- 1 à 2 zones : 2€/trajet\r\n- 3 zones et plus : 3€/trajet\r\n\r\nPeuvent voyager à titre gratuit dans le cadre de transports subventionnés par le TEC Liège-Verviers :<ul><li>Les personnes âgées de plus de 65 ans, en possession de la carte 65+, délivré par le TEC;</li>\r\n<li>Les enfants de moins de 12 ans (obligatoirement accompagnés) en possession de la carte délivrée par le TEC;</li>\r\n<li>Les titulaires de la carte nationale de réduction sur les transports en commun pour les personnes aveugles ou malvoyantes.</li>', '', '', 'Rue de Dison, 175 - 4800 Verviers\r\n', '087/32 90 90\r\n', 'asd-verviers@asd-verviers.be\r\n', 'http://verviers.aideetsoinsadomicile.be\r\n', 'Le transport adapté aux personnes à mobilité réduite est un transport de porte à porte, qui s’adresse aux personnes qui répondent aux critères tels que définis par ASTA (Association des Services de Transport Adapté). \r\nLe service de transport facilite l’accès aux soins de santé, favorise l’intégration professionnelle, économique et sociale des PMR. Ces transports leurs permettent de bénéficier d’un degré de mobilité et d’autonomie comparable à celui dont dispose tout un chacun\r\n', 'ASD.png', ''),
    (2, 'CSD - Réseau Solidaris : Service bénévoles\r\n', 'Aide aux déplacements pour raisons médicale non urgentes\r\n', 'Raison médicale non-urgentes\r\n', 'Membres de SOLIDARIS\r\n', '', '06h00-20h00\r\n', '06h-19h00\r\n', 'voitures des Bénévoles\r\n', '', '', '', 'SOLIDARIS\r\n', '\r\n', '04/3382020\r\n', 'info.csdliege@solidaris.be\r\n', 'www.solidaris-liege.be\r\n', 'Ce service est destiné aux personnes qui ont des difficultés à se déplacer par leurs propres moyens.\r\nUne condition : il doit s\'agir d\'un déplacement médical.\r\n', 'csd.png', ''),
    (3, 'CSD - Réseau Solidaris : Service TPMR\r\n', 'Aide aux déplacements pour raisons médicale non urgentes', 'Raison médicale non-urgentes\r\n', 'Membres SOLIDARIS', '', '06h00-20h00\r\n', '06h-19h00\r\n', 'voiture adaptée TPMR\r\n', '', '', '', 'SOLIDARIS\r\n', '', '04/3382020\r\n', 'info.csdliege@solidaris.be\r\n', 'www.solidaris-liege.be\r\n', '"Ce service est destiné aux personnes qui ont des difficultés à se déplacer par leurs propres moyens.\r\nUne condition : il doit s\'agir d\'un déplacement médical."\r\n', 'csd.png', ''),
    (4, 'CSD - Réseau Solidaris : Service Ambulance non-urgente', 'Aide aux déplacements pour raisons médicale non urgentes\r\n', 'Raison médicale non-urgentes\r\n', 'Membres SOLIDARIS\r\n', '06h00-20h00\r\n', '06h-19h00\r\n', '', 'ambulance non-urgente\r\n', '', '', '', 'SOLIDARIS\r\n', '', '04/3382020\r\n', 'info.csdliege@solidaris.be\r\n', 'www.solidaris-liege.be\r\n', 'Ce service est destiné aux personnes qui ont des difficultés à se déplacer par leurs propres moyens.\r\nUne condition : il doit s\'agir d\'un déplacement médical.\r\n', 'csd.png', ''),
    (5, 'CPAS d\'Aubel - Service Déplacements\r\n', 'Service social \r\n', '"Le service peut être sollicité pour :\r\n- Les rendez-vous médicaux et paramédicaux ;\r\n- Les courses répondant aux besoins quotidiens ;\r\n- Les démarches administratives ;\r\n- Les visites aux proches hospitalisés ou résidant en maison de repos.\r\nToute autre demande fera l’objet d’un examen du Comité Spécial du Service Social', '"Le service est accessible à toute personne habitant sur le territoire de la commune d’Aubel et ayant des difficultés de mobilité, comme par exemple :\r\n- Les personnes de plus de 65 ans ;\r\n- Les personnes qui suivent des traitements médicaux lourds ;\r\n- Les personnes n’ayant pas l’autorisation médicale ou administrative pour pouvoir conduire ;\r\n- Les personnes n’ayant pas la possibilité de prendre les transports en commun ou les taxis privés ;\r\n- Les personnes n’ayant pas de réseau familial afin d’assurer leurs déplacements ;\r\n- Les personnes bénéficiaires du revenu d’intégration sociale ou d’une aide financière équivalente ;\r\n- Les personnes visées par la loi du 5 juillet 1998 relative au règlement collectif de dettes ;\r\n- Les personnes bénéficiaires de l’intervention majorée en matière d’assurance soins de santé.\r\nLes personnes devant se déplacer en chaise roulante ne seront pas prises en charge par le service pour deux raisons :\r\n- Les chauffeurs bénévoles ne sont pas formés à la manipulation des personnes à mobilité réduite ;\r\n- Les véhicules des chauffeurs bénévoles ne sont pas adaptés à la prise en charge de personne se trouvant en chaise roulante.\r\n', 'Province de Liège.\r\nLes limites du terroir desservi sont propres à chaque chauffeur bénévole et sont définies par ceux-ci en fonction de leurs disponibilités et leurs possibilités.', 'Entre 17h et 19h du lundi au vendredi\r\n', 'En semaine en fonction des préférences des chauffeurs, très rarement le Week-End (sauf cas d’extrême urgence).\r\n', '3 chauffeurs bénévoles qui utilisent leur véhicule personnel pour les déplacements\r\n', '"Les demandes doivent être formulées au minimum 48h à l’avance uniquement au numéro suivant : 0495/77.29.33.\r\nLes demandes seront traitées dans leur ordre de réception par le bénévole assurant la permanence téléphonique.\r\nEn cas de problème, le C.P.A.S. se réserve le droit de privilégier les déplacements à caractère médical.\r\nLe service ne peut être tenu responsable en cas d’impossibilité d’assurer un transport. Il s’engage à prévenir immédiatement la personne concernée pour lui permettre de prendre d’autres dispositions.\r\nLes personnes souhaitant annuler une réservation sont priées d’avertir le service déplacement au minimum 24h avant le déplacement prévu.\r\nTout désistement non signalé fera l’objet d’une facturation de 5€. \r\nLe service déplacement et le C.P.A.S. se réservent le droit de ne plus desservir les utilisateurs qui auraient, à plus de trois reprises, omis de signaler un désistement.\r\nLes utilisateurs du service devront s’acquitter d’une participation financière de :\r\n- 8 € pour les trajets réalisés sur le territoire de la commune d’Aubel ;\r\n- 0,40 €/km pour les trajets conduisant hors du territoire de la commune d’Aubel.\r\nLe nombre de kilomètres parcourus pendant le déplacement est calculé au départ du domicile des chauffeurs bénévoles, aller et retour.\r\nSi lors d’un déplacement, le chauffeur bénévole conduit un utilisateur à son lieu de rendez-vous, puis qu’il retourne à son domicile (parce que la personne en a pour plusieurs heures par exemple), pour enfin revenir chercher l’utilisateur au lieu de rendez-vous et le reconduire chez lui : deux déplacements aller et retour seront facturés.\r\nLe temps d’accompagnement ou d’attente sera facturé par demi-heure entamée à 1,50€.\r\nLes frais de parking éventuels sont à la charge de la personne véhiculée. De plus, les personnes qui disposent d’une carte de stationnement spécifique sont priées de s’en munir lors du déplacement.\r\nLes paiements des déplacements se font directement aux chauffeurs selon les modalités propres à chaque chauffeur bénévole : paiement en espèces avec reçu ou paiement par virement bancaire après le déplacement avec un reçu."\r\n\r\n', '"Coût du service : \r\n- 0,40 €/km depuis le domicile du chauffeur\r\n- ou forfait de 8 € pour Aubel"\r\n', '"Attente :\r\n- 1,50€ par demi-heure entamée (1,50€/30 min)\r\n\r\nAccompagnement : \r\n- 1,50€ par demi-heure entamée (1,50€/30 min)"\r\n', '', 'Place Albert 1er, 8 - 4880 Aubel\r\n', '0495 / 772933\r\n', '', 'https://www.aubel.be/fr/ma-commune/social/cpas\r\n', '', '', ''),
    (6, 'Diaservice ASBL\r\n', 'Transports accompagnés ou non; exclusivement pour loisirs (transports médicaux exclus)\r\n', 'Transports accompagnés ou non; exclusivement pour loisirs (transports médicaux exclus)\r\n', 'PMR se déplaçant exclusivement en fauteuil roulant, électrique ou non\r\n', 'Durée maximum d\'un service : 3 heures départ et retour au garage, et quelle que soit la distance parcourue (*)\r\n', 'par répondeur (24 heures sur 24, 7 jours sur 7)\r\n', 'par répondeur (24 heures sur 24, 7 jours sur 7)\r\n', 'unevoiture Kangoo adaptée à ce type de transport\r\n', '"(*) En cas d\'interruption d\'un service (arrêt pour visite, restauration, etc), la durée de cette interruption ne peut excéder 1 heure.\r\nA défaut, la voiture retournera au garage (payant). Un deuxième service (payant) peut être organisé pour le retour, lequel ne peut pas intervenir avant un délai minimum de 2 heures (retour du véhicule au garage NON compris)"\r\n', '"Coût du service : \r\n- forfait minimum comprenant 10 km : 6 €\r\n- 0,60 €/km au-delà du forfait depuis et retour au garage (Verviers/Heusy)"\r\n', '', '', 'Rue Libon, 6 - 4800 Verviers\r\n', '087 / 719014\r\n', 'diaservicevoiturages@gmail.com\r\n', 'www.diaservice.be\r\n', 'Tous les services sont assurés par du personnel bénévole.\r\n\r\n', '', ''),
    (9, 'CPAS de Baelen', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''),
    (12, 'CPAS de Jalhay', 'Transport social\r\n', 'tous motifs\r\n', 'Toute personne habitant la commune de Jalhay et rencontrant des difficultés de mobilité.\r\n', 'Province de Liège.\r\n', 'en semaine de 8h30 à 12h et de 13h30 à 16h30\r\n', 'lundi, mardi, jeudi : de 8h30 à 16h30 ; mercredi, vendredi de 8h30 à 12h\r\n', '1 voiture : Renault Kangoo\r\n', '', '"Coût du service : 0,33 €/km depuis le lieu de prise en charge.\r\n\r\nNous calculons les kilomètres à partir du moment où la personne monte dans la voiture et où elle en descend.\r\nEx. si nous effectuons un trajet pour conduire une personne de Jalhay à Verviers (Hôpital).  Nous facturons à partir du moment où la personne monte dans la voiture et cela s’arrête au moment où elle descend à l’hôpital. Le retour de notre chauffeur au CPAS n’est pas compté."\r\n', '"Attente :\r\n- 1€ par quart d\'heure (1,00€/15min)\r\n\r\nAccompagnement : \r\n- 1€ par quart d\'heure (1,00€/15min)"\r\n', '', 'Place du Marché, 164 - 4645 Jalhay\r\n', '087/299010\r\n', 'info@cpasjalhay.be \r\n', 'www.jalhay.be (puis aller sur l’onglet CPAS)\r\n', '"Vous avez un rendez-vous chez un médecin, dans un hôpital, des médicaments à aller chercher à la pharmacie, un rendez-vous chez un coiffeur, des courses à faire ou des démarches administratives et vous n’avez personne pour vous conduire et pas de transport en commun.\r\n\r\nLe CPAS de Jalhay dispose d’une voiture et d’un chauffeur pour vous véhiculer.\r\nPour les personnes qui le désirent, notre chauffeur peut vous aider à faire vos courses ou vous accompagner à l’hôpital.\r\n\r\nVoici le tarif appliqué, celui-ci est unique : \r\n1 € par ¼ d’heure de prestation + 0,33 €/kilomètre.\r\nLa facture est envoyée à la fin du mois, on ne paie jamais le chauffeur.\r\nToute demande est à formuler auprès du CPAS au 087/29.90.10 le plus tôt possible et au plus tard la veille du jour du dépannage.\r\nLe service est accessible du lundi au vendredi de 8 h30 à 16h30 sauf les mercredis après-midi et vendredis après-midi.\r\n\r\nTout utilisateur du service est tenu de respecter le règlement et de se conformer aux injonctions du chauffeur en ce qui concerne les règles de sécurité et de bienséance.\r\nL’itinéraire est déterminé par le chauffeur.\r\n\r\nLe service se réserve le droit de ne plus desservir les utilisateurs qui n’auraient pas respecté les règles de sécurité et de bienséance ou qui n’auraient pas honoré les factures de dépannage antérieurs.\r\nLes animaux ne sont pas admis dans le véhicule à l’exception des chiens guide.\r\n\r\nResponsable : Mme Geneviève COLARD\r\nChauffeur : Mr Vincent SCHMITZ"\r\n', '', ''),
    (13, 'CPAS d\' Olne - Service Dépannage : Bus rural', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''),
    (14, 'CPAS d\' Olne - Service Dépannage : Taxi social', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''),
    (15, 'CPAS de Stavelot - Service de Proximité', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''),
    (16, 'CPAS de Stoumont', 'Service de mobilité à caractère social\r\n\r\n', '"- bénéficier de soins de santé \r\n-  accomplir des démarches administratives \r\n-  faire les courses nécessaires à la vie quotidienne \r\n-  autres démarches à caractère social (visites, activités, entretiens d\'embauche,...)"\r\n', 'Toute personne domiciliée sur le territoire de la commune de Stoumont rencontrant des difficultés pour se déplacer\r\n', 'Max 50 kms\r\n', 'de 8 h 30 à 16 h 30 (Réservation 48 h à l\'avance)\r\n', 'du lundi au vendredi de 9 à 13 h et de 13 à 16h\r\n', '1 minibus\r\n', '', '"Coût du service : \r\n - 0,30 € /km en déplacement individuel\r\n - 0,15 €/km déplacement collectif"\r\n', '', '', 'Route de l\'Amblève, 45 - 4987 Stoumont\r\n', '080/292685 – 0478/480014\r\n', 'valerie.simon@stoumont.be\r\n', '', '', '', ''),
    (17, 'CPAS de Theux - Service Dépannage ', 'Transports médicaux, aides à la vie quotidienne (courses,...)\r\n', 'tous motifs\r\n', 'Bénéficiaires du CPAS et habitants de la commune', 'Wallonie ; Bruxelles\r\n', 'en semaine de 8h à 12h et de 13h à 17h15\r\n', 'lundi, mardi, mercredi, jeudi : de 8h à 17h15 ; vendredi de 8h à 12h15\r\n', '', '', 'Coût du service : 0,3573 €/km depuis le centre de Theux\r\n', '"Attente :\r\n- 6€ par heure (6,00€/60 min)\r\n\r\nAccompagnement : \r\n- pas d\'appplication"\r\n', '', 'Place du Perron, 2 - 4910 Theux\r\n', '087/53 93 20', '', '', '', '', ''),
    (18, 'CPAS de Thimister-Clermont', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''),
    (19, 'CPAS de Trois-Ponts', 'Taxi Social\r\n', 'Courses, rendez-vous médicaux, rendez-vous privés, déménagement\r\n', 'Personnes sans véhicules, personnes âgées, personnes avec handicap léger\r\n', '', '8h00 – 16h00\r\n', '13h00 – 16h00\r\n', 'Une camionnette\r\n', 'Le paiement du parking est à charge du demandeur.\r\n\r\nUn seul siège disponible.\r\n', '"Coût du service : \r\n- 0,50 €/km depuis le lieu de prise en charge, jusqu’au lieu du débarquement final (donc aller/retour), si aller-simple, c’est uniquement les km du trajet aller qui sont comptabilisés\r\n- ou forfait de 3 € pour tout déplacement sur la commune peu importe le nombre de km, si déplacement hors de la commune, c’est le tarif au km qui est appliqué"\r\n', '"Attente :\r\n-1 ère heure gratuite\r\n- 8€ par heure (8,00€/15 min) à partir de la 2e heure\r\n\r\nAccompagnement : \r\n-1 ère heure gratuite\r\n- 8€ par heure (8,00€/15 min) à partir de la 2e heure"\r\n', '', 'Place Communale, 1/A - 4980 Trois-Ponts\r\n', '080/68 44 51\r\n', 'LAN@cpastroisponts.be\r\n', '', '"Le service de voiturage est accessible à toute personne à mobilité réduite (personne handicapée (hors fauteuil), personne sans voiture, personne âgée) domiciliée sur la commune de Trois-Ponts.\r\nL’objectif essentiel de ce service est de permettre à tous de faire les courses, de se rendre chez le médecin, à l’hôpital, ou pour tout autre transport."\r\n', '', ''),
    (20, 'Franchimobil Theux ASBL', 'Taxis social\r\n', 'tout motifs, loisirs, soins, courses\r\n', 'Tout public domicilié sur la commune de Theux\r\n', 'pas de limite\r\n', 'limité aux heures de service du CPAS de Theux\r\n', 'tous les jours de 8h à 18h\r\n', '4 voitures particulières  (Voitures privées conduites par leur propriètaires)\r\n', 'Les clients demandent une course au dispatching 48h à l’avance, le dispatching cherche un chauffeur disponible parmi les bénévoles sous contrat de volontariat\r\n', '"Coût du service : \r\n- zone rayon de 4km 6 chèques de 0.60€ (3,6 €)\r\n- zone rayon de 4km 9 chèques de 0.60€ (5,4 €)\r\n- au-delà de 6km, 1 chèque de 0.60€ par km (0,6€/km)"\r\n', '', '', 'Avenue sur les Trixhes, 3 - 4910 Fays Polleur', '0472/52 01 71 - 087/53 93 20 (dispacthing CPAS)\r\n', 'octave.simonis@skynet.be\r\n', 'www.franchimobil.be\r\n', '', '', ''),
    (21, 'HENDRIKS\r\n', 'Personnalisé\r\n', 'Tous\r\n', 'Personnes à mobilité réduite\r\n', 'Pas de limite', 'lu – ve 8h00 – 15h00\r\n', 'toutes heures\r\n', 'Mini bus Mercedes-Sprinter\r\n', '', '"Coût du service : \r\n- forfait minimum incluant la prise en charge et comprenant 10 km : 15 €\r\n- 1,00 €/km au-delà du forfait départ et retour depuis notre base la plus proche"\r\n', '"Attente :\r\n- 0,47912 € par minute (0,47912 €/min) soit 28€,74/h\r\n\r\nAccompagnement : \r\n- 28€,74/h"\r\n', '', '', '071/25 86 90\r\n', 'info.wallonie@hendriks.be\r\n', '', '', '', ''),
    (22, 'Croix-Rouge de Belgique : Maison Croix-Rouge Malmedy-Waimes  \r\n', '', '', '', '', '9h-12h30 - 13h30-17h\r\n', '', 'minibus adaptés Goélands (4 véhicules)\r\n', '', 'imposés par la Croix-Rouge de Belgique\r\n', '', '', 'Avenue de la gare, 28 - 4960 Malmedy\r\n', '080/77 09 77', 'fredericboemer@hotmail.com\r\n', '', '', '', '');
     
    -- --------------------------------------------------------
     
    --
    -- Structure de la table `transport`
    --
     
    CREATE TABLE `transport` (
      `id` int(11) NOT NULL,
      `nom_transport` varchar(255) NOT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
     
    --
    -- Contenu de la table `transport`
    --
     
    INSERT INTO `transport` (`id`, `nom_transport`) VALUES
    (1, 'Transport pour raison médicale non-urgente'),
    (2, 'Transport adapté PMR'),
    (3, 'Transport ordinaire'),
    (4, 'Taxis');
     
    --
    -- Index pour les tables exportées
    --
     
    --
    -- Index pour la table `commune`
    --
    ALTER TABLE `commune`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Index pour la table `service`
    --
    ALTER TABLE `service`
      ADD PRIMARY KEY (`id`);
     
    --
    -- Index pour la table `transport`
    --
    ALTER TABLE `transport`
      ADD PRIMARY KEY (`id`);
     
    --
    -- AUTO_INCREMENT pour les tables exportées
    --
     
    --
    -- AUTO_INCREMENT pour la table `commune`
    --
    ALTER TABLE `commune`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
    --
    -- AUTO_INCREMENT pour la table `service`
    --
    ALTER TABLE `service`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=23;
    --
    -- AUTO_INCREMENT pour la table `transport`
    --
    ALTER TABLE `transport`
      MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
    /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
    /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
    /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;

  18. #18
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Bon, il y a pas mal d'erreurs, je t'ai indique les principales. Fait attention a l'indentation de ton code. Essai de suivre le fonctionnement du script, ex: telle variable se trouve ici, est envoyee la, recuperee ici, exploitee la.... et lorsque ca bug fait des tests (var_dump(). print_r()) sur tes variables afin de savoir ce qu'elles contiennent, ou pas.

    Pour la requete sql que tu as du mal a comprendre, quand tu joins 2 tables (en inner join) elles se colle l'une a l'autre sur leur point commun notifier ON ... =.... . Dans ton cas on a joint la table commune a intct sur leurs id = id_communes et intct a transport sur id_transport = id (ca tu dois connaitre). Mais vu qu'on a unifier ces 3 tables (dans cette meme jointure) la table intermediaire joint automatiquement sur id_communes et id_transport (un peu comme si tu as 1 nouvelle table id = id_communes et une autre nouvelle table id_transport = id se trouvant joint sur la correspondance id_commune | id_transport).

    Sur ta Bdd, je n'ai rien change.

    index.php
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
     
    <?php
    require 'connectionBdd.php';
    ?>
     
    <!--il est fortement recommender de bien indenter son code afin d'y voir plus clair-->
    <form action="communes.php" method="POST">
     
    		<?php // communes
    			$reponse = $bdd->query("SELECT * FROM mobilef.commune ORDER BY nom_commune ASC;");
    		?>
    			<select value="id_commune" name="id_commune" type="text" class="form-control">
     
    		<?php
    			while ($donnees = $reponse->fetch())
    			{
    		 	echo '<option value="'.$donnees['id'].'">'.$donnees['nom_commune'].'</option>';
    		 	}
    		?>
    	 		</select><br>
     
     
    	<h3>3. De quel type de transport adapté avez-vous besoin ? </h3>
     
    		<?php // categories
    			$reponse = $bdd->query("SELECT * FROM mobilef.transport ORDER BY id;");
    		?>
     
    			<p>
    			<select value="id_transport" name="id_transport" type="text" class="form-control">
    		<?php
    			while ($donnees = $reponse->fetch())
    			{
    			 echo '<option value="'.$donnees['id'].'">'.$donnees['nom_transport'].'</option>';
    			}
    		$reponse->closeCursor();
    		?>	
    			</select>
    			</p>
     
    <input type="submit" name="info" value="envoyer" /><!--je rajoute le bouton de validation de ton formulaire, sinon $_POST ne sont pas envoyer !!!-->
    </form><!--balise de fermeture du formulaire !!!!-->
    communes.php
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    <?php  
    //je met une connection a la bdd. sur chaque page ayant des requete MySQL il faut une connection....
    require 'connectionBdd.php';
     
    //tu vois dans le select j'ai preciser ce dont tu as besoin. pas besoi d'alourdir le travail de MySQL, et de stoquer des donnees inutiles ds php
    //donc si plus tard tu veux afficher d'autres info pense a modifier le select....
    $sql = "SELECT service.id, logo, nom_service, motif_de_transport, beneficiaires
    FROM commune
    INNER JOIN intct 
    	ON commune.id = intct.id_commune
    INNER JOIN transport
    	ON intct.id_transport = transport.id
    INNER JOIN intts
    	ON transport.id = intts.id_transport
    INNER JOIN service
    	ON intts.id_service = service.id
    WHERE commune.id = :id_commune AND transport.id = :id_transport;
    	";
    $reponse = $bdd->prepare($sql);
    $reponse->bindValue(':id_commune', $_POST["id_commune"]);
    $reponse->bindValue(':id_transport', $_POST["id_transport"]);
    $reponse->execute();
     
     
    while ($donnees = $reponse->fetch(PDO::FETCH_ASSOC))
     
    {?>
     
    	<div class="col-lg-12">
    		<div class="pricing-box-alt">
    			<div class="pricing-heading">
    				<div class="col-lg-4">
    					<img src="img/logos/<?php echo nl2br($donnees['logo']);?>" style="width : 160px;"/>
    				</div>
     
    				<div class="col-lg-8">
     
    					<h4 class=""><?php echo ($donnees['nom_service']);?></h4>
    					<p><?php echo nl2br($donnees['motif_de_transport']);?><br>
    					<p class="beneficiaires"><strong>Bénéficiaires : </strong><?php echo nl2br($donnees['beneficiaires']);?></p><br><br>
     
    				</div>
     
    				<div class="pricing-action">
    						<a href="service.php?id=<?php echo $donnees['id']; ?>" class="btnrouge"><i class="icon-bolt"></i> Plus d'informations sur ce service</a>
    				</div>
    			</div>
    		</div>
    	</div>
     
    <?php				
     
    }
    $reponse->closeCursor(); ?>
    et une page pour la connection (mets bien tout ca dans le meme dossier)
    connectionBdd.php

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    //j'ai rajoute la connection ici (je ne vois pas la tienne). tu peux la coder comme tu avais fait (try-catch), ca fonctionnera aussi. 
    $bdd = new PDO("mysql:host=localhost;dbname=mobilef;charset=utf8", "root", "root");
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//cette ligne renvoie une erreur en cas de pb. elle se met apres la connection, et pas ailleurs...

  19. #19
    Membre averti
    Femme Profil pro
    Graphiste
    Inscrit en
    Avril 2019
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Graphiste
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2019
    Messages : 25
    Par défaut
    Merci pour votre réponse et votre aide.

    Ca s'affiche bien. Maintenant, je reviens à ma question de comment le lien entre les services, les communes et les différents types de transport ?
    J'ai compris qu'elles étaient unifiée mais comment faire pour qu'un service se retrouve sur plusieurs communes ?

    Merci

  20. #20
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2018
    Messages
    119
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Thaïlande

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2018
    Messages : 119
    Par défaut
    Dans ce que j'ai vu : Chaque commune a de 1 a 4 moyen de transport, ca c'est a toi de saisir dans intct toutes les correspondance (aussi tu peux ne mettre que 2 moyen de transport pour une commune si tu veux, par ex)

    //les 2 premiers moyen de transport pour la commune 1
    id_commune | id_transport
    1 . 1
    1 . 2

    Tes services dependent de la commune et du transports (puisque ds ton formulaire d'acceuil il faut entrer les deux en meme temps), la relation commune transport est deja faite : Donc la c'est la seconde table intermediaire intrs qui assure la correspondance... A chaque moyen de transport correspond des services.... a toi de les saisirs ds ta tables intermediaire (celle qui assure cette correspondance donc ici intts).......

    id_transport | id_service
    1. 2
    1 . 3
    2 . 3
    2 . 6
    2 . 7

    Si le clien choisit une commune, un moyen de transport, et des services, chaque domaine etant independant, alors il n'y a pas besoins de lie les tables.... fais de simples requetes (1 par domaine) pour chaque domaine....

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Problème récuperation plusieurs valeurs pour même champ
    Par Cocotonio20 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 29/09/2013, 21h22
  2. [MySQL] Inserer plusieurs valeurs dans meme champs SQL
    Par chris52 dans le forum PHP & Base de données
    Réponses: 27
    Dernier message: 19/04/2012, 16h56
  3. plusieurs valeurs pour un champ ? -- debutant
    Par copeau31 dans le forum Débuter
    Réponses: 8
    Dernier message: 03/10/2007, 22h27
  4. Plusieurs valeurs pour un même champ
    Par will89 dans le forum Requêtes
    Réponses: 32
    Dernier message: 14/06/2006, 10h06
  5. [MySQL] Plusieurs valeur pour un meme champs
    Par poissonsoluble dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 12/06/2006, 15h34

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