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 :

PHP/MSSQL et modulo [SQL-Server]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut PHP/MSSQL et modulo
    bonjour à tous,
    voilà j'ai un petit problème avec un script qui fait appel à la fonction modulo! en fait je veux que ce script sélectionne de façon aléatoire un certain nombre d'enregistrement (selon la valeur du modulo) et qu'il mette à jour cette dernière!
    lorsque le modulo est égal à 0 ou à 1 je veux qu'il sélectionne 2 enregistrements et lorsqu'il est égal à 2 je veux qu'il en sélectionne 1 mais là ce n'est pas ce que j'obtiens! le script me parrait correct mais je me tourne vers vous pour le vérifier
    voici mon script:
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
     
    <?
    //initialiser les numéros de groupe
     
    for ($gpe=1; $gpe<=3; $gpe++)
    {
     
    if (($$gpe%3==0) OR ($gpe%3==1))
    {
    //alors on va retirer 2 enregistrements
     $conn=mssql_connect('host','login','pwd);
       mssql_select_db('[db]',$conn);
      //on sélectionne 2 enregistrements 
       $sql = "select top 2 * from table where champ1='0' order by NEWID();"; 
        $req = mssql_query($sql,$conn) or die('Erreur sql '.$sql);
        
        while ($result = mssql_fetch_assoc($req))
        {
        //on met à jour la table 
        $sql1= "update table set champ1='1' where num_card='".$result['champ2']."'";
        $req1 = mssql_query($sql1,$conn) or die('Erreur sql '.$sql1);
        
        //on insère les résultats dans la table2
        $sql2= "insert into table2(champ champ1, champ2) values ('".$result['champ2']."', 'xx', 0);";
        $req2 = mssql_query($sql2,$conn) or die('Erreur sql '.$sql2);
        }//fin récupérer 2 records
    
    }
    
    if ($val%3==2)
    {//on retire 1 record
     $conn=mssql_connect('host','login','pwd');
       mssql_select_db('[bd]',$conn);
      //on sélectionne 1 enregistrement 
       $sql = "select top 1 * from table where champ1='0' order by NEWID();"; 
        $req = mssql_query($sql,$conn) or die('Erreur sql '.$sql);
        
        while ($result = mssql_fetch_assoc($req))
        {//récupérer 1 record
        //on met à jour la table
        $sql1= "update table set champ1='1' where num_card='".$result['champ2']."'";
        $req1 = mssql_query($sql1,$conn) or die('Erreur sql '.$sql1);
        
        //on insère les résultats dans la table 2
        $sql2= "insert into table2(champ, champ1, champ2) values ('".$result['champ2']."', 'xx', 0);";
        $req2 = mssql_query($sql2,$conn) or die('Erreur sql '.$sql2);
        }//fin récupérer 1 record
    
    }
    
    }
    header ("Location: ok.php");
    ?>
    voilà j'espère que c'est claire
    merci

  2. #2
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Salut Allyson,

    Dans ton code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (($$gpe%3==0) OR ($gpe%3==1))
    C'est normal le $$ ?

  3. #3
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut
    c'est une faute de frappe lorsque j'ai copié le code
    rassue-toi elle n'apparait pas dans le script original

  4. #4
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conn=mssql_connect('host','login','pwd);
    => il manque une quote
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $sql2= "insert into table2(champ champ1, champ2)....
    => il manque une virgule

    Comment ça je suis lourd ?

    Sinon tu vas toujours de 1 à 3 ou ca risque de changer ? En fait je comprend pas bien à quoi sert ta boucle
    Tu pourrais donner ton besoin fonctionnel de manière un peu plus concrête ?

  5. #5
    Membre éclairé Avatar de allyson
    Inscrit en
    Août 2003
    Messages
    261
    Détails du profil
    Informations forums :
    Inscription : Août 2003
    Messages : 261
    Par défaut
    t'es pas lourd ce sont des fautes de frappe !
    la boucle est en fait une façon de dire qu'il faut exécuter les instructions qui y sont incluses pour chaque groupe!
    je vais te donner un exemple pour illustrer tout:
    j'ai ma table "table" qui contient ces enregistrements là

    champ1 | champ | gpe
    -----------------------
    1110 | 0 | 1
    1111 | 0 | 1
    1112 | 0 | 1
    1113 | 0 | 2
    1114 | 0 | 2
    1115 | 0 | 2
    1116 | 0 | 3
    1117 | 0 | 3
    1118 | 0 | 3

    je voudrais qu'après exécution des instructions du bloc for j'aie dans chaque groupe 2 enregistrements où le champ='1' et le total des enregistrements mis à jour (c'est à dire 2enregistrements * 3 groupes = 6 ) soient insérés dans la table1.
    j'espère avoir été claire
    merci encore

  6. #6
    Expert confirmé Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Par défaut
    pourquoi 3 ? tu n'as que trois groupes ?
    Je ne vois pas gpe qui intervient dans ta selection dans la requete...
    Dans ton exemple champ1 est != 0 alors que tu sélectionnes ceux qui sont == 0

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Conversion appli php/MySQL -> php/MsSQL - Prenage de tête
    Par Joelindien dans le forum MS SQL Server
    Réponses: 19
    Dernier message: 02/09/2008, 17h40
  2. [SQL-Server] Connexion php-mssql après changement de serveur mssql
    Par xelade dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 11/09/2007, 11h21
  3. Réponses: 2
    Dernier message: 08/12/2006, 15h29
  4. [PHP - MSSQL] Problème d'upload / binaire
    Par noiserie dans le forum MS SQL Server
    Réponses: 12
    Dernier message: 25/07/2005, 18h03

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