Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD
PHP & SGBD Forum d'entraide sur les SGBD avec PHP. Avant de poster : FAQ BDD, toutes les FAQ PHP, cours BDD et sources BDD
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 27/01/2008, 03h31   #1
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
Par défaut [SQL] Sortie tableau d'une requête sql

Bonsoir,
j'ai un probleme assez simple, mais la je galere pour faire un pauvre tableau lol
j'ai essayer plusieurs soluce mais la je seche soit parceque fatigué ou autre mais j'en viens à votre aide,

donc voila mon probleme, j'ai deux table sql et je souhaite crée un tableau a partir de ces deux la. je m'explique :

table projet :

id_projet nom_projet
1 projet 1
2 projet 2

table personne

id_personne nom_personne
1 jean
2 alain


le resultat doit etre un tableau comme ceci:

nom projet jean alain

projet 1 jean alain
projet 2 jean alain



merci de votre precieuse aide
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 14h20   #2
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Bonjour,
vous m'avez donné mal à la tête.

Je ne comprends rien du tout, vous voulez faire quoi exactement? Une table temporaire, une vraie table digne de ce nom, un tableau php avec le résultat d'une requête?

Je n'arrive pas à saisir votre problème.

Il n'y a aucun lien entre les deux tables, comment voulez vous associé le 'projet 1' avec 'jean' ou 'alain' car on ne sait même qu'ils sont reliés à ce projet. Si toutes les personnes sont relié à tous les projets, bof, faites deux requêtes MySQL et un petit script PHP qui va bien.

Cordialement,
DaRiaN.
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 15h46   #3
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
Bonjour,
désolé pour le mal de tete mais j'ai du mal depuis hier a bien réfléchir car malade...

oui il y aucun lien entre les deux table car tous le monde est relié a tous les projets.

oui j'ai déja fait 2 requete sql une pour afficher les personnes et l'autre les projets. et afficher tout ca avec du php

maintenant il faut que je le remplisse car je veux que dans chaque celulles, il y ait une variable qui comprenne le prenom et le projet correspondant...
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 17h21   #4
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Le code suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
  $projets = array(1 => 'Projet 1', 2 => 'Projet 2');
  $personnes = array(1 => 'Alain', 2 => 'Jean');  
 
  settype($auteurs, 'array');
 
  foreach ($personnes as $personne)
   foreach ($projets as $projet)
    $auteurs[$projet] = $personnes;
 
  echo '<pre>';	
  print_r($auteurs);
  echo '</pre>';	
 
?>
Devrait vous renvoyer un tableau comme celui-ci :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [Projet 1] => Array
        (
            [1] => Alain
            [2] => Jean
        )
 
    [Projet 2] => Array
        (
            [1] => Alain
            [2] => Jean
        )
 
)
C'est ce que vous recherchiez à faire?
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 17h35   #5
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
oui merci !

maintenant il me reste plus qu'a mettre tout ca en forme, pour faire un beau tableau avec php (c pas trop compliqué?)

je precise que les noms et projets viennent d'une base sql pour que tout se fasse automatiquement

merci pour votre réponse rapide !
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 19h12   #6
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
j'ai beau cherché mais je ne sais pas trop comment faire pour faire la meme chose que vous m'avez montrer mais a partir de requete sql, (mes deux tables, personnel et projets)
ainsi que de remplir le tableau par ces deux variables ...

