Erreur dans mon code php
Résolu
F2C
Messages postés
51
Date d'inscription
Statut
Membre
Dernière intervention
-
F2C Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
F2C Messages postés 51 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Erreur dans mon code php
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
12 réponses
mon code si c'est pas visible:
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<title>DDO</title>
<link rel="stylesheet" href="ddo.css" />
</head>
<body>
<header>
<h1>Liste des DDO Client</h1>
</header>
<content>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=sap_cristal_bdd', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<table>
<tr class = "nc">
<td>MATRICULE</td>
<td>NOM</td>
<td>AFFECTATION</td>
<td>CATEGORIE</td>
<td>SORTI</td>
</tr>
<?php
$reponse = $bdd->query('SELECT Matricule, UPPER (Nom), LOWER(Prénom), Affectation, Catégorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['NOM'];?> </td>
<td> <?php echo $donnees['Nom']. ' ' .$donnees['Prénom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<td> <?php echo $donnees['Catégorie'];?> </td>
<td> <?php echo $donnees['Sorti'];?> </td>
</tr>
<?php
}
$reponse->closeCursor();
?>
</table>
</content>
<form class="ddo-form">
<li>
<a href="#" onClick="window.open('matricules_ajout.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
AJOUTER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_supp.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
SUPPRIMER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_modif.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
MODIFIER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_rech.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
RECHERCHE
</a>
</li
</form>
</body>
</html>
<html lang="fr">
<head>
<meta charset="UTF-8"/>
<title>DDO</title>
<link rel="stylesheet" href="ddo.css" />
</head>
<body>
<header>
<h1>Liste des DDO Client</h1>
</header>
<content>
<?php
try
{
$bdd = new PDO('mysql:host=localhost;dbname=sap_cristal_bdd', 'root', '');
}
catch (Exception $e)
{
die('Erreur : ' . $e->getMessage());
}
?>
<table>
<tr class = "nc">
<td>MATRICULE</td>
<td>NOM</td>
<td>AFFECTATION</td>
<td>CATEGORIE</td>
<td>SORTI</td>
</tr>
<?php
$reponse = $bdd->query('SELECT Matricule, UPPER (Nom), LOWER(Prénom), Affectation, Catégorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['NOM'];?> </td>
<td> <?php echo $donnees['Nom']. ' ' .$donnees['Prénom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<td> <?php echo $donnees['Catégorie'];?> </td>
<td> <?php echo $donnees['Sorti'];?> </td>
</tr>
<?php
}
$reponse->closeCursor();
?>
</table>
</content>
<form class="ddo-form">
<li>
<a href="#" onClick="window.open('matricules_ajout.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
AJOUTER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_supp.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
SUPPRIMER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_modif.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
MODIFIER MATRICULE
</a>
</li>
<li>
<a href="#" onClick="window.open('matricules_rech.php','_blank','toolbar=0, location=0, directories=0, status=0, scrollbars=1, resizable=1, copyhistory=0, menuBar=0, width=500, height=500, left=500, top=500');return(false)">
RECHERCHE
</a>
</li
</form>
</body>
</html>
bonjour,
"PDO::query() retourne un objet PDOStatement, ou FALSE si une erreur survient."
Donc par sécurité faire :
L'erreur doit venir de la requête sql
"PDO::query() retourne un objet PDOStatement, ou FALSE si une erreur survient."
Donc par sécurité faire :
if ($reponse == false){ // TRAITEMENT ERREUR } else { // LECTURE RESULTATS while ($donnees = $reponse->fetch()){ } }
L'erreur doit venir de la requête sql
Désolée de vous avoir embêté je croyais avoir supprimer cette question;
en fait j'ai trouvé mon erreur elle venait du fait que comme une conne j'ai mit des accents dans le nom des mes tables et de mes champs dans ma base de données.
Par contre j'ai une autre question toujours par rapport à une requête qui ne fonctionne pas en fait c'est ça:
<?php
$reponse = $bdd->query('SELECT Matricule, Nom, Prenom, Affectation, Categorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['Matricule'];?> </td>
<td> <?php echo $donnees['Nom']; ?> </td>
<td> <?php echo $donnees['Prenom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<?php
$tmp = $donnees['Categorie'];
$reponse2 = $bdd->query('SELECT Categorie FROM categorie WHERE Code_Categ = $tmp');/*Je ne comprends pas pourquoi est ce que ??a ne fonctionne pas*/
if ($reponse2 == false)
{
// TRAITEMENT ERREUR
}
else
{
// LECTURE RESULTATS
//print_r($reponse->fetchAll());
while ($donnees2 = $reponse2->fetch())
{
?>
<td> <?php echo $reponse2;?> </td>
<?php
}
}
?>
j'ai roujouté du code et j'ai essayé votre solution mais:
-je ne sais pas comment traiter l'erreur;
-ma requête fonctionne bien dans phpmyadmin
-comment je fais? :(
en fait j'ai trouvé mon erreur elle venait du fait que comme une conne j'ai mit des accents dans le nom des mes tables et de mes champs dans ma base de données.
Par contre j'ai une autre question toujours par rapport à une requête qui ne fonctionne pas en fait c'est ça:
<?php
$reponse = $bdd->query('SELECT Matricule, Nom, Prenom, Affectation, Categorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['Matricule'];?> </td>
<td> <?php echo $donnees['Nom']; ?> </td>
<td> <?php echo $donnees['Prenom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<?php
$tmp = $donnees['Categorie'];
$reponse2 = $bdd->query('SELECT Categorie FROM categorie WHERE Code_Categ = $tmp');/*Je ne comprends pas pourquoi est ce que ??a ne fonctionne pas*/
if ($reponse2 == false)
{
// TRAITEMENT ERREUR
}
else
{
// LECTURE RESULTATS
//print_r($reponse->fetchAll());
while ($donnees2 = $reponse2->fetch())
{
?>
<td> <?php echo $reponse2;?> </td>
<?php
}
}
?>
j'ai roujouté du code et j'ai essayé votre solution mais:
-je ne sais pas comment traiter l'erreur;
-ma requête fonctionne bien dans phpmyadmin
-comment je fais? :(
Pour l'erreur, affiche simplement qu'il y a un problème, le but étant de stopper le code.
Ta requête :
Tu envoi donc une chaîne de caractère ($tmp) et non sa valeur, ce qui cause une erreur.
Ta requête :
$reponse2 = $bdd->query('SELECT Categorie FROM categorie WHERE Code_Categ = $tmp');Pose problème, il me semble que les variables PHP ne sont exécuté qu'entre guillemet et non apostrophe.
Tu envoi donc une chaîne de caractère ($tmp) et non sa valeur, ce qui cause une erreur.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Desolée de ne répondre que maintenant, quand je mets "$tmp" j'ai une autre erreur qui est:
Catchable fatal error: Object of class PDOStatement could not be converted to string
Catchable fatal error: Object of class PDOStatement could not be converted to string
Désolé, j'ai répondu trop vite.
Le problème ce situe au niveau de ton Fetch, tu boucle dans la variable $donnees2 mais tu fais des echo sur $reponse2.
Le problème ce situe au niveau de ton Fetch, tu boucle dans la variable $donnees2 mais tu fais des echo sur $reponse2.
bonjour,
je pense que tu peux faire qu'une seule requête SQL.
ça t'économise une variable temporaire ($tmp) et une requête vers ta BDD
sous réserve que ça fonctionne car pas test et longtemps que j'ai pas pratiqué le sql
Qui ne tente rien n'a rien
je pense que tu peux faire qu'une seule requête SQL.
ça t'économise une variable temporaire ($tmp) et une requête vers ta BDD
SELECT M.Matricule, M.Nom, M.Prenom, M.Affectation, M.Categorie, M.Sorti FROM matricules AS M, categories AS C WHERE C.Code_Categ = M.Categorie ORDER BY M.Nom ASC
sous réserve que ça fonctionne car pas test et longtemps que j'ai pas pratiqué le sql
Qui ne tente rien n'a rien
Si le champ Code_Categ est de type integer mettez:
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = $tmp");
S'il est de type varchar mettez:
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = '$tmp' ");
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = $tmp");
S'il est de type varchar mettez:
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = '$tmp' ");
ça donne ça:
<?php
$reponse = $bdd->query('SELECT Matricule, Nom, Prenom, Affectation, Categorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['Matricule'];?> </td>
<td> <?php echo $donnees['Nom']; ?> </td>
<td> <?php echo $donnees['Prenom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<?php
$tmp = $donnees['Categorie'];
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = $tmp");
if ($reponse2 == false)
{
// TRAITEMENT ERREUR
}
else
{
// LECTURE RESULTATS
//print_r($reponse->fetchAll());
while ($donnees2 = $reponse2->fetch())
{
?>
<td> <?php echo $donnees2['Categorie'];?> </td>
<?php
}
}
?>
<?php
$reponse = $bdd->query('SELECT Matricule, Nom, Prenom, Affectation, Categorie, Sorti FROM matricules ORDER BY Nom ASC');
while ($donnees = $reponse->fetch())
{
?>
<tr>
<td> <?php echo $donnees['Matricule'];?> </td>
<td> <?php echo $donnees['Nom']; ?> </td>
<td> <?php echo $donnees['Prenom'];?> </td>
<td> <?php echo $donnees['Affectation'];?> </td>
<?php
$tmp = $donnees['Categorie'];
$reponse2 = $bdd->query("SELECT Categorie FROM categorie WHERE Code_Categ = $tmp");
if ($reponse2 == false)
{
// TRAITEMENT ERREUR
}
else
{
// LECTURE RESULTATS
//print_r($reponse->fetchAll());
while ($donnees2 = $reponse2->fetch())
{
?>
<td> <?php echo $donnees2['Categorie'];?> </td>
<?php
}
}
?>