useParams et sql

a marqué ce sujet comme résolu.

désolé pour mon code ci-haut, j’avais utiliser mon téléphone. je viens de creer une App react + node js et mysql.

dans mysql je lier deux tables avec la methode JOIN.

mon probleme est que en cliquant je n’arrive pas a afficher les information lier a un id,

dans le premier composant j’ai réussis récupérer l’id:

const Travailleurs = () => {
 
 
    const [data, setData] = useState([]);
 
    const getUserData = async () => {
        const res = await axios.get("http://localhost:5000/getentr", {
            headers: {
                "Content-Type": "application/json"
            }
        });
 
        if (res.data.status == 201) {
            console.log("data get");
 
            setData(res.data.data)
 
        } else {
            console.log("error")
        }
    }
 
    useEffect(() => {
        getUserData()
    }, [])
 
    return (
        <div className='container mt-2 couleur'>
 
            <h1 className='text-center mt-2'>Liste de travailleurs</h1>
 
            <div className='text-center mt-5 mb-5 pb-5'>
                <button className='  n  btn btn-primary'>Ajouter</button>
 
            </div>
 
 
            <div className='d-flex justify-content-between align-iteams-center mt-5 '>
 
 
                {
                    data.length > 0 ? data.map((el, i) => {
                        return (
                            <>
                                <Card key={i} style={{ width: '22rem', height: "20rem" }} className="mb-3 mx-3">
                                    <Card.Img variant="top" src={`http://localhost:5000/uploads/${el.img_entr}`} style={{ width: '100px', textAlign: "center", margin: "auto" }} className="mt-2" />
 
 
                                    <Card.Body className='text-center'>
                                        <Card.Title>UserName : {el.name}</Card.Title>
                                        <Card.Text>
                                            Date Added : {moment(el.date).format("DD-MM-YYYY")}
                                        </Card.Text>
                                        <Link to={`/readentr/${el.id} `} variant="danger"  className='col-lg-6 text-center'>Read</Link>
                                    </Card.Body>
                                </Card>
                            </>
                        )
                    }) : ""
                }
 
 
 
 
            </div>
        </div>
    )
}
 

dans le second composant je voulais afficher :


 
 
function Readentr() {
 
 
 
 
 
 
 
    const [data, setData] = useState([]);
    const {id} = useParams();
 
    const getUserData = async () => {
        const res = await axios.get('http://localhost:5000/readentr/'+id, {
            headers: {
                "Content-Type": "application/json"
            }
        });
 
        if (res.data.status == 201) {
            console.log("data get");
 
            setData(res.data.data)
 
        } else {
            console.log("error")
        }
    }
 
    useEffect(() => {
        getUserData()
    }, [])
 
 
 
 
 
 
    return (
        <div className='container mt-2 couleur'>
 
            <h1 className='text-center mt-2'>Liste de travailleurs</h1>
 
            <div className='text-center mt-5 mb-5 pb-5'>
                <button className='  n  btn btn-primary'>Ajouter</button>
 
            </div>
 
 
            <div className='d-flex justify-content-between align-iteams-center mt-5 '>
 
 
                {
                    data.length > 0 ? data.map((el, i) => {
                        return (
                            <>
                                <Card key={i} style={{ width: '22rem', height: "20rem" }} className="mb-3 mx-3">
                                    <Card.Img variant="top" src="" style={{ width: '100px', textAlign: "center", margin: "auto" }} className="mt-2" />
 
 
                                    <Card.Body className='text-center'>
                                        <Card.Title>UserName : {el.travailleursName}</Card.Title>
                                        <Card.Text>
                                             
                                        </Card.Text>
                                         
                                    </Card.Body>
                                </Card>
                            </>
                        )
                    }) : ""
                }
 
 
 
 
            </div>
        </div>
    )
}

mon code sql



router.get("/readentr/:id", (req, res) => {

    const id = req.params.id;

    try {

        
        conn.query("SELECT travailleurs.id ,travailleurs.name as travailleursName,entreprises.id ,entreprises.name as entreprisesName FROM travailleurs  JOIN entreprises ON (entreprises.id = travailleurs.entr_id)  WHERE entreprises.id = ?",[id] ,(err, result) => {
            if (err) {
                console.log("error")
            } else {
                console.log("data get")
                res.status(201).json({ status: 201, data: result })
            }
        })
    } catch (error) {
        res.status(422).json({ status: 422, error })
    }



})
+0 -0

Bonjour, là comme ça on ne peut rien faire pour toi car on ne comprend pas ce que tu veux faire.

Donne-nous plus de contexte.

De ce que je comprends. Tu as une application React. Tu souhaites créer une route dans une page qui va faire une requête SQL, sauf que tu n’arrives pas à récupérer les paramètres depuis la route et donc impossible de faire la requête SQL.

J’ai bon ? Si oui, donne nous le code de ta route, comment tu affiches le paramètre et comment tu fais la requête SQL.

Bref, je t’invite à nous aider à t’aider. En particulier tu peux lire ce billet qui t’indiquera comment poster ton code et quelles sont les informations dont on a besoin pour t’aider.

Avec ça, tu on devrait pouvoir résoudre ton problème rapidement j’espère.

+3 -0

Bonjour, là comme ça on ne peut rien faire pour toi car on ne comprend pas ce que tu veux faire.

Donne-nous plus de contexte.

De ce que je comprends. Tu as une application React. Tu souhaites créer une route dans une page qui va faire une requête SQL, sauf que tu n’arrives pas à récupérer les paramètres depuis la route et donc impossible de faire la requête SQL.

J’ai bon ? Si oui, donne nous le code de ta route, comment tu affiches le paramètre et comment tu fais la requête SQL.

Bref, je t’invite à nous aider à t’aider. En particulier tu peux lire ce billet qui t’indiquera comment poster ton code et quelles sont les informations dont on a besoin pour t’aider.

Avec ça, tu on devrait pouvoir résoudre ton problème rapidement j’espère.

ache

bonsoir, oui c que je veux

Tu n’as pas de réponse, parce que personne ne comprend ton problème.

Tu postes un code informatique, mais tu nous dis que ce code ne fait pas ce qu’il faut. Ok. Donc si on veut savoir ce que tu veux faire, on ne peut pas s’appuyer sur ce code. On peut juste consulter une boule de cristal, ou une voyante pour essayer de deviner.

Dans ton premier message, tu commences en disant : Bonjour, je viens de créer un lien avec useParams.

Un lien, entre quoi et quoi … Au 10ème mot, tu nous as déjà perdu.

Au fait, ton code qui ne fonctionne pas, tu lui reproches quoi ? Il donne un résultat qui est faux ? il plante violemment ? il tourne, mais il ne renvoie rien ? Même ça, il faut qu’on le devine.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte