Erreur en php

Fermé
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 - 11 oct. 2017 à 14:52
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 - 11 oct. 2017 à 23:15
bonjour
j'essaye se cree un petit site mais j'ai cette erreur :

Fatal error: Call to a member function query() on null in C:\xampp\htdocs\tp3\etudiant\SiteWebShop\index.php on line 26

je sais pas si vous pouvais m'aider
merci

2 réponses

infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 14:59
voila la ligne qui pose problème

$sql=$connexion->query($requete); // envoi de la requete
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
11 oct. 2017 à 15:30
Bonjour,

le message d'erreur signifie que $connexion est "null".
Où l'as tu initialisé ??

Sachant que pour t'aider... avoir l'ensemble du code est quand même l'idéal !!

NB : Si tu utilises PDO : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs

NB² : Pour poster ton code sur le forum : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code


NB3 : A lire avant .. histoire que tu nous montres un code "carré" !
https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
Modifié le 11 oct. 2017 à 15:54
bonjour

merci pour votre repense

voici mon fichier connexion :

<?php 

define("SERVEUR","localhost"); 
define("USER","root"); 
define("MDP",""); 
define("BD","sitewebshop"); 


function connexionBd($hote=SERVEUR,$username=USER,$mdp=MDP,$bd=BD) { 
 try { 
   $connex= new PDO('mysql:host='.$hote.';dbname='.$bd, $username, $mdp); 
   $connex->exec("SET CHARACTER SET utf8"); //Gestion des accents 
   return $connex; 
 } catch(Exception $e) { 
   echo 'Erreur : '.$e->getMessage().'<br />'; 
   echo 'N° : '.$e->getCode(); 
  return null; 
 }  
} 
?>

EDIT : Ajout des balises de code !

0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
11 oct. 2017 à 15:47
et les lignes qui me pose problème

$requete = "SELECT * FROM article ORDER BY RAND() LIMIT 3" ;
$sql=$connexion->query($requete); // envoi de la requete
$res=$sql->fetchALL(PDO::FETCH_ASSOC); // renvoi tt les result


merci
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
11 oct. 2017 à 15:56
Re,

Bon... visiblement tu n'as lu aucun de mes liens AVANT de poster ton code !

Donc :
1 - Lis (et applique...) le contenu des liens que je t'ai donné.
2 - Montre nous ton code COMPLET !
Dans le petit bout de code de tes lignes qui "posent" problème .... il manque l'appel à la fonction de connexion à la bdd.....


0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 16:19
merci pour votre repense

a vrai dire j'ai pas trop compris ( il faut que j'ajoute la ligne " setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); "
pour geré mes erreurs ?

le probleme se trouve dans mon fichier connexion ou dans mes requête?

merci
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 16:21
pour mon code

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<link href="css/style.css" rel="stylesheet" type="text/css" />
<title>SiteWebShop</title>

</head>
<body>

<?php include 'header.php' ; ?>
<!-- DEBUT de la page -->

<?php

include 'utile.php';

include_once 'connexion.php';
$connexion =connexionBd();

$requete = "SELECT * FROM article ORDER BY RAND() LIMIT 3" ;
$sql=$connexion->query($requete); // envoi de la requete
$res=$sql->fetchALL(PDO::FETCH_ASSOC); // renvoi tt les result

?>

<!--<header>
<div class="wrap">
<h1><a href="#" rel="nofollow noopener noreferrer" target="_blank"><img src="images/openshop_logo.png" alt="logo open shop"></a></h1>


<nav>
<ul>
<li><a href="index.php" rel="nofollow noopener noreferrer" target="_blank">accueil</a></li>
<li><a href="login.php" rel="nofollow noopener noreferrer" target="_blank">login</a></li>
<li><a href="creer_compte.php" rel="nofollow noopener noreferrer" target="_blank">créer compte</a></li>
<li><a href="panier.php" rel="nofollow noopener noreferrer" target="_blank">panier</a></li>
</ul>
</nav>

<form id="search" action="recherche.php" method="post" enctype="multipart/form-data">
<p>
<label for="searchText">Rechercher :</label>
<input id="searchText" name="query" type="text" value="" />
<input id ="searchBtn" type="submit" class="bouton" value="OK" />
</p>
</form>


<nav id="menu-categorie">
<ul>
<li class="smenu"><a href="#" rel="nofollow noopener noreferrer" target="_blank">tous les produits</a></li>
<li class="smenu"><a href="#" rel="nofollow noopener noreferrer" target="_blank">vetements</a></li>
<li class="smenu"><a href="#" rel="nofollow noopener noreferrer" target="_blank">accessoires</a></li>
<li class="smenu"><a href="#" rel="nofollow noopener noreferrer" target="_blank">posters</a></li>
<li class="smenu"><a href="#" rel="nofollow noopener noreferrer" target="_blank">dvd</a></li>
</ul>
</nav>
</div>
</header> -->

<section>


<header>Bienvenue <span class="ss-titre">Nous sommes le ?????? </span></header>
<p>La boutique en ligne <strong>openSHOP</strong> est un travail réalisé par <em>Thomas Jouannic</em> & <em>Jérome Saunier</em>
puis modifié et adapté <strong>au cours de Sites Web Avancés</strong>.</p>
<p>Dans la partie haute, vous trouverez un moyen pour vous identifiez ou créer un compte si vous n'en n'avez aucun. Le champ de recherche
vous permet d'afficher simplement les produits correspondants à ce que vous souhaitez. Vous pouvez aussi naviguer entre les différentes
catégorie de produits en cliquant sur celle que vous désirez voir.</p>
<p>Bonne naviguation !</p>
</section>
<section>
<header>
<h2>Au hasard...</h2>
</header>
<!--Affichage de 3 articles au hasard -->
<ul id= "product-list" >
<?php

foreach ( $res as $key => $val2)

echo "<li class ='product'>";

echo "<h3>".$value["Designation"]."</h3>";
echo "<p><img alt='' src='".$value['img_article']."'></p></img>";
echo "<p id='prix'>".$value['Prix']."€</p>";
echo "<p>".tronquer_texte($value['description'])."</p>";

echo '<p><a href="vue_produit.php?article='.$value[" rel="nofollow noopener noreferrer" target="_blank"id_article"].'">Voir les détails</a></p>';

echo '</li>';

?>

</ul>

</section>

<?php include('footer.php') ; ?>

<!--<footer>
<p> <a id="goto-admin" href="admin.php" rel="nofollow noopener noreferrer" target="_blank">Admin</a></p>
<p id="extra">
Site Web Avancés - Année 2016 - version HTML 5
</p>

</footer> -->



</body>
</html>
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 16:33
Une bonne fois pour toutes .... peux tu

UTILISER LES BALISES DE CODE

pour poster ton code sur le forum ???!!!!

Lire ici les explications : https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 16:50


include_once 'connexion.php';
$connexion =connexionBd();

$requete = "SELECT * FROM article ORDER BY RAND() LIMIT 3" ;
$sql=$connexion->query($requete);
$res=$sql->fetchALL(PDO::FETCH_ASSOC);




voila désoler c'est la première fois que je poste je savais pas ( ca c'est mon index )
0
infokab Messages postés 19 Date d'inscription mercredi 11 octobre 2017 Statut Membre Dernière intervention 13 novembre 2017
11 oct. 2017 à 16:51


<?php

define("SERVEUR","localhost");
define("USER","root");
define("MDP","");
define("BD","sitewebshop");


function connexionBd($hote=SERVEUR,$username=USER,$mdp=MDP,$bd=BD)
{
try
{
$connex= new PDO('mysql:host='.$hote.';dbname='.$bd, $username, $mdp);
$connex->exec("SET CHARACTER SET utf8"); //Gestion des accents
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);


return $connex;
}
catch(Exception $e)
{
echo 'Erreur : '.$e->getMessage().'<br />';
echo 'N° : '.$e->getCode();
return null;
}
}

?>





ca c'est mon fichier connexion

merci
0