Fork me on GitHub






lest_insert_id()
Aspirant
Inscrit: 07/04/2005 21:21
Messages: 65
Ca y est j'ai enfin trouvé comment on affichait un résultat |-|

Mais j'ai un problème pour last_insert_id

je fais:

$sql 'SELECT last_insert_id() FROM '.$xoopsDB->prefix('users');
$result1  $xoopsDB->query($sql);
list(
$affichage1) = $xoopsDB->fetchRow($result1);


et ca me sort 0 qqsoit la table.
J'ia essayé avec 'SELECT last_insert_id() as last ' mais ca marche pas non plus.

Si vous avez deja rencontré le problème ou que vous avez une id pour contourner :)

Posté le : 14/09/2005 22:34
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Xoops accro
Inscrit: 04/02/2003 01:54
De Le Mans
Messages: 12273
Xoops utilise un objet pour récupérer un nouvel id dans une table exemple :
Trouvé 'genId' dans 'D:\phpsites\showtime\class\xoopsblock.php' :
D:\phpsites\showtime\class\xoopsblock.php/93: $bid = $this->db->genId($this->db->prefix("newblocks")."_bid_seq");

fais une recherche avec la chaine de caractères 'genId' pour trouver comment cela fonctionne.

Posté le : 14/09/2005 23:10
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Semi pro
Inscrit: 23/09/2003 08:29
De Perdu dans le Morvan
Messages: 562
Ce n'est pas last_insert_id mais getInsertId.
Ci-dessous extrait du tuto sur la classe xoopsDB (inaccessble pour l'instant)
Citation :

getInsertId($db) équivaut à mysql_insert_id($db).
Retourne l'identifiant généré par la dernière requête INSERT

Exemple d'utilisation dans une fonction d'enregistrement dans la Bdd



function store($id=null) {

if (empty($id)) {
// si $id est vide c'est un nouvel enregistrement
$id = $xoopsDB->genId('matable_id_seq');
$sql = 'INSERT INTO '.$xoopsDB->prefix('matable').' (id, title, message) VALUES ('.$id.', '.$xoopsDB->quoteString($title).', '.$xoopsDB->quoteString($message).')';
} else {
// sinon c'est une mise à jour
$sql = 'UPDATE '.$xoopsDB->prefix('matable').' SET title='.$xoopsDB->quoteString($title).', message='.$xoopsDB->quoteString($message)..' WHERE id='.$id;
}
if (!$result = $xoopsDB->queryF($sql)) {
return false;
}
if (empty($id)) {
$id =$xoopsDB->getInsertId();
}
// on retourne false si la requête à échoué, sinon on retourne l'id
return $id;
}



Posté le : 15/09/2005 08:25
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Guest_
Avec Mysql c'est normal que cela retourne toujours 0, ca marche même comme ca.

Pour ceux que cela intéresse, je vous invite à lire ce petit article

Posté le : 15/09/2005 12:22
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Aspirant
Inscrit: 07/04/2005 21:21
Messages: 65
Je ne comprend pas.
Je n'y arrive pas.

J'ai essayé toutes les possibilités, et j'ai toujours 0.
Est ce que vous etes capables de m'écrire la ligne qui me permet d'écrire le dernier ID de ma base : xoops_user .

Voila, je suis désolé de poser la question comme ca, mais j'ai un blocage, et cette fois je crois que c'est vraiment la derniere question que j'ai à poser pour mon site ^^.

Apres je vous sort un module qui envoie à tout les utilisateurs leur identifiant et mot de passe.

Posté le : 15/09/2005 19:08
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Guest_
select max(uid) from xoops_user

Posté le : 15/09/2005 19:11
Partager Twitter Partagez cette article sur GG+
Re: lest_insert_id()
Semi pro
Inscrit: 23/09/2003 08:29
De Perdu dans le Morvan
Messages: 562
Citation :
Apres je vous sort un module qui envoie à tout les utilisateurs leur identifiant et mot de passe.

N'oublie pas que les mots de passe sont cryptés (MD5) et que ce n'est pas récursif, autrement dit tu ne peux pas récupérer en clair le mot de passe enregistré dans la base.

L'envoi du MdP ne peut donc se faire qu'au moment de l'enregistrement, mais certainement pas au niveau d'un module, à moins de stocker les MdP en clair dans la base, fortement déconseillé !

Posté le : 15/09/2005 20:44
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

36 Personne(s) en ligne (31 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 36 | Plus ...