merci
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 19h41   #7
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Désolé, mais je ne sais pas, exactement ce que vous voulez faire et quelles informations vous voulez obtenir, mais cet exemple devrait un peu vous aider (attention, je ne l'ai pas testé, juste codé vite fait sur le forum) :

Code :
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
<?php
 
  $sql = new mysqli('localhost', 'user', 'pass', 'db');
 
  if (mysqli_connect_errno()) exit('Echec :'.mysqli_connect_error());
 
  // ON RECUPERE LA LISTE DES PROJETS
 
  settype($projets, 'array');
 
  $req = 'SELECT id, projet FROM projets ORDER BY projet';
 
  if ($res = $sql->query($req))
   while (list($id, $projet) = $res->fetch_row()) $projets[$id] = $projet;
 
  $res->close();
 
  // ON RECUPERE LA LISTE DES PERSONNES
 
  settype($personnes, 'array');
 
  $req = 'SELECT id, personne FROM personnes ORDER BY personne';
 
  if ($res = $sql->query($req))
   while (list($id, $personne) = $res->fetch_row()) $personnes[$id] = $personne;
 
  $res->close();  
  $sql->close();  
 
  settype($auteurs, 'array');
 
  foreach ($personnes as $personne)
   foreach ($projets as $projet)
    $auteurs[$projet] = $personnes;
 
  echo '<pre>';	
  print_r($auteurs);
  echo '</pre>';
 
?>
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 20h03   #8
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
en fait ce que je cherche a faire pour etre plus claire un tableau
donc avec en haut les noms des personnes et a droite les noms des projets,

et je veux le remplir avec ces deux information pour ensuite crée une fonction ou un lien pour chaque cellule avec ces 2 variables

en gros ca devré donné ca à l'affichage(déso pr le tablo pourri) :

|__ Pierre___Paul__ Jacques
Projet A | PiA PaA JaA
Projet B | PiB PaB JaB
Projet C | PiC PaC JaC

A la place des piA (Pierre ProjetA) et paA etc... je mettrai un bouton pour faire passer ces variables qui correspondent au nom et projet pour chacun.
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/01/2008, 22h07   #9
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Avec le script ci-dessous, vous obtenez ce genre de tableau :



Code :
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
<?php
 
  $projets = array('Projet A', 'Projet B', 'Projet C');
  $personnes = array('Pierre', 'Paul', 'Jacques');
 
  echo '<table border="1" cellspacing="0" cellpadding="5">'."\n <tr>\n  <td>&nbsp;</td>\n";
 
  foreach ($personnes as $personne) echo "  <td><b>".$personne."</b></td>\n";
 
  echo " </tr>\n";
 
  foreach ($projets as $prid => $projet)
  {
 
    echo " <tr>\n  <td><b>".$projet."</b></td>\n";
 
    foreach ($personnes as $peid => $personne)
     echo '  <td><a href="page.php?projet='.$prid.'&personne='.$peid.'">'
      .$personne.' '.$projet.'</a></td>'."\n";
 
    echo " <tr>\n";  
 
  }  
 
  echo '</table>';    
 
?>
Voilà, désolé je ne peux pas faire grand chose de plus.

Cordialement,
DaRiaN.
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2008, 21h09   #10
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
Par défaut sans mysqli ?

Donc comme je vous disais,
ce script précédemment, j'aimerai savoir si il est possible de le faire sans mysqli

j'ai essayer en remplaçant par du mysql classique directement mais sans succées.

Code :
1
2
3
4
5
 
$req = 'SELECT id, projet  FROM projets ORDER BY projet';
$req1=mysql_query($req );
$val1=mysql_fetch_array($req1);
  while (list($id, $projet) = $val1) $projets[$id] = $projet;
le reste du code après les appels a la base sont les mêmes.

merci
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2008, 00h44   #11
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
 
  settype($projet, 'array');
 
  if
  (
    !mysql_connect('localhost', 'darian', 'mdp') ||  
    !mysql_select_db('base')
  )
  die(mysql_error());
 
  $res = mysql_query('SELECT `id`, `projet` FROM `projets` ORDER BY `projet`') or die(mysql_error());
 
  while (list($id, $projet) = mysql_fetch_row($res)) $projets[$id] = $projet;
 
?>
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2008, 09h39   #12
Invité de passage
 
Inscription : janvier 2008
Messages : 17
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 17
Points : 0
Points : 0
ok ça marche merci
mais je vois pas la différence avec mon code, a part le mysql_fetch_row ( que j'avais testé aussi) , le fait que j'ai tout séparé peut être ?

Cordialement,
Wac06
wac06 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/02/2008, 13h14   #13
Membre expérimenté
 
Inscription : août 2005
Messages : 515
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 515
Points : 557
Points : 557
Le mysql_fetch_* doit être la condition de la boucle, vous ne croyez pas?
DaRiaN est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h32.


 
 
 
 
Partenaires

Hébergement Web