Erreur dans mon code php
Résolu/Fermé
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
-
17 juil. 2014 à 14:13
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014 - 23 juil. 2014 à 08:50
F2C Messages postés 51 Date d'inscription mercredi 16 juillet 2014 Statut Membre Dernière intervention 29 août 2014 - 23 juil. 2014 à 08:50
A voir également:
- Erreur dans mon code php
- Erreur 0x80070643 - Accueil - Windows
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
12 réponses
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
17 juil. 2014 à 14:16
17 juil. 2014 à 14:16
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>
dan-b
Messages postés
80
Date d'inscription
samedi 15 septembre 2012
Statut
Membre
Dernière intervention
20 octobre 2014
7
Modifié par dan-b le 18/07/2014 à 15:48
Modifié par dan-b le 18/07/2014 à 15:48
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
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
18 juil. 2014 à 16:03
18 juil. 2014 à 16:03
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? :(
Nhay
Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
126
19 juil. 2014 à 11:10
19 juil. 2014 à 11:10
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
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
21 juil. 2014 à 10:04
21 juil. 2014 à 10:04
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
Nhay
Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
126
21 juil. 2014 à 12:30
21 juil. 2014 à 12:30
C'est que $tmp est un objet, que tu ne peut donc pas afficher comme cela :)
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
21 juil. 2014 à 13:12
21 juil. 2014 à 13:12
comment ça?
Nhay
Messages postés
838
Date d'inscription
vendredi 2 novembre 2012
Statut
Membre
Dernière intervention
17 décembre 2015
126
21 juil. 2014 à 18:55
21 juil. 2014 à 18:55
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.
totodunet
Messages postés
1377
Date d'inscription
mercredi 18 mars 2009
Statut
Membre
Dernière intervention
5 mars 2020
199
Modifié par totodunet le 21/07/2014 à 22:30
Modifié par totodunet le 21/07/2014 à 22:30
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
zermat
Messages postés
160
Date d'inscription
jeudi 19 juin 2014
Statut
Membre
Dernière intervention
3 juin 2016
16
22 juil. 2014 à 00:28
22 juil. 2014 à 00:28
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' ");
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
23 juil. 2014 à 08:48
23 juil. 2014 à 08:48
Je vous remercie ça fonctionne maintenant.
F2C
Messages postés
51
Date d'inscription
mercredi 16 juillet 2014
Statut
Membre
Dernière intervention
29 août 2014
23 juil. 2014 à 08:50
23 juil. 2014 à 08:50
ç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
}
}
?>