Probleme PHP
Heew
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
J'ai une erreur pouvez vous m'aider ?
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Facemash-master\index.php on line 32
EDIT : AJOUT DES BALISES DE CODE
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
J'ai une erreur pouvez vous m'aider ?
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Facemash-master\index.php on line 32
<?php
try
{
$db = new PDO('mysql:host=localhost;dbname=facemash', 'root', 'azerty');
}
catch (Exception $error)
{
die ('Erreur :' . $error->getMessage());
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>NoelMash</title>
<link rel="stylesheet" href="style.css" />
</head>
<body>
<div class="header">
<h1>NOELMASH</h1>
</div>
<div class="main_wrapper">
<p>
<strong>Ils sont moderateurs.</strong>
</p>
<h3>Qui est le meilleur? Clic pour Choisir.</h3>
<?php
$maxId = $db->query('SELECT MAX(id) AS id_max FROM photos');
$idMax = $maxId->fetch();
$randomId1 = rand(1, 42);
$photo1Query = $db->prepare('SELECT * FROM photos WHERE id = ?');
$photo1Query->execute(array($randomId1));
$photo1 = $photo1Query->fetch();
$randomId2 = rand(1, 42);
$photo2Query = $db->prepare('SELECT * FROM photos WHERE id = ?');
$photo2Query->execute(array($randomId2));
$photo2 = $photo2Query->fetch();
$nbrPhoto = 1;
?>
<div id="photoRandom">
<a href="vote.php?id=<?php echo $photo1['id'] ?>&photo=first"><img src="images/<?php echo $photo1['photo'] ?>" /></a>
<p id="or">OR</p>
<a href="vote.php?id=<?php echo $photo2['id'] ?>&photo=second"><img src="images/<?php echo $photo2['photo'] ?>" /></a>
</div>
</div>
</body>
</htmL>
EDIT : AJOUT DES BALISES DE CODE
Merci de bien vouloir utiliser la coloration syntaxique (les balises de code) lorsque tu postes du code sur le forum.
Explications disponibles ici :
https://codes-sources.commentcamarche.net/faq/10686-le-nouveau-codes-sources-comment-ca-marche#balises-code
A voir également:
- Probleme PHP
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Retour a la ligne php - Forum Webmastering
- Alert php - Forum PHP
- Retour a la ligne php ✓ - Forum PHP
2 réponses
Bonjour,
L'erreur se situerait donc ici :
Essayes ceci :
EDIT.
Cordialement,
Jordane
L'erreur se situerait donc ici :
$maxId = $db->query('SELECT MAX(id) AS id_max FROM photos');
$idMax = $maxId->fetch();
Essayes ceci :
$sql="SELECT MAX(id) AS id_max
FROM photos";
$maxId = $db->prepare($sql);
$db->execute();
$idMax = $maxId->fetch(PDO::FETCH_BOTH);
print_r($idMax );
EDIT.
Cordialement,
Jordane
Bonsoir
Le 'Prepare' sans marqueurs n'apporte absolument rien (sauf ré-utilisation de la requête) par rapport au query.
Les apostrophes à l'intérieur des doubles quotes dans
Enfin, le message "Call to a member function fetch() on a non-object" signifie que c'est la requête et non pas le fetch qui a mal marché. Donc inutile d'essayer de changer le style de fetch, puisque le fetch n'est même pas tenté.
essaye plutôt :
Le 'Prepare' sans marqueurs n'apporte absolument rien (sauf ré-utilisation de la requête) par rapport au query.
Les apostrophes à l'intérieur des doubles quotes dans
$sql="'SELECT MAX(id) AS id_max FROM photos'";sont une aberration.
Enfin, le message "Call to a member function fetch() on a non-object" signifie que c'est la requête et non pas le fetch qui a mal marché. Donc inutile d'essayer de changer le style de fetch, puisque le fetch n'est même pas tenté.
essaye plutôt :
$maxId = $db->query('SELECT MAX(id) AS id_max FROM photos');
if ($maxId===false) { print_r ($maxId->errorInfo()); die);
@le père
Non.. pas une aberration mais une erreur de copier/coller.
C'est uniquement une habitude que j'ai prise ... et ça ne gène en rien le fonctionnement...
la preuve dixit le site de php :
Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms (:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée.
Oui.
@Heew
Quel est le rapport ?
As tu testé la proposition de le_père ?
N'y a t'il aucune information qui s'affiche sur ta page ?
Et ... as tu testé ta requête en direct dans la BDD ...???
Es-tu sûr que le nom de la Table et des Champs que tu y utilises sont bien orthographiés de la même manière ?
Les apostrophes à l'intérieur des doubles quotes dans [...] sont une aberration.
Non.. pas une aberration mais une erreur de copier/coller.
Le 'Prepare' sans marqueurs n'apporte absolument rien (sauf ré-utilisation de la requête) par rapport au query.
C'est uniquement une habitude que j'ai prise ... et ça ne gène en rien le fonctionnement...
la preuve dixit le site de php :
Prépare une requête SQL à être exécutée par la méthode PDOStatement::execute(). La requête SQL peut contenir zéro ou plusieurs noms (:nom) ou marqueurs (?) pour lesquels les valeurs réelles seront substituées lorsque la requête sera exécutée.
c'est la requête [...] qui a mal marchée
Oui.
@Heew
non toujours pas enfaite c'est un genre de facemash le site
Quel est le rapport ?
As tu testé la proposition de le_père ?
N'y a t'il aucune information qui s'affiche sur ta page ?
Et ... as tu testé ta requête en direct dans la BDD ...???
Es-tu sûr que le nom de la Table et des Champs que tu y utilises sont bien orthographiés de la même manière ?
Bonjour Jordane
Non.. pas une aberration mais une erreur de copier/colle
Une erreur de copier-coller, soit, mais dont le résultat est quand même aberrant. Mon message était plutôt destiné à Heew, pour l'inviter à garder un oeil critique, les helpés ayant tendance à copier-coller sans regarder ce qu'on leur propose.
C'est uniquement une habitude que j'ai prise ... et ça ne gène en rien le fonctionnement Bien sûr que ça ne gêne en rien, ai-je dit que ça gênait le fonctionnement ?
Ce qui est gênant dans ce genre de conseil, c'est que ça apporte des modifications au code du demandeur sur des points où il n'y avait aucun problème : Heew maîtrisant probablement très mal le sujet va certainement croire que son code était incorrect alors qu'il ne l'était pas. Personnellement, j'ai toujours considéré qu'on ne doit corriger dans les codes qui nous sont proposés que ce qui a réellement besoin d'être corrigé et modifier l'existant le moins possible. Ce qui n'empêche pas de proposer par ailleurs de bons conseils, mais j'essaye de toujours faire une distinction très claire entre la correction du problème et la suggestion de meilleures méthodes.
Non.. pas une aberration mais une erreur de copier/colle
Une erreur de copier-coller, soit, mais dont le résultat est quand même aberrant. Mon message était plutôt destiné à Heew, pour l'inviter à garder un oeil critique, les helpés ayant tendance à copier-coller sans regarder ce qu'on leur propose.
C'est uniquement une habitude que j'ai prise ... et ça ne gène en rien le fonctionnement Bien sûr que ça ne gêne en rien, ai-je dit que ça gênait le fonctionnement ?
Ce qui est gênant dans ce genre de conseil, c'est que ça apporte des modifications au code du demandeur sur des points où il n'y avait aucun problème : Heew maîtrisant probablement très mal le sujet va certainement croire que son code était incorrect alors qu'il ne l'était pas. Personnellement, j'ai toujours considéré qu'on ne doit corriger dans les codes qui nous sont proposés que ce qui a réellement besoin d'être corrigé et modifier l'existant le moins possible. Ce qui n'empêche pas de proposer par ailleurs de bons conseils, mais j'essaye de toujours faire une distinction très claire entre la correction du problème et la suggestion de meilleures méthodes.
Fatal error: Call to a member function fetch() on a non-object in C:\wamp\www\Facemash-master\index.php on line 32