begin process at 2012 05 30 22:15:00
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Base de données

 > 

MySQL

 > 

Last_insert_id() ok en local mais ne marche pas chez 1and1


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Last_insert_id() ok en local mais ne marche pas chez 1and1

mercredi 5 septembre 2007 à 19:18:35 | Last_insert_id() ok en local mais ne marche pas chez 1and1

lolowar

Bonjour, je viens pour la deuxième fois demander de l'aide ici car j'ai un petit problème et j'ai beau me casser la tête, pas moyen...
Alors voila, tout marche en local, mais une fois chez mon hébergeur plus rien.
J'ai créer un premier formulaire dans lequel je rentre le nom d'un jeu video ainsi que ces carractéristiques (éditeur...)
De là, aprés insert, je vais sur une deuxième page via un javascript, ou j'ai une liste déroulante à choix multiple contenant les supports de jeux (PS2, PC...)
Il me fallait donc obtenir l'ID du jeux envoyé dans le formulaire précédent.
En tant que débutant j'ai trouvé cette solution:
-Mon premier formulaire rentre le jeu dans sa base.
-Aprés insert un javascript me renvoi vers une deuxieme page de formulaire qui compléte la précédente.
-sur cette nouvelle page j'utilise last_insert_id() pour récupérer l'ID du jeu précédement entré.
-Je fais apparaitre le nom du jeu dans un champs de texte, et l'ID du jeux dans un champs caché.
-Je selectionne le ou les supports de jeux
Donc l'ID du jeu vas dans une table adjacente, et une boucle note en face les ID des supports (exemple IDjeux = 34, avec IDmachine= 2, 4, 5)
Mais une fois le script en ligne, pas moyen de récupérer l'ID et le nom du jeux dans le champs de texte, alors qu'en local tout marche niquel.
Voici mon code pour la deuxième page de formulaire:
-partie du code faisant apparaitre le nom du jeu dans la page:

<td width="185"><input name="JeuxID" type="hidden" value="<?php echo $row_jeux['IDJeux']?>"><input name="NomJeux" value="<?php echo $row_jeux['NomJeux']?>"type="text">&nbsp;</td>

-partie du code php qui récupére le last_insert_id():

mysql_select_db($database_mabase, $mabase);
$query_jeux = "SELECT IDJeux, NomJeux FROM jeux WHERE IDJeux = LAST_INSERT_ID() ";
$IDGame = mysql_query($query_jeux, $mabase) or die(mysql_error());
$row_jeux = mysql_fetch_assoc($IDGame);
$totalRows_jeux = mysql_num_rows($IDGame);

Si qq pouvait m'aider, car vu qu'en local ça marche j'ai beau tout retrafficoté je n'obtient aucun résultat.
Merci d'avance.


Lolo
mercredi 5 septembre 2007 à 19:31:13 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

Evangun

Hello,

pourquoi ne pas utiliser mysql_insert_id avant de passer sur la deuxième page, et de donner à celle-ci l'id dans un champ caché ou autre ?
mercredi 5 septembre 2007 à 20:49:44 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

lolowar

Ben en fait déja je ne maitrise pas cette fonction, j'ai trouvé qu'elle faisait la meme chose, en utilisant moins de ressources, mais comme il faut l'appeler depuis la page précédente et que je débute je ne m'en suis pas servi (pour le moment).
Mais meme avec je ne pense pas que ça vienne de la fonction, car un last_insert_id() doit tjs renvoyer qq chose si on l'utilise non!!!
Mais je bloque vraiment sur le fait que rien ne soit renvoyé sur 1and1 alors qu'en local ça marche au top.
J'ai vu que sur 1an1 il y avait MySql5, contre le 4 dans Easyphp. La fonction peut elle etre désactivée?
En tout cas merci pour ta réponse Evangun

Lolo
jeudi 6 septembre 2007 à 12:43:46 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

Evangun

Je ne vois pas pourquoi elle serait désactivée non...
c'est étonnant, teste tes requêtes dans phpmyadmin pour voir ce qu'il te donne comme erreur ?

Une intuition à moi, c'est que s'il n'y a pas de last_insert_id, c'est qu'il n'y a pas eu d'insertion dans la base... ton pb vient peut-être donc d'ailleurs.
jeudi 6 septembre 2007 à 14:43:22 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

lolowar

Ben dans phpmyadmin ne renvoi aucune erreur, tout marche a la perfection dedans.
La page1 insert les données du formulaire, la page2 récupére l'ID inséré par la page1 et le note dans la table adjacente avec les valeurs de la page2.
Et une fois en ligne il y a bien une insertion dans la base aprés la page1. Mais pas moyen de la récupérer avec la page2.
le code de la page 1 est un insert classique.
Celui de la page 2 est:

<?php
mysql_select_db($database_mabase, $mabase);
$query_jeux = "SELECT jeux.IDJeux, jeux.NomJeux FROM jeux WHERE jeux.IDJeux = LAST_INSERT_ID()";
$jeux = mysql_query($query_jeux, $mabase) or die(mysql_error());
$row_jeux = mysql_fetch_assoc($jeux);
$totalRows_jeux = mysql_num_rows($jeux);
//
puis la boucle qui insere la suite de mon formulaire de la page2, mais là aucun problème
?>

