requete php/mysql

requete php/mysql - PHP - Programmation

Marsh Posté le 10-05-2006 à 11:31:16    

j'ai un petit soucis, j'ai créé une page pour effacer une fiche (présente dans ma base mysql)
mysql_select_db($database_base, $mybase);
 
$query_resultatenquete = "DELETE FROM information WHERE prenom = '$choix_prenom' AND email= '$choix_email' ";  
$resultatenquete = mysql_query($query_resultatenquete, $mybase) or die(mysql_error());
 
ça marche nikel, sauf que je voudrais que si les informations entré sont invalide (la fiche n'existe pas par exemple) envoyer un message.
 
pour cela, il faut que je teste si $query_resultatenquete renvoie un resultat.
j'ai fais ça (qui m'a été donné par quelqun du forum et qui marche nikel pour une commande SELECT) :  
 
$rs = mysql_query($query_resultatenquete);
$data = null;
//mysql_fetch_array($rs) renverra false s'il n'y a pas de résultats
if ($data = mysql_fetch_array($rs)) {  // fiche bien effacé }
else { // fiche inexistante}
 
j'ai cette erreur : Warning: mysql_fetch_array(): supplied argument is not a valid MySQL-Link resource in /www.monsite/xxx... l'effacement se fait quand même si la fiche existe par contre c'est toujours le else qui est executé
 
j'ai testé autre chose,  
// si il existe au moins une ligne de resultat
if (mysql_affected_rows($query_resultatenquete)>0) {
 
bah même soucis : Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /www.monsite/xxx...
 
donc, je me demande comment tester si une fiche a été trouvé!!!
Merci si quelqun a une idée!!

Reply

Marsh Posté le 10-05-2006 à 11:31:16   

Reply

Marsh Posté le 10-05-2006 à 11:32:34    

Reply

Marsh Posté le 10-05-2006 à 11:36:56    

heu oui, merci pour la page mais je l'ai déjà lu c'est pour cela que j'ai testé avec mysql_affected_rows mais j'ai le fameux message d'erreur que j'ai cité tout à l'heure
 Warning: mysql_affected_rows(): supplied argument is not a valid MySQL-Link resource in /www.monsite/xxx...  

Reply

Marsh Posté le 10-05-2006 à 11:45:53    

c'est marrant tu l'as lu mais tu as pas fait comme expliqué :o

Citation :


Exemple 1. Exemple avec mysql_affected_rows()

Code :
  1. <?php
  2. $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
  3. if (!$link) {
  4.      die('Impossible de se connecter : ' . mysql_error());
  5. }
  6. mysql_select_db('mydb');
  7. /* Ceci devrait retourner le nombre correct de lignes effacées */
  8. mysql_query('DELETE FROM mytable WHERE id < 10');
  9. printf("Lignes effacées : %d\n", mysql_affected_rows());
  10. /* avec la clause where qui n'est jamais vraie, on devrait obtenir 0 */
  11. mysql_query('DELETE FROM mytable WHERE 0');
  12. printf("Lignes effacées : %d\n", mysql_affected_rows());
  13. ?>



Si tu passes la requête en paramètre ça risque pas de marcher, car  

Citation :

Description
int mysql_affected_rows ( [resource link_identifier] )
 
Retourne le nombre de lignes affectées lors de la dernière requête INSERT, UPDATE ou DELETE avec link_identifier.
Liste de paramètres
 
link_identifier
 
    La connexion MySQL. S'il n'est pas spécifié, la dernière connexion ouverte avec la fonction mysql_connect() sera utilisée. Si une telle connexion n'est pas trouvée, la fonction tentera d'ouvrir une connexion, comme si la fonction mysql_connect() avait été appelée sans argument. Si aucune connexion n'est trouvée ou établie, une alerte E_WARNING est générée.


Message édité par anapajari le 10-05-2006 à 11:46:58
Reply

Marsh Posté le 10-05-2006 à 11:58:01    

boouhhhh , ok je vois!!! merci. j'ai plus de warning effectivement , je sais pas lire visiblement.
bon du coup ça efface plus rien mais ça faut que je vois du coup pkoi :-((

Reply

Marsh Posté le 10-05-2006 à 12:02:04    

ok, tout marche nikel, c le query que j'avais placé dans la condition (du coup il renvoyait toujours o ligne)
MERCI pour le dépannage

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed