Souci en PHP

Fermé
Anonyme_64100 - 4 juin 2009 à 01:30
redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010 - 4 juin 2009 à 14:36
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.
A voir également:

4 réponses

redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010 23
4 juin 2009 à 02:44
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
Anonyme_64100
4 juin 2009 à 03:12
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
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
redlifebig Messages postés 59 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 17 mars 2010 23
4 juin 2009 à 14:36
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