Hello à tous.

Voila j'ai la table suivante

chiens
id / nom / sub / sexe / etc....

dans ma page male j'aimerai selectionner uniquement les mâles de ma table ( ceci m'éviterai de cree 2 tables, mâles et femelle)

Je tente de faire mon instruction comme ca.

<?php
require_once('includes/condb.inc.php');

    $chiens = $bdd->query('SELECT * FROM chiens WHERE sexe = Mâles'); ?>
    <?php while($c = $chiens->fetch()) { ?>

    <div class="container-fluid grid">
<div class="row">
    <figure class="effect-goliath col-xs-12 col-sm-12 col-lg-12">
        <img src="http://lorempixel.com/1920/1080/animals/4" alt="alto cane corso elevage de qualité"/>
            <figcaption>
                <h2>"<?= $c['subnom'] ?>"</h2>
                <p><em><?= $c['nom'] ?></em></p>
                <a href="chiens-canecorso.php?id=<?= $c['id'] ?>" title="En savoir plus sur <?= $c['nom'] ?> "></a>
            </figcaption>
    </figure>

</div>
    </div>

    <?php

    } ?>

Je me retrouve avec une erreur

Fatal error: Uncaught Error: Call to a member function fetch() on boolean in * on line 36

Je pense que cette erreur est du au faite que vu que je demande uniquement la table ou ya sexe ="Males", il ne trouve pas les tableau id/ nom et subnom.

Le soucis c'est que je sais pas comment formuler mon instruction.

Merci de votre aide.

Nathan

3 réponses


Carouge10
Réponse acceptée

Bonjour, il te faut "protéger" ta variable car la il pense que "Mâles" est une variable de SQL

$chiens = $bdd->query('SELECT * FROM chiens WHERE sexe = "Mâles" '); ?>

C'est pourtant une des premieres chose que j'ai essayer mais il me semble que j'avais mit ''.

merci de ton aide.

De rien. Si tu mets des ' (simple quote) autour de ta variable et que ta requête est aussi entouré par des ' alors cela s'allule et cause des erreurs