IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

requete trop lente


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut requete trop lente
    Bonjour à tous,

    Je ne sais pas si je suis au bon endroit mais bon... J'ai fais une galerie photo dans laquelle je peux déplacer mes photos. Chaque nom image est enregistré en base de données avec un id et une position.

    J'ai un petit problème au moment de l'enregistrement en base de données.

    code javascript:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    $(function() {
     
    		$("#sortable").sortable({
     
     
    				// Evenement appelé lorsque l'élément est relaché
    				stop: function(event, ui){
     
     
     
     
    					// Pour chaque item de liste
    					$("#sortable").find("li").each(function(){
    						// On actualise sa position
    						index = parseInt($(this).index()+1);
    						id = ($(this).attr("id"));
    						//alert("position : " + index + "  id : " +  id);
    						//on recupère l'id
    						//Ensuite on enregistre en bdd :)
    						//on enregistre en base de données :) 
    						//alert("position : " + index + "  id : " +  id + "  nombre d'image :  "+compte);
    						$(location).attr("href", "drag_drop_jquerybis.php?position="+index+"&id="+id);
     
         					//sdocument.location.href="drag_drop_jquerybis.php?position="+index;
    						//On la met à jour dans la page
    						$(this).find(".count").text(index);
     
    					});
    				}
     
    			});
     
    		//$("#sortable").disableSelection();
    	});

    Code correspondant à la modification en base de données.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    while(isset($_GET['position'])&& isset($_GET['id']))
    {
     
    	$reqUpdate = mysql_query('UPDATE image SET position = '.$_GET['position'].' WHERE id = '.$_GET['id']);
     
    }
    Cette manière est bcp trop lente du coup ça plante

    Pouvez-vous m'aider s'il vous plait

  2. #2
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Je ne vois pas pkoi c'est lent !!!
    Ta requete est correcte en php et ton sript js a l'air bon aussi...
    Ca plante de quelle facon?

  3. #3
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Le temps d'exécution est trop long du coup ça plante en me disant que le temps d'exécution est dépassé

  4. #4
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mai 2004
    Messages
    803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2004
    Messages : 803
    Par défaut
    Bonjour,

    Tu devrais faire passer la requête via l'éditeur SQL de ta base de données et voir l'erreur qu'il en ressort.

  5. #5
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    si c'est juste ca tu peux regler le tps d'execution soit dans php.ini
    soit avec set_time_limit();

  6. #6
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(isset($_GET['position'])&& isset($_GET['id']))
    Pourquoi un while ?
    Ca ne serait un if qu'il faudrait à la place ? (boucle infinie peut être).

  7. #7
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    J'avais testé avec un if mais il me fait modifie que la position d'une image j'ai donc changé et j'ai mis un while

  8. #8
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    c un peu laid mais tu peux faire
    un select bdd puis

    foreach($Col=mysql_fetch_array)

    Car effectivement c'est la boucle qui doit merder...

  9. #9
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Pourquoi un foreach($col=mysql_fetch_array)

    Je fais un update pas un affichage de requete

  10. #10
    Membre Expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Par défaut
    Citation Envoyé par mademoizel Voir le message
    J'avais testé avec un if mais il me fait modifie que la position d'une image j'ai donc changé et j'ai mis un while
    Peut être qu'avec un if ça déconne.
    Mais on ne troque pas une condition SI par une boucle (while) juste comme ça.
    Un WHILE c'est pour boucler, et ici ça bouclera infiniment car à la l'intérieur la condition est toujours VRAI (il y a rien qui arrête la boucle).

    Bref ... un if et un while n'ont aucun rapport.

    C'est ton jQuery qui peut être ne va pas, non ?
    Il manque peut être quelque chose.

    Si con conserve le SI (un if) et qu'au lieu de faire la requête tu fais un echo (position et id) pour contrôler ce que tu obtiens ?
    Un peu de débug quoi.

  11. #11
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    ok je test ça et je te tien au courant

  12. #12
    Membre chevronné Avatar de guigo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 612
    Par défaut
    Pourquoi un foreach($col=mysql_fetch_array)

    Je fais un update pas un affichage de requete
    le select va te permettre de "scanner" toute ta table et du coup faire un update sur l'ensemble de ta table (si j'ai bien compris c ce que tu voulais faire avec ta boucle while ?)

  13. #13
    Membre éclairé
    Inscrit en
    Juin 2006
    Messages
    502
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 502
    Par défaut
    Citation Envoyé par RunCodePhp Voir le message
    Peut être qu'avec un if ça déconne.
    Mais on ne troque pas une condition SI par une boucle (while) juste comme ça.
    Un WHILE c'est pour boucler, et ici ça bouclera infiniment car à la l'intérieur la condition est toujours VRAI (il y a rien qui arrête la boucle).

    Bref ... un if et un while n'ont aucun rapport.

    C'est ton jQuery qui peut être ne va pas, non ?
    Il manque peut être quelque chose.

    Si con conserve le SI (un if) et qu'au lieu de faire la requête tu fais un echo (position et id) pour contrôler ce que tu obtiens ?
    Un peu de débug quoi.
    J'ai fait comme tu m'a dit et c'est la même position et le même id qui ressort

Discussions similaires

  1. [MySQL] requete trop lente
    Par thelover2fr dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 26/08/2012, 19h01
  2. Requete trop lente
    Par theOnlyOne dans le forum Requêtes
    Réponses: 25
    Dernier message: 25/11/2010, 17h23
  3. Problème de requete trop lente , je cherche une alternative
    Par mobscene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/05/2007, 10h39
  4. pb requete trop lente.(tables sans relation)
    Par zeloutre dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 27/04/2007, 08h48
  5. requete trop lente
    Par ob1knob dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 16/03/2007, 18h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo