Inclusion d'un code php

Messages postés
17
Date d'inscription
mardi 21 mai 2019
Statut
Membre
Dernière intervention
6 juin 2019
-
Bonjour,
J'ai une requête sql dans laquelle il y a une liason de table et où je récupère certains id d'items (items est une table) en fonction de la conditions de ma requête. J'aimerai récupérer le résultat de cette requête dans un $_GET mais quoi que je fasse je me retrouve avec une erreur 'Notice: Undefined index: id'.
Je vous met ma requête et le code que j'ai écris pour essayer d'en récupérer le résultat:

$id = $_GET['id'];
$results_li_item = $wpdb->get_results(
$wpdb->prepare("SELECT *
FROM {$wpdb->prefix}li_items li, flp_items i
WHERE li.form_id = 1 and li.items_id=i.items_id and i.items_id = $id"
)
);


Voila mon code php sous du Wordpress.
Si vous voyez une erreur dans ce code je suis preneur merci d'avance! :D
Afficher la suite 

1 réponse

Messages postés
94
Date d'inscription
lundi 23 juillet 2012
Statut
Membre
Dernière intervention
5 juin 2019
4
0
Merci
Bonjour,

J'aimerai que tu envoi :
- l'url de la page lorsque l'erreur d'affiche
- que tu ajoutes avant ton code "var_dump($_GET)"

Cordiralement
RichieZz
Messages postés
17
Date d'inscription
mardi 21 mai 2019
Statut
Membre
Dernière intervention
6 juin 2019
-
Bonjour,
Merci pour votre réponse alors effectivement j'ai évolué depuis et je me suis rendu compte que je ne transmettais pas l'id de l'item dans l'URL donc que je ne pouvais pas la récupérer comme ceci.
Je vous envoie ma requête actuelle:

$results = $wpdb->get_results("SELECT *
						FROM {$wpdb->prefix}li_items li
						INNER JOIN {$wpdb->prefix}items i ON i.items_id=li.items_id
						INNER JOIN {$wpdb->prefix}li_sous_items lsi ON lsi.items_id=i.items_id
						INNER JOIN {$wpdb->prefix}sous_items si ON si.sous_items_id=lsi.sous_items_id
						WHERE li.form_id = $param_id 
						GROUP BY lsi.items_id");


Voila donc ma requête a un peu évolué mais j'en suis toujours au même problème j'aimerai récupéré mes items_id que me retourne cette requête pour pouvoir les utiliser dans une autre requête. Ce n'est plus une question d'erreur car je n'en ai pas mais je ne sais tout simplement pas comment les récupérer, même après m'être documenté je ne trouve pas. Si vous avez une solution je suis preneur merci d'avance!
Le seul paramètre qui est rentré dans l'URL est l'id de la formation choisie (les items affichés sont liés à la formation) et il me faudrait l'id des items affichés en fonction de la formation pour pouvoir récupérer les sous items qui leur correspondent.

Cordialement
Salut,
pourquoi utiliser un GET de cette façon? Si j'ai bien compris une requête permet de faire un formulaire et ensuite vous voulez récupérer l'identifiant d'une table. Ce qui vous force donc à revenir sur une nouvelle page pour passer à PHP.
Il serait plus simple d'utiliser l'identifiant directement dans le formulaire, dans un champ caché ou même l'identifiant naturel si vous en avez un.
Par contre si vous ne voulez pas recharger la page la seule solution est AJAX, en faisant toutes les requêtes possibles au préalable à partir de toutes les ids fournies au formulaire.

D'ailleurs en GET ce n'est pas très sécurisé et vous force à écrire dans l'URL, ce qui semble contradictoire avec le principe de ne pas indiquer l'identifiant de la table dans le formulaire; c'est juste qu'elle s'affichera dans l'URL.
RichieZz
Messages postés
17
Date d'inscription
mardi 21 mai 2019
Statut
Membre
Dernière intervention
6 juin 2019
-
Bonjour,
Alors non je m'étais sûrement mal exprimé mais mon code ne crée pas un formulaire il génère une fiche descriptive d'une formation en fonction de la formation choisie.
J'ai finalement réussi à faire ce que je voulais malheureusement j'ai une requête sql dans un foreach ce qui fonctionne mais qui n'est pas propre je cherche une autre solution

$results = $wpdb->get_results("SELECT *
						FROM {$wpdb->prefix}li_items li
						INNER JOIN {$wpdb->prefix}items i ON i.items_id=li.items_id
						INNER JOIN {$wpdb->prefix}li_sous_items lsi ON lsi.items_id=i.items_id
						INNER JOIN {$wpdb->prefix}sous_items si ON si.sous_items_id=lsi.sous_items_id
						WHERE li.form_id = $param_id 
						GROUP BY lsi.items_id");

foreach ($results as $post_item){
						echo '<li>'.$post_item->items_content.'</li>' ;
						$i_id=$post_item->items_id;
						$results_si = $wpdb->get_results("SELECT sous_items_content 
							FROM {$wpdb->prefix}li_sous_items lsi, {$wpdb->prefix}sous_items si 
							WHERE lsi.items_id = $i_id 
							AND lsi.sous_items_id=si.sous_items_id");
						foreach ($results_si as $post_si) {
							?>
							<ul>
							<?php
								echo '<li>'.$post_si->sous_items_content.'</li>' ;
							?>
							</ul>	

Voila ce code est juste donc vous pouvez voir ce que je voulais mais je cherche une autre solution pour éviter de boucler une requête sql car actuellement ma table est petite donc ce n'est pas un problème mais à l'avenir elle sera beaucoup plus grosse.
PS: oui j'ai utilisé un POST en fait je m'étais trompé :)
Commenter la réponse de christo974