Vérifié si une entré existe mysql

Résolu/Fermé
Utilisateur anonyme - 7 juin 2009 à 19:15
 Utilisateur anonyme - 7 juin 2009 à 20:43
Bonjour, j'ai un petit problème :

<?php
if(mysql_query("SELECT * FROM commentaire WHERE id_news = '$donnees['id']'") == true ){
  echo "Oui";
}
else
{
  echo "non";
}
?>



Je voudrais que si une entrée avec id_news = "chiffre variable" existe, il affiche oui dans le cas contraire, il affiche non. Malheureusement sa ne fonctionne pas, il me renvoi : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Pour la ligne que j'ai mis en gras.

Si vous savez comment corriger le problème, aidez moi merci.
A voir également:

5 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
7 juin 2009 à 20:19
<?php
if(mysql_query("SELECT * FROM commentaire WHERE id_news = '$donnees['id']'") == true ){


il ne faut pas tester ainsi

il faut faire par exemple:

<?php
$result=mysql_query("SELECT * FROM commentaire WHERE id_news = '$donnees['id']'");
$nb_enr=mysql_num_rows($result);

if($nb_enr>0) {
echo "Oui"; // id_news existe
}else{
echo "non"; //id news n'existe pas

}


il y a aussi une autre solution avec la requette "SELECT COUNT(*) FROM commentaire WHERE id_news = '$donnees['id']'"
2
Nico_ Messages postés 1219 Date d'inscription vendredi 29 décembre 2006 Statut Membre Dernière intervention 15 mars 2016 189
7 juin 2009 à 19:37
bonsoir,

je ferais plus tot :

Je suppose que $donnees['id'] est récupéré depuis une autre requette, avant de faire celle ci ?

$sql = 'SELECT count(*) FROM commentaire WHERE id_news="'.$donnees['id'].'" '; 
        $req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error()); 
       $data = mysql_fetch_array($req); 
        mysql_free_result($req);
// j'affiche un message en fonction 

if ($data[0] == 1) 
{
echo "Oui"; // id_news existe
}
else
{
  echo "non"; //id news n'existe pas
}
mysql_close(); 
0
Utilisateur anonyme
7 juin 2009 à 20:24
En effect, $donnees['id'] est un nombre récupéré par une requête précédente.


J'ai essayé le code que tu ma donnée mais il m'affiche "non" Alors que en réalité, il devrait m'afficher "oui", car il existe bien une entrée d'on id_news = La valeur
0
Utilisateur anonyme
7 juin 2009 à 20:43
J'ai mis ceci :
<?php
$req40 = "SELECT * FROM commentaire WHERE id_news = '".$donnees['id']."'" ;
$res40 = mysql_query($req40);
$n = mysql_num_rows($res40);

if($n !== false)
{
  if($n == 0)
    echo "c'est non" ;
  else
    echo "c'est oui" ;
}
else{
  echo "Il y a eu une erreur et le résultat ne peut être garantit!" ;}
?>


Sa a l'air de fonctionné. Merci pour votre aide !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
7 juin 2009 à 20:28
Alain_42, ton code me renvoie la même erreur que dans mon premier message à savoir : Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
-1