et dans la page2 l'appel se fait par:

<input name="IDJeux" type="hidden" value="<?php echo $row_jeux['IDJeux']; ?>">
              <input name="NomJeux" type="text" value="<?php echo $row_jeux['NomJeux']; ?>" readonly="true">

Je n'y comprend plus rien là!!!

Lolo
jeudi 6 septembre 2007 à 14:59:17 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

Evangun

Je ne comprends pas ce que tu veux dire par

et dans la page2 l'appel se fait par:

<input name="IDJeux" type="hidden" value="<?php echo $row_jeux['IDJeux']; ?>">
              <input name="NomJeux" type="text" value="<?php echo $row_jeux['NomJeux']; ?>" readonly="true">

ceci dit, ce qui m'étonne c'est plus que ça marchait en local !!
peut-être as-tu une connexion sql persistente en local et pas chez ton hébergeur. Parce que last insert id ne marche que sur la session sql en cours, donc si tu déconnectes et reconnectes entre 2 pages, normal que ça ne marche plus.

Bon mais bref, envoie l'id en champ caché grâce à mysql_insert_id ( ) sur la page 1 et ce sera aussi bien.
jeudi 6 septembre 2007 à 16:18:14 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

lolowar

Encore merci Evangun,
Mais j'ai eu beau chercher et pas moyen de faire marcher ça en ligne.
Je n'avais pas pensé non plus au fait qu'il puisse y avoir une déconnection entre les deux pages (débutant, et ouais...  lol).
Mais ce n'est pas ça non plus car je ne fermé pas les connections.
Bon du coup j'ai suivi ton conseil avec mysql_insert_id(), j'ai un peu potasser le truc et je l'ai inclus dans le script de la page1 et ça marche, meme en ligne.
Du coup je n'ai plus qu'une seule page qui gére tout.
Je te remercis encore pour ton aide.
Je reste un peu sur ma faim pour le coup mais je vais continuer à chercher.


Lolo
jeudi 6 septembre 2007 à 16:49:13 | Re : Last_insert_id() ok en local mais ne marche pas chez 1and1

Evangun

En fait par défaut, la connexion se ferme automatiquement à la fin de chaque page, même si tu ne fais pas mysql_close( ) ! De toute évidence c'est ce qui se passe chez ton hébergeur et c'est normal. C'est chez toi qu'il doit y avoir une connexion persistante, et c'est inhabituel.
Mystère élucidé ?


Cette discussion est classée dans : insert, jeux, jeu, id, last


Répondre à ce message

Sujets en rapport avec ce message

recuperer l'id d'un INSERT ? [ par Joez ] Bonjour, voila je veux recuperer l'id de l'occurence que je viens d'ajouter dans une table mysql par la commander INSERTest ce possible ?mysql_query(" Création du jeux des petits chevaux [ par Rolandhoppla ] Je cherche pour mon propre site de jeu gratuit un développeur amateur pour la création du jeu des petits chevaux, contre rénumération. Il devra perme MySQL_INSERT_ID mais pour le delete ???? [ par ripoux ] Hello,Peut-être l'aurez-vous compris dans le titre...Je cherche un moyen pour faire un delete de plusieur table relié entre elle.Pour un Insert, il ex INSERT a l'id qu'on vient de DELETE [ par Bassman ] Bonjour a tous, Voila j'aimerais savoir sous mysql comment forcé l'insertion dès le "départ", c'est a dire, par exemple dans votre table utilisateur Mysql_insert_id() -> Problme -> A l'aide [ par Samiby ] J'ai une fonction d'exécution de requêtes avec déconnexion automatique (pour faire une connexion la moins lonque possible).function query_db($query) mysql_insert_id [ par dorian53 ] Bonjour, Pouvez vous me confirmer que mysql_insert_id retourne le dernier id auto increment généré par le script courant et non pas le dernier id de problème AJAX entre FF et IE [ par AlBud ] Salut à tous, J'ai pas l' habitude de poster mais la je butte depuis plusieurs jours sur un problème AJAX;Ca m'enlèverai une grosse épine du pied si Jeu de l'erreur.. [ par syndrael ] Bonjour, Je suis sur MySQL 4.1 et j'ai une erreur avec cette requete, pourriez vous m'indiquer ce qui ne va pas. J'en ai fait des dizaines comme celle Probleme Insert Base de données Sybase [ par sabou94 ] Bonjour, J'ai un probleme dans une requête sql qui ne marche pas sur sybase, en fait j'ajoute des données dans ma table provenant d'un formulaire, j'a Embrouille totale MySQL [ par sbool ] Bonsoir;Je créér en ce moment un site de jeux avec acces membre.J'ai une table avec id (auto increment) login, pass, mail ... et -j1-1- (pour score 1


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,484 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales