Relation entre 2 tables et affichages des valeurs de la 2ème table

Eléphant du PHP | 108 Messages

27 mars 2021, 13:50

Bonjour à toutes et à tous,

Mon projet avance doucement.

Voici la liste des bots
https://wagstd.laptopdiscountexport.sit ... s-list.php

Quand je clique sur open dans le formulaire, je voudrais que ça m'affiche les détails uniquement de celui que j'ai sélectionné en cliquant dessus. (sans pouvoir les modifier)

Pour ce faire, j'ai fait un lien avec un editID (pas certain d'ailleurs que le nom soit bien choisis puisque j'ai un autre editID qui sert à modifier le nom des bots dans une autre page : bref)

https://wagstd.laptopdiscountexport.sit ... p?editId=4

J'ai donc crée une page bot-detail.php.
Pour l'instant, elle m'affiche tout ce que contient la table et ce sans filtrer par rapport à ma sélection et mon lien.

Je n'arrive pas à comprendre comment cela fonctionne dans le code que j'ai utilisé.
<?php
	$condition	=	'';
	if(isset($_REQUEST['id_nom_bots']) and $_REQUEST['id_nom_bots']!=""){
		$condition	.=	' AND id_nom_bots LIKE "%'.$_REQUEST['id_nom_bots'].'%" ';
	}
	if(isset($_REQUEST['exchange_bots_details']) and $_REQUEST['exchange_bots_details']!=""){
		$condition	.=	' AND exchange_bots_details LIKE "%'.$_REQUEST['exchange_bots_details'].'%" ';
	}
	if(isset($_REQUEST['df']) and $_REQUEST['df']!=""){

		$condition	.=	' AND DATE(date_creation_nom_bot)>="'.$_REQUEST['df'].'" ';

	}
	if(isset($_REQUEST['dt']) and $_REQUEST['dt']!=""){

		$condition	.=	' AND DATE(date_creation_nom_bot)<="'.$_REQUEST['dt'].'" ';

	}
	
	$userData	=	$db->getAllRecords('bots_details','*',$condition,'ORDER BY id_nom_bots ASC');
	?>
Je suppose que ça se passe là mais je comprends pas comment y ajouter le filtre.

Merci d'avance pour vos avis et aides.

Bonne journée

Mammouth du PHP | 2703 Messages

27 mars 2021, 14:31

repartir d'un code qui permet d'afficher plusieurs bot ne me parait pas une bonne idée pour afficher les détails d'un seul.

$condition .= ' AND id_nom_bots LIKE "%'.$_REQUEST['id_nom_bots'].'%" ';
ajoute une condition sur le nom du bot.
pour ajouter une condition correspondant à "editId=4", il faut ajouter dans le where une condition sur le champ id de la table.

Eléphant du PHP | 108 Messages

27 mars 2021, 20:48

Merci pour ta réponse.

Pas certain de tout comprendre.
$condition .= ' AND id_nom_bots LIKE "%'.$_REQUEST['id_nom_bots'].'%" ';
Je l'ai déjà cette ligne. Que veux tu me dire ?

- Que je dois ajouter une ligne avec nom_bots en plus de celle avec id_nom_bots ?
il faut ajouter dans le where une condition sur le champ id de la table.
Ce n'est pas ce que j'ai dans la ligne $condition .= ' AND id_nom_bots LIKE "%'.$_REQUEST['id_nom_bots'].'%" ';
?

Merci pour ton aide et ta patience.

Mammouth du PHP | 2703 Messages

27 mars 2021, 20:58

https://wagstd.laptopdiscountexport.sit ... p?editId=4
cela n'affiche que le bot sélectionné, donc il faut s'inspirer du code pour afficher le nom du bot ailleurs que dans un champ input.

Eléphant du PHP | 108 Messages

27 mars 2021, 21:02

C'est ce que je voulais faire mais comme tu le déconseilles...

Mais je vais partir la dessus.

Merci

Mammouth du PHP | 2703 Messages

27 mars 2021, 21:04

je doute fort que le code donné soit dans edit-bot.php, plutôt dans bots-list.php.

Eléphant du PHP | 108 Messages

28 mars 2021, 07:32

Bonjour,

Voilà ça fonctionne. Un très grand merci pour l'aide

https://wagstd.laptopdiscountexport.sit ... p?editId=4

Autre problème.

Je voudrais ajouter des données d'une autre table.

Voici le code fonctionnel avec une table
if(isset($_REQUEST['editId']) and $_REQUEST['editId']!=""){
	$row	=	$db->getAllRecords('bots_details','*',' AND id_nom_bots="'.$_REQUEST['editId'].'"');
}


if(isset($_REQUEST['submit']) and $_REQUEST['submit']!=""){
	extract($_REQUEST);
	if($nom_bots==""){
		header('location:'.$_SERVER['PHP_SELF'].'?msg=un&editId='.$_REQUEST['editId']);
		exit;
	}
	$data	=	array(
					'_idnom_bots'=>$_idnom_bots,
					);
	$update	=	$db->update('id_nom_bots',$data,array('id_nom_bots'=>$editId));
	if($update){
		header('location: bots-list.php?msg=rus');
		exit;
	}else{
		header('location: bots-list.php?msg=rnu');
		exit;
	}
}
J'ai juste ajouté ceci mais j'ai une erreur.
if(isset($_REQUEST['editId']) and $_REQUEST['editId']!=""){
	$row	=	$db->getAllRecords('nom_bots','*',' AND id_nom_bots="'.$_REQUEST['editId'].'"');
}
J'ai fouillé sur google et consort mais je ne trouve rien qui correspond ne fût ce qu'un peu à mon code.

Merci pour votre aide.

Bon dimanche ;)

Eléphant du PHP | 108 Messages

28 mars 2021, 09:02

Voilà résolu.

Suffisait de brancher le cerveau ;)

if(isset($_REQUEST['editId']) and $_REQUEST['editId']!=""){
	$row	=	$db->getAllRecords('bots_details','*',' AND id_nom_bots="'.$_REQUEST['editId'].'"');
    $row1	=	$db->getAllRecords('nom_bots','*',' AND id_nom_bots="'.$_REQUEST['editId'].'"');
    
}
Merci Or 1 pour ton aide ;)

Bonne journée

Mammouth du PHP | 2703 Messages

28 mars 2021, 10:41

pouquoi il y a 2 tables ? quelle est leur structure ?

Eléphant du PHP | 108 Messages

28 mars 2021, 13:28

Je pars d'access où j'ai ventilé les choses arce que beaucoup de données

Image