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 :

Création de tableau


Sujet :

PHP & Base de données

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut Création de tableau
    bonsoir cher ami amoureux de l'informatique.

    voila mon petit soucis
    je viens de créer un moteur de recherche qui excute ca recherche dans ma base de donnée.et me renvoie sur la méme page que la recherche , le resultat obtenue , mais voila le soucis c'est que je recois toute ces informations en vrac les unes derrieres les autres et donc ne sont pas du tous exploitable et encore moin esthetiques..
    je souhaiterai les ranger dans un tableau de 5 colonnes et 11 lignes
    et bien sur tous cela inclue dans mon
    <?..........................
    ?>
    voici le code de mon programme
    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
    <?
    include("chiens.inc");
     
    $login=htmlentities(trim($_SESSION['login']));
     
    // Connexion au serveur mysql
    $connect = mysql_connect($host, $user,
    $password)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db($database, $connect);
     
    $metier=$_POST['metier'];
    $departement=$_POST['departement'];
    $codepostal=$_POST['codepostal'];
    $lieu=$_POST['lieu'];
     
    echo "<table> \n";
    echo "<tr><td>   login</td><td>   adresse</td><td>   ville</td></tr>\n";
    $requete= "select * from membre where metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%'";
    $resultat=mysql_query($requete);
    while ($rows=mysql_fetch_array($resultat)) {
    $login=$rows[login]; $adresse=$rows[adresse] ; $ville=$rows[ville];
    echo "<tr><td>".$login."</td>";
    echo "<td>".$adresse."</td>";
    echo "<td>".$ville."</td></tr>\n";
    }
    echo "</table>";
     
     
    // on ferme la base
    mysql_close();
     
    ?>
    merci et bonne soirée ...amis du soir

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,
    Tu faits un echo avec les balises tr et td dans le tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    echo "<table> \n";
    echo "<tr><td>login</td><td>adresse</td><td>ville</td></tr>\n"
    while ($rows=mysql_fetch_array($resultat)) {
    $login=$rows[login]; $adresse=$rows[adresse] ; $ville=$rows[ville];
    echo "<tr><td>".$login."</td>";
    echo "<td>".$adresse."</td>";
    echo "<td>".$ville."</td></tr>\n";
    }
    echo "</table>";
    Adapte le à ton besoin.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    Voila j'ai changer mon code au dessus comme tu me l'as indiquer ,merci ,mais je souhaiterai aussi a voir selement 5 resultats par page , et donc les 5 suivants sur une autre page

  4. #4
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Regarde le tutoriel sur la pagination: http://antoine-herault.developpez.co...atique-en-php/

    EDIT:N'édites pas ton ancien code quand tu as faits une modification mais mets le dans ton nouveau poste pour que les autres puissent voir le début du problème.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    ok ok..je viens de lire le tutoriel et ca correspond a peu prés a ce que je veux malheureusement....je viens de creer mon code a partir du tutoriel masi j'ai un soucis il m'affiche toute la base de donnée ..mdr
    alors que mon moteur auparavant me prennais que les infos en fonction de la recherche effectué..voici le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    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
    <?
    // identification login
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: index.php');
    	exit();
    }
    ?>
    <?
    include("chiens.inc");
     
    $login=htmlentities(trim($_SESSION['login']));
     
    // Connexion au serveur mysql
    $connect = mysql_connect($host, $user,
    $password)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db($database, $connect);
     
     
     
     
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    //Une connexion SQL doit être ouverte avant cette ligne...
    $retour_total= mysql_query ("SELECT COUNT(*) AS total from membre WHERE  metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%'") or die (mysql_error()); //Nous récupérons le contenu de la requête dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupère le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la première entrée à lire
     
    // La requête sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query("select * from membre where metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%' ORDER BY id DESC LIMIT ".$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une à une grâce à une boucle
    {
         //Je vais afficher les messages dans des petits tableaux. C'est à vous d'adapter pour votre design...
         //De plus j'ajoute aussi un nl2br pour prendre en compte les sauts à la ligne dans le message.
         echo '<table width="400" border="1" align="center" cellpadding="1" cellspacing="1">
                    <tr>
                         <td><strong>login : '.stripslashes($donnees_messages['login']).'</strong></td>
                    </tr>
                    <tr>
                         <td>'.nl2br(stripslashes($donnees_messages['ville'])).'</td>
                    </tr>
                </table><br /><br />';
        //J'ai rajouté des sauts à la ligne pour espacer les messages.   
    }
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
              echo ' <a href="rechercheresultat.php?page='.$i.'">'.$i.'</a> ';
         }
    }
    echo '</p>';
     
    ?>
    merci si vous pouvez me le corriger , ca doit etre qu'un petit detaille de rien du tous..mais je séche...merci

  6. #6
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,
    C'est que tu as oublié la partie suivant:
    $metier=$_POST['metier'];
    $departement=$_POST['departement'];
    $codepostal=$_POST['codepostal'];
    $lieu=$_POST['lieu'];
    Après avoir reçu les valeurs de ton formulaire, fait passer ces variables de page en page par une variable session ou en variable url(GET).

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    bon effectivement ca va mieux jusqu a la deuxieme page , ensuite ca recommence...voici mon code ameliorée depuis mais "toujours bugger"
    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
    <?
    // identification login
    session_start();
    if (!isset($_SESSION['login'])) {
    	header ('Location: index.php');
    	exit();
    }
    ?>
    <?
     
    $_SESSION['metier'] = $_POST['metier'];
    $_SESSION['departement'] = $_POST['departement']; 
    $_SESSION['codepostal'] = $_POST['codepostal']; 
    $_SESSION['lieu'] = $_POST['lieu'];
    ?>
    <?
     
    include("chiens.inc");
     
    $login=htmlentities(trim($_SESSION['login']));
     
    // Connexion au serveur mysql
    $connect = mysql_connect($host, $user,
    $password)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db($database, $connect);
     
    $metier=$_POST['metier'];
    $departement=$_POST['departement'];
    $codepostal=$_POST['codepostal'];
    $lieu=$_POST['lieu']; 
     
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    $retour_total= mysql_query ("SELECT COUNT(*) AS total from membre WHERE  metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%'") or die (mysql_error()); //Nous récupérons le contenu de la requete dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupere le total pour le placer dans la variable $total.
     
    //Nous allons maintenant compter le nombre de pages.
    $nombreDePages=ceil($total/$messagesParPage);
     
    if(isset($_GET['page'])) // Si la variable $_GET['page'] existe...
    {
         $pageActuelle=intval($_GET['page']);
     
         if($pageActuelle>$nombreDePages) // Si la valeur de $pageActuelle (le numéro de la page) est plus grande que $nombreDePages...
         {
              $pageActuelle=$nombreDePages;
         }
    }
    else // Sinon
    {
         $pageActuelle=1; // La page actuelle est la n°1    
    }
     
    $premiereEntree=($pageActuelle-1)*$messagesParPage; // On calcul la premiere entrée a lire
     
    // La requete sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query("select * from membre where metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%' ORDER BY id DESC LIMIT ".$premiereEntree.', '.$messagesParPage.'');
     
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une a une grâce a une boucle
    {
         //Je vais afficher les messages dans des petits tableaux. C'est a vous d'adapter pour votre design...
         //De plus j'ajoute aussi un nl2br pour prendre en compte les sauts a la ligne dans le message.
     
     
    	 echo '<table width="400" border="1" align="center" cellpadding="1" cellspacing="1">
                    <tr>
                         <td><strong>login : '.stripslashes($donnees_messages['login']).'</strong></td>
                    </tr>
                    <tr>
                         <td>'.nl2br(stripslashes($donnees_messages['ville'])).'</td>
                    </tr>
    				<tr>
                         <td><strong>code postal : '.stripslashes($donnees_messages['codepostal']).'</strong></td>
                    </tr>
                </table><br /><br />';
        //J'ai rajouté des sauts a la ligne pour espacer les messages.   
    }
     
    echo '<p align="center">Page : '; //Pour l'affichage, on centre la liste des pages
    for($i=1; $i<=$nombreDePages; $i++) //On fait notre boucle
    {
     
         //On va faire notre condition
         if($i==$pageActuelle) //Si il s'agit de la page actuelle...
         {
             echo ' [ '.$i.' ] '; 
         }	
         else //Sinon...
         {
              echo ' <a href="rechercheresultat.php?page='.$i.'">'.$i.'</a> ';
         }
    }
    echo '</p>';
     
    ?>
    donc il doit me rester quelques lignes pour le faire passer de page en page que je ne sais pas ou positionner ni quoi mettre..
    votre aide serai la bienvenue..car la je coince sevére

  8. #8
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Re,
    $_SESSION['metier'] = $_POST['metier'];
    $_SESSION['departement'] = $_POST['departement'];
    $_SESSION['codepostal'] = $_POST['codepostal'];
    $_SESSION['lieu'] = $_POST['lieu'];
    Tu dois tester si les variables sont postées avant les d'affecter dans la variable session ou tester si les variables sont déjà dans les sessions.

    $metier=$_POST['metier'];
    $departement=$_POST['departement'];
    $codepostal=$_POST['codepostal'];
    $lieu=$_POST['lieu'];
    En passant vers la 2eme, 3eme ... page, les variables ne sont plus postées, ceux sont les valeurs dans la session que tu dois affecter dans ces variables.

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    comme ceux ci ? :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     $metier=$_SESSION['metier'];
    $departement=$_SESSION['departement'];
    $codepostal=$_SESSION['codepostal'];
    $lieu=$_SESSION['lieu'];
    et si oui je les positionne ou ?

  10. #10
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    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
    if(isset($_POST['metier'])&&isset($_POST['departement'])&&isset($_POST['codepostal'])&&isset($_POST['lieu']))
    {
    $_SESSION['metier'] = $_POST['metier'];
    $_SESSION['departement'] = $_POST['departement']; 
    $_SESSION['codepostal'] = $_POST['codepostal']; 
    $_SESSION['lieu'] = $_POST['lieu'];
    }
    if(isset($_SESSION['metier'])&&isset($_SESSION['departement'])&&isset($_SESSION['codepostal'])&&isset($_SESSION['lieu']))
    {
    $connect = mysql_connect($host, $user,
    $password)
    or die('Impossible de se connecter : ' . mysql_error());
    // sélection de la base de données
    mysql_select_db($database, $connect);
     
    $metier=$_SESSION['metier'];
    $departement=$_SESSION['departement'];
    $codepostal=$_SESSION['codepostal'];
    $lieu=$_SESSION['lieu'];
    $messagesParPage=5; //Nous allons afficher 5 messages par page.
     
    $retour_total= mysql_query ("SELECT COUNT(*) AS total from membre WHERE  metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%'") or die (mysql_error()); //Nous récupérons le contenu de la requete dans $retour_total
    $donnees_total=mysql_fetch_assoc($retour_total); //On range retour sous la forme d'un tableau.
    $total=$donnees_total['total']; //On récupere le total pour le placer dans la variable $total.
     
    ........
    }

  11. #11
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    mince me suis troppé j'ai repondu en Mp je réecris ici pour que tous le monde en profite
    le resultat et presque obtenue c geniale, sauf que sur la premiere page en meme temps que les 5 premieres reponse j'ai aussi ceux ci

    Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in /home/reptiles/html/rechercheresultat.php on line 128

    merci on approche du but

  12. #12
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Ben ou est la ligne 128?

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    79
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 79
    Par défaut
    ici..desolé

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    // La requete sql pour récupérer les messages de la page actuelle.
    $retour_messages=mysql_query("select * from membre where metier like '%$metier%' AND departement like '%$departement%' AND codepostal like '%$codepostal%' and lieu like '%$lieu%' ORDER BY id DESC LIMIT ".$premiereEntree.', '.$messagesParPage.'');
    while($donnees_messages=mysql_fetch_assoc($retour_messages)) // On lit les entrées une a une grâce a une boucle
    bonne journée

Discussions similaires

  1. création de tableau dans un autre tableau
    Par freestyler dans le forum Delphi
    Réponses: 2
    Dernier message: 02/11/2006, 08h54
  2. erreur création de tableau
    Par fabule dans le forum Collection et Stream
    Réponses: 9
    Dernier message: 20/07/2006, 20h36
  3. Création de tableau
    Par rod59 dans le forum C
    Réponses: 10
    Dernier message: 12/11/2005, 16h40
  4. [CR] Création de tableau et case à cocher
    Par aysse dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 26/11/2003, 17h07

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