Souci en PHP

Anonyme_64100 -  
redlifebig Messages postés 60 Statut Membre -
Bonjour,

Voici mon souci j'ai crée un formulaire html pour supprimer un gîte (methode post etc)

J'en arrive donc au php.

<?php
$maconnexion =mysql_connect("localhost","root","root")
or die("Connexion au serveur impossible");
$db=mysql_select_db("GDV",$maconnexion)
or die("Sélection de la base de données impossible");

//les deux champs concernés par le formulaire
$cdproprio=$_POST['CdProprio'];
$nogite=$_POST['NoGite'];

//la requete
$req = "delete from GITE where NoGite='$nogite' and CdProprio='$cdproprio'";

$result=mysql_query($req);

// c'est ici que ca coince.
if(mysql_num_rows(result))
{
echo" <p>Le gîte suivant a été retiré de la base de donée :</p>
<ul>
<p>Numéro du gîte : <b>$_POST[NoGite]</b>
</p>
</ul>";

//saisie d'un autre enregistrement
echo"<ul><p><a href='../html/supprgite.html'>Autre suppression</a><br/>";
echo"<a href='../html/espace_adherent.html'>Retour espace adhérent</a></p></ul>";

}

else {
echo("<ul><p>Erreur, code propriétaire ou numéro gîte invalide.<br/><a href='../html/espace_adherent.html'>Retour espace adhérent</a></p></ul>");
}
?>

En bref je veux qu'il supprime uniquement si les deux conditions sont remplies, et lorsque la requete ne renvoie aucun résultat que ca m'affiche une page d'erreur comme indiqué dans le php cependant il n'accepte pas cette ligne

if(mysql_num_rows(result))

Notice: Use of undefined constant result - assumed 'result' in c:\program files\easyphp1-8-modgsi\www\gdv\php\supprgite.php on line 50

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\program files\easyphp1-8-modgsi\www\gdv\php\supprgite.php on line 50

Merci d'avance pour vos réponses.
Configuration: Windows XP
Firefox 3.0.10

4 réponses

  1. redlifebig Messages postés 60 Statut Membre 23
     
    Bonjour

    puisque ta requete est un DELETE
    //la requete
    $req = "delete from GITE where NoGite='$nogite' and CdProprio='$cdproprio'";
    alors mysql_query retourn un bool pas une ressource utilise mysql_affected_rows() pour savoir le nombre de lignes affectées ou teste tous simplement
    if (mysql_query($req)){
    echo" <p>Le gîte suivant a été retiré de la base de donée :</p>
    <ul>
    <p>Numéro du gîte : <b>$_POST[NoGite]</b>
    </p>
    </ul>";

    //saisie d'un autre enregistrement
    echo"<ul><p><a href='../html/supprgite.html'>Autre suppression</a><br/>";
    echo"<a href='../html/espace_adherent.html'>Retour espace adhérent</a></p></ul>";

    }
    0
  2. Anonyme_64100
     
    Bonsoir merci de ta réponse

    if (mysql_query($req)){ fonctionne mais fait accepter n'importe quelle valeur au formulaire, exemple gite 3640 accepté alors qu'il n'existe pas dans la bdd. voila le code actuel.

    <?php
    $maconnexion =mysql_connect("localhost","root","root")
    or die("Connexion au serveur impossible");
    $db=mysql_select_db("GDV",$maconnexion)
    or die("Sélection de la base de données impossible");

    $cdproprio=$_POST['CdProprio'];
    $nogite=$_POST['NoGite'];

    $req = "delete from GITE where NoGite='$nogite' and CdProprio='$cdproprio'";
    $result=mysql_query($req);
    if (mysql_query($req))
    {
    echo" <p>Le gîte suivant a été retiré de la base de donnée :</p>
    <ul>
    <p>Numéro du gîte : <b>$_POST[NoGite]</b>
    </p>
    </ul>";

    echo"<ul><p><a href='../html/supprgite.html'>Autre suppression</a><br/>";
    echo"<a href='../html/espace_adherent.html'>Retour espace adhérent</a></p></ul>";

    }

    else {
    echo("<ul><p>Erreur, code propriétaire ou numéro gîte invalide.<br/><a href='../html/espace_adherent.html'>Retour espace adhérent</a></p></ul>");
    }
    ?>

    Pour mysql_affected_rows j'ai eu beau le mettre a toute les sauce le même message d'erreur me revient toujours.
    0
  3. Rosbo
     
    Bonsoir,

    La la ligne

    if(mysql_num_rows(result)) 


    PHP renvoit un erreur car tu as oublié le $ devant result. $result

    Change pour ça

    if(mysql_num_rows($result)) 


    Bonne soirée
    0
  4. redlifebig Messages postés 60 Statut Membre 23
     
    Bonjour

    dans ton exemple le if (mysql_query($req)) passe car l'executiion de mysql_query à réussi mais aucun enregistrement n'a été supprimer puisque gite 3640 n'existe pas
    utilise
    $result=mysql_query($req);

    // c'est ici que ca coince.
    if(mysql_affected_rows()>0)
    { .....
    0