JeuWeb - Crée ton jeu par navigateur
Erreurs dans une ligne sur des requêtes SQL - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Erreurs dans une ligne sur des requêtes SQL (/showthread.php?tid=1854)

Pages : 1 2


RE: erreur php/mysql dans une ligne ! - gameprog2 - 01-10-2010

Ah non finalement niahoo j'y comprend rien, mon code fonctionne comme si la requete donnait toujours true, et pourtant sur le site php j'ai ça :

Citation :Pour les requêtes du type SELECT, SHOW, DESCRIBE, EXPLAIN et les autres requêtes retournant un jeu de résultats, mysql_query() retournera une ressource en cas de succès, ou FALSE en cas d'erreur.

Pour les autres types de requêtes, INSERT, UPDATE, DELETE, DROP, etc., mysql_query() retourne TRUE en cas de succès ou FALSE en cas d'erreur.

Ah j'ai compris, je teste comme si j'attendais un true de la part de la requete alors qu'elle envoie une ressource en vérité, mais c'est quoi comme ressource dans mon cas ?


RE: erreur php/mysql dans une ligne ! - niahoo - 01-10-2010

"en cas de succès" ne signifie pas que des enregistrements on été trouvés dans la table, mais que mysql a bien reçu la requête, et y a bien répondu. Et ceci, même si la requête ne retourne pas d'enregistrement.

si tu prends une requete de type "delete from table1 where id > 100", et bien ça ne retourne pas d'enregistrement les delete ... pourtant, il faut bien voir si la requête à fonctionné.

si tu fais
$rs = mysql_query("SELECT ... ", $idc);

la fonction
$nombre_de_lignes = mysql_num_rows($rs);

te donne le nombre de lignes dans l'enregistrement.
donc

if(mysql_num_rows($result) == 0) {
/*ici le code quand le pseudo n'existe pas */
}
else {
/*le pseudo existe deja*/
}

pour savoir combien de lignes ont été affectées par un DELETE ou un UPDATE, ce n'est plus mysql_num_rows qu'il faut utiliser, mais mysql_affected_rows.


RE: erreur php/mysql dans une ligne ! - gameprog2 - 01-10-2010

Super, effectivement !
Merci Niahoo Wink

J'ai mis ça (adapté à mon code) :

if(mysql_num_rows($result) != 0)
{
$msg="Ce pseudo existe déjà !";
$existe=true; // existe déjà.
};