PHP mysql connexion
Fermé
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
-
16 août 2014 à 20:27
Utilisateur anonyme - 17 août 2014 à 13:59
Utilisateur anonyme - 17 août 2014 à 13:59
A voir également:
- PHP mysql connexion
- Gmail connexion - Guide
- Gmail connexion autre compte - Guide
- Hotmail connexion - Guide
- Facebook connexion - Guide
- Connexion chromecast - Guide
14 réponses
Utilisateur anonyme
Modifié par ludobabs le 16/08/2014 à 20:40
Modifié par ludobabs le 16/08/2014 à 20:40
Bonsoir,
un grand classique ^^
https://openclassrooms.com/forum/sujet/fatal-error-call-to-a-member-function-fetch-74180
Cordialement
ps -> si ton fichier panier.php envoie quoi que ce soit en sortie, HEADER(location ... ne fonctionnera pas. une redirection pareille bouhuoouuuuuu c'est pas beau !
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
un grand classique ^^
https://openclassrooms.com/forum/sujet/fatal-error-call-to-a-member-function-fetch-74180
Cordialement
ps -> si ton fichier panier.php envoie quoi que ce soit en sortie, HEADER(location ... ne fonctionnera pas. une redirection pareille bouhuoouuuuuu c'est pas beau !
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
Utilisateur anonyme
16 août 2014 à 21:02
16 août 2014 à 21:02
Bonjour
Ça marchera peut-être un peu mieux en mettant des quotes autour du nom :
Ça marchera peut-être un peu mieux en mettant des quotes autour du nom :
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"');
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 07:31
17 août 2014 à 07:31
@ le père
j'ai ait ce que vous dites, mais erreur affiche:
Parse error: syntax error, unexpected '=' in C:\wampserver32\www\sale\ajout_panier.php on line 7
mais je ne pense pas que je peux enlever '=', c'est aucun sens
j'ai ait ce que vous dites, mais erreur affiche:
Parse error: syntax error, unexpected '=' in C:\wampserver32\www\sale\ajout_panier.php on line 7
mais je ne pense pas que je peux enlever '=', c'est aucun sens
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 09:24
17 août 2014 à 09:24
@ ludobabs
avec ta méthode:
$requete = 'SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"';
echo $requete;
die('faux');
le serveur indique: SELECT * FROM trybase WHERE name= "Peter"faux
donc, il a l'air que cette ligne est correct,
mais quand je fais:
$result = 'SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"';
$produit = $result->fetch_assoc();
echo $produit;
die('faux');
l'erreur est: Fatal error: Call to a member function fetch_assoc() on a non-object in C:\wampserver32\www\sale\ajout_panier.php on line 8
donc, c'est cette ligne qui est faux: $produit = $result->fetch_assoc();
avec ta méthode:
$requete = 'SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"';
echo $requete;
die('faux');
le serveur indique: SELECT * FROM trybase WHERE name= "Peter"faux
donc, il a l'air que cette ligne est correct,
mais quand je fais:
$result = 'SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"';
$produit = $result->fetch_assoc();
echo $produit;
die('faux');
l'erreur est: Fatal error: Call to a member function fetch_assoc() on a non-object in C:\wampserver32\www\sale\ajout_panier.php on line 8
donc, c'est cette ligne qui est faux: $produit = $result->fetch_assoc();
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Utilisateur anonyme
17 août 2014 à 10:03
17 août 2014 à 10:03
1 - N'utilise pas LIKE à la place de =, LIKE et = ont des rôles différents.
2 - ton "unexpected '='" est bizarre, il n'avait pas lieu d'être. D'autant plus qu'il a disparu dans tes interventions suivantes. Tu avais mal recopié, ou il y avait un caractère invisible (par exemple espace insécable).
3 - dans ton dernier message, où tu as repris la requête que j'avais donnée et qui causait l'erreur unexpected = , il est normal que tu aies l'erreur "Call to a member function fetch_assoc() on a non-object" : tu n'as pas exécuté la requête ! Il te manque le mysql->query.
4 - donc, c'est cette ligne qui est faux: $produit = $result->fetch_assoc(); Absolument pas, grosse erreur de raisonnement. php détecte une anomalie ici, ça veut dire qu'il y a un problème ici OU AVANT. Dans ton cas, c'est très probablement avant. C'est probablement à l'exécution de la requête.
essaye
2 - ton "unexpected '='" est bizarre, il n'avait pas lieu d'être. D'autant plus qu'il a disparu dans tes interventions suivantes. Tu avais mal recopié, ou il y avait un caractère invisible (par exemple espace insécable).
3 - dans ton dernier message, où tu as repris la requête que j'avais donnée et qui causait l'erreur unexpected = , il est normal que tu aies l'erreur "Call to a member function fetch_assoc() on a non-object" : tu n'as pas exécuté la requête ! Il te manque le mysql->query.
4 - donc, c'est cette ligne qui est faux: $produit = $result->fetch_assoc(); Absolument pas, grosse erreur de raisonnement. php détecte une anomalie ici, ça veut dire qu'il y a un problème ici OU AVANT. Dans ton cas, c'est très probablement avant. C'est probablement à l'exécution de la requête.
essaye
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"') or die ($mysql->error);
Utilisateur anonyme
Modifié par ludobabs le 17/08/2014 à 10:10
Modifié par ludobabs le 17/08/2014 à 10:10
ou alors ...
de tête, à vérifier
cdt
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
$pdo = new PDO('mysql:host=localhost;dbname=nom_de_ma_base','root',''); $this->connexion_bd = $pdo; $this->data=$connexion_bd->query("SELECT code_article FROM articles WHERE bla bla bla"); $this->data_vue = $this->data->fetch(); echo $this->data_vue['code_article'];
de tête, à vérifier
cdt
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
Tant qu'à le faire passer à PDO, il aurait mieux valu lui faire utiliser les requêtes préparées.
Et utiliser le try .. catch dont tu parlais plus haut pour capturer son erreur.
Ce que Ginolattera cherche à faire doit pouvoir marcher aussi bien avec mysqli qu'avec PDO, je ne vois aucune raison sérieuse de l'inciter à changer.
Et utiliser le try .. catch dont tu parlais plus haut pour capturer son erreur.
Ce que Ginolattera cherche à faire doit pouvoir marcher aussi bien avec mysqli qu'avec PDO, je ne vois aucune raison sérieuse de l'inciter à changer.
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 11:40
17 août 2014 à 11:40
@le père
j'ai mis cette ligne comme tu dis
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"') or die ($mysql->error);
ça donne erreur sur l'autre script:panier.php line 5 (public funtion _construct($nom){)
donc, il me semble ta ligne qui marche,
voici une partie de ce script panier.php:
<?php
class Panier{
public $nom;
private static $nbPanier = 0;
public funtion _construct($nom){
$this->nom = $nom;
}
public function set ($key, $value){
$_SESSION['paniers'][$this->nom][$key] = $value;
}
public function get($key){
if(isset($_SESSION['paniers'][$this->nom][$key]))
return $_SESSION['paniers'][$this->nom][$key];
return null;
}
public function delet($key){
if(isset($_SESSION['paniers'][$this->nom][$key]))
unset($_SESSION['paniers'][$this->nom][$key]);
}
j'ai mis cette ligne comme tu dis
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"') or die ($mysql->error);
ça donne erreur sur l'autre script:panier.php line 5 (public funtion _construct($nom){)
donc, il me semble ta ligne qui marche,
voici une partie de ce script panier.php:
<?php
class Panier{
public $nom;
private static $nbPanier = 0;
public funtion _construct($nom){
$this->nom = $nom;
}
public function set ($key, $value){
$_SESSION['paniers'][$this->nom][$key] = $value;
}
public function get($key){
if(isset($_SESSION['paniers'][$this->nom][$key]))
return $_SESSION['paniers'][$this->nom][$key];
return null;
}
public function delet($key){
if(isset($_SESSION['paniers'][$this->nom][$key]))
unset($_SESSION['paniers'][$this->nom][$key]);
}
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 11:41
17 août 2014 à 11:41
cette ligne:
public funtion __construct($nom){
donne le même résultat d'erreur
public funtion __construct($nom){
donne le même résultat d'erreur
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 11:44
17 août 2014 à 11:44
@ludobabs
je crois que l'idée de le père est bonne,
mtn, le problème se trouve sur l'autre script: panier.php
je crois que l'idée de le père est bonne,
mtn, le problème se trouve sur l'autre script: panier.php
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 11:46
17 août 2014 à 11:46
j'ai ouyblié de mettre l'erreur de ligne:
syntax error, unexpected T_STRING, expecting T_VARIABLE in C:\wampserver32\www\sale\panier.php on line 5
syntax error, unexpected T_STRING, expecting T_VARIABLE in C:\wampserver32\www\sale\panier.php on line 5
Utilisateur anonyme
Modifié par ludobabs le 17/08/2014 à 11:51
Modifié par ludobabs le 17/08/2014 à 11:51
... public $nom; private static $nbPanier = 0; public function _construct($nom){ $this->nom = $nom; ...
$nom n'est pas typée à l'entrée du constructeur, l'erreur ne viendrait-elle pas de là ?
cdt
En informatique 99% des problèmes se situent entre le fauteuil et le clavier
1 - Où est-il question de type dans ta réponse ?
2 - Quelle différence entre
3 - si tu enlèves le paramètre $nom du contructeur, que sgnifie alors la ligne
4 - Quant à
2 - Quelle différence entre
public $nom;et
var $nom;à l'intérieur d'une classe ? D'après le manuel PHP 5, c'est la même chose
public $nom;étant la nouvelle syntaxe et
var $nom;étant toléré pour garder une certaine compatibilité avec les versions précédentes.
3 - si tu enlèves le paramètre $nom du contructeur, que sgnifie alors la ligne
$this->nom = $nom;? Que représente le $nom de droite ?
4 - Quant à
VAR public $nom;, c'est tout simplement une erreur de syntaxe.
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 13:00
17 août 2014 à 13:00
vous m'excusez que sur le script: panier.php
c'est une erreur de frappe sur le mot function, je viens de le corriger,
ce script n'est plus en question, mtn, ça revient encore une fois sur le script aujout_panier.php,
que cette ligne ($panier->set($_POST['name'], $valeur);)a deux erreur:
Undefined variable: panier in C:\wampserver32\www\sale\ajout_panier.php on line 17
Call to a member function set() on a non-object in C:\wampserver32\www\sale\ajout_panier.php on line 17
je voudrais répéter ce script (ajout_panier.php), est ce que vous pouvez trouver les causes ?:
<?php
session_start();
$mysql = new mysqli('localhost', 'root', '', 'testebase');
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"') or die ($mysql->error);
$produit = $result->fetch_assoc();
require_once 'panier.php';
$valeur = array(
'name'=>$produit['name'],
'price'=>$produit['price'],
'quantity'=>$_POST['quantity']
);
$panier->set($_POST['name'], $valeur);
header('location: votre_panier.php');
?>
c'est une erreur de frappe sur le mot function, je viens de le corriger,
ce script n'est plus en question, mtn, ça revient encore une fois sur le script aujout_panier.php,
que cette ligne ($panier->set($_POST['name'], $valeur);)a deux erreur:
Undefined variable: panier in C:\wampserver32\www\sale\ajout_panier.php on line 17
Call to a member function set() on a non-object in C:\wampserver32\www\sale\ajout_panier.php on line 17
je voudrais répéter ce script (ajout_panier.php), est ce que vous pouvez trouver les causes ?:
<?php
session_start();
$mysql = new mysqli('localhost', 'root', '', 'testebase');
$result = $mysql->query('SELECT * FROM trybase WHERE name= "'.$_POST['name'].'"') or die ($mysql->error);
$produit = $result->fetch_assoc();
require_once 'panier.php';
$valeur = array(
'name'=>$produit['name'],
'price'=>$produit['price'],
'quantity'=>$_POST['quantity']
);
$panier->set($_POST['name'], $valeur);
header('location: votre_panier.php');
?>
Ginolattera
Messages postés
22
Date d'inscription
samedi 14 juin 2014
Statut
Membre
Dernière intervention
8 septembre 2015
17 août 2014 à 13:09
17 août 2014 à 13:09
vous m'excusez que je vais travailler pour un moment, pour savoir si je pourrai résoudre moi même, merci comme même