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

Langage PHP Discussion :

Envoyer par GET un tableau d'une requête SQL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut Envoyer par GET un tableau d'une requête SQL
    Bonjour à tous,

    Pour la première fois j'essaie de faire passer dans l'url avec GET un tableau contenant le résultat d'une requête SQL.

    Voila comment je m'y prends, mais impossible de récupérer correctement le tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php
     
    $rqt = mysql_query("SELECT id_tbl_exemple, titre_tbl_exemple, descriptif_tbl_exemple, img_tbl_exemple FROM developpez_tbl_exemple")or die(mysql_error));
     
    $tab = mysql_fetch_array($rqt);
     
    header("location:test.php?tab=".serialize($tab));
     
    ?>
    Page de réception:

    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
     
    <?php
    if(isset($_GET['tab'])AND $_GET['tab'] != NULL)
    {
    $rep = unserialize($_GET['tab']);
     
    for($i = 0; $i < count($rep); $i++)
    {
    ?>
    <tr>
    <td>
    <?php echo $rep["$i"]["id_tbl_exemple"]; ?>
    </td>
    <td>
    <?php echo $rep["$i"]["titre_tbl_exemple"]; ?>
    </td>
    <td>
    <?php echo $rep["$i"]["descriptif_tbl_exemple"]; ?>
    </td>
    <td>
    <?php echo $rep["$i"]["img_tbl_exemple"]; ?>
    </td>
    </tr>
    <?php
    }
    }
    ?>
    Avec cette méthode j'obtiens un foutoir innommable. J'ai beau chercher sur le web, je ne trouve pas comment déployer le tableau correctement.

    Merci à tous pour vos réponses.

  2. #2
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Déjà, il y a un problème, car tu fais une requête qui théoriquement retournera plusieurs résultats, plusieurs lignes, car il n'y a pas de conditions permettant de limiter à 1 ligne.
    Du coup, il faudrait donc soit faire une condition qui donnera 1 ligne, ou alors un LIMIT 1
    Ou encore, si le but est de récupérer toutes les lignes, faut faire une boucle.

    Toujours est il que je ne suis pas certain que transmettre autant de paramètres soit la meilleur façon de procéder.
    N'y a t-il pas moyen par exemple de se contenter de transmettre juste 1 identifiant (comme le id_tbl_exemple).
    Ensuite, dans la page redirigée (test.php), récupérer cet ID par GET et effectuer la requête afin de récupérer les valeurs des autres champs.

    C'est une idée

  3. #3
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Merci pour ta réponse RunCodePhp j'apprécie ta présence sur le forum pour apporter des solutions.

    Au fait, je souhaite faire pour avoir le minimum de php sur la page qui affiche le résultat, une distinction entre les pages qui effectuent les traitements php et les pages ou le résultat s'affiche.

    Et pour tout te dire c'est une class qui récupère le tableau et qui gère la mise en page c'est pour ça que j'ai exploré cette possibilité, sans certitude que cela soit la mieux.

    Si tu as des suggestions autres je suis prenneur.

    J'ajoute un petit complément d'informations:

    Voila la structure de fonctionnement du site en cours que je souhaite mettre en place.

    1// Les fichiers html qui contiennent des blocs
    2// Les fichiers css qui style les blocs
    3// Les fichiers php qui effectuent les traitements de toute sorte
    4// Les fichiers php sous forme de class qui récupère les valeurs retournées par les fichiers php de traitement et mettent en page en fonction des valeurs.

  4. #4
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    J'ai pas vraiment compris.

    Juste pour info, (je n'ai pas la science infuse, que cela soit dit), mais la sérialisation/désérialisation, j'en ai jamais eu recourt. Je m'arrange à faire autrement.
    Plus le code Php est simple, mieux je me porte, c'est ma devise.

    Je m'appuie justement sur la Bdd, j'estime que c'est justement fait pour ça, sinon, à quoi servirait la Bdd.
    Je me contente donc de transmettre quelques Identifiants, ceux qui permettrons de récupérer les données souhaitées, sans plus.

    Donc peu importe que se soit une classe ou une fonction ou autre, je ne vois pas en quoi ça changerais quelque chose.


    A coté de ça, il est bon de donner des exemples de codes et explications le plus proche possible de la réalité, sinon ça débouche soit sur une mauvaise compréhension du problème, ou pire, de mauvaises solutions.

  5. #5
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    J'ai pas eu le temps d'éditer mon message avant ta réponse lol , je m'en doutais.

    J'ajoute un petit complément d'informations:

    Voila la structure de fonctionnement du site en cours que je souhaite mettre en place.

    1// Les fichiers html qui contiennent des blocs
    2// Les fichiers css qui style les blocs
    3// Les fichiers php qui effectuent les traitements de toute sorte
    4// Les fichiers php sous forme de class qui récupère les valeurs retournées par les fichiers php de traitement et mettent en page en fonction des valeurs.

    Je vais faire un petit shéma avec toshop je le post dans deux minutes.


  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    C'est ni plus ni moins qu'un système de template, non ?

    Quelle solution as tu adoptée pour générer le contenu qui est demandée ?
    Un fichier qui est un point d'entrée, toujours le même (en général c'est le index.php), et ensuite, suivant les paramètre, on recherche toutes les infos liés au paramètre (la page à inclure par exemple, etc ...)

    Ou alors, toutes les pages existent, donc (au moins) 1 fichier par page, mais il y aurait un fichier commun à toutes ces pages/fichier, que je qualifierait de point d'entrée ?

  7. #7
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonsoir,

    Citation Envoyé par xess91 Voir le message
    Avec cette méthode j'obtiens un foutoir innommable. J'ai beau chercher sur le web, je ne trouve pas comment déployer le tableau correctement.
    Qu'appelles tu au juste gros foutoir ? Tu ne retrouves pas la structure de ton tableau initial ?

    Sinon toutes tes questions trouveront réponses ICI (du moins je pense)

  8. #8
    Membre éclairé Avatar de xess91
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    408
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 408
    Par défaut
    Merci Madfrix pour ton lien qui est très intéressant, mais finalement passer le résultat d'une requête, un tableau en GET ne me convient pas car comme la dit RunCodePhp on est limité par Apache dans la longueur de l'url. Bien que l'on puisse le configurer, cela ne m'intéresse plus.

    Cependant, cette façon de faire fait tout de même l'impasse sur le contenu de $rep, qui, faut le rappeler, sont des données entrantes (venant de l'extérieur).
    Rien ne dis quelles n'aient pas été altérées, piratées en court de route.
    Normalement, on se doit de contrôler toutes les données entrantes, comme tout ce qui est en GET et POST par exemple.
    RunCodePhp,

    Peux-tu m'expliquer comment il est possible de pirater des GLOBAL en court de route, entre la création de celle-ci est l'affichage? Ce genre de chose me dépasse complètement!

    Merci pour vos réponses.

  9. #9
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    des extensions firefox (je crois) permettent notamment de le faire facilement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoyer une requête SQL par un MultiCastUDP
    Par Eausport dans le forum Général Java
    Réponses: 5
    Dernier message: 20/07/2012, 10h16
  2. Réponses: 5
    Dernier message: 06/10/2009, 09h37
  3. Réponses: 4
    Dernier message: 11/06/2009, 16h03
  4. Réponses: 1
    Dernier message: 07/04/2008, 11h23
  5. [SQL] Sortie tableau d'une requête sql
    Par wac06 dans le forum PHP & Base de données
    Réponses: 12
    Dernier message: 26/02/2008, 13h14

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