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 :

[SQL] problème de requête


Sujet :

PHP & Base de données

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut [SQL] problème de requête
    bonjour.

    N'ayant pas la possibilité d'utiliser l'auto incrément sous oracle.
    j'ai décidé de créer une 2e requête de sélection en séletionnant la valeur la plus grande du champ en question et d'y ajouter 1.
    Voilà ce que donne mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    $ip_ordi="select id_presence+1 from presence where id_presence=(select max (id_presence) from presence)";
     
    $add_com = " insert into presence(id_presence, id_stagiaire, jour, heure_arrivee, ip_poste) VALUES ( '".$ip_ordis."','".$id_stagiaire."','".$date2."','".$heure_arrivee."','".$_SERVER['REMOTE_ADDR']."'  )";
     
    echo $add_com;
    en m'y prennant ainsi la requête n'a pas voulu se faire alors qu'en la testant sous oracle elle fonctionne parfaitement.

    j'ai donc par la suite décidé de mettre un
    et là plutôt que de m'afficher le résultat de la requête, il me l'a tout simplement recopié .
    Assez bisard.

    Si quelqu'un peut m'expliquer ce phénomène je lui en serait très reconnaissant

  2. #2
    Membre averti Avatar de gofono_bass
    Inscrit en
    Décembre 2005
    Messages
    383
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Décembre 2005
    Messages : 383
    Points : 448
    Points
    448
    Par défaut
    salut,
    il me semble tout a fait normal qu'il affiche ta requete et non le resultat puisque $ip_ordi n'est pas un appel a une requete mais une chaine de caracteres contenant la requete a effectuer
    mais pourquoi tu cours?

  3. #3
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    au lieu de faire cela
    fais un Trigger dans oracle

    triger ... on insert ...
    ip-ordi=ip-ordi+1 ..

    je ne connais plus la syntaxe, mais ce sera bien mieux de faire un trigger

  4. #4
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Bonjour,
    Je ne connais pas oracle, mais effectivement $ip_ordi et $add_com sont de vulgaires chaines de caracteres. Tu dois avoir une fonction equivalente a mysql_query pour lancer la requete contenue dans la chaine...
    S.
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  5. #5
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    Il me semble avoir lu quelques part dans le forum qu'un valeur d'une séquence était local à une session.

    Et que par conséquent, unique pour toute la session. Si tel est vraiment le cas, la récupérer et la stocker dans une variable pourrait être une idée (en ayant appelé NEXTVAL avant bien sûr ).

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    effectivement j'avais oublié de placer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($ip_ordi = mysql_fetch_array($add_com,$base))mysql_fetch_array
    Le problème c'est que je ne sais pas comment l'écrire sous oracle vu que c'est la version my sql que je viens de donner...

  7. #7
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    http://www.supinfo-projects.com/fr/2004/ora%5Fphp/

    peut servir à la base PHP 4. si besoin je peux le mettre à jour.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    bon voici mon code:

    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
     
    <?
    session_start&#40;&#41;;
     
    require&#40;"m_fonctions_utiles.php"&#41;; 
    require&#40;"codes_oracle.php"&#41;; 
     
    m_Sql_connect_Oracle&#40;SERVEUR_ORACLE, UTILISATEUR_ORACLE, MOTDEPASSE_ORACLE, NOMBASE_ORACLE&#41;; 
     
    if &#40;!session_id&#40;&#41;&#41;
     session_start&#40;&#41;;
     
     session_register &#40;'id_stagiaire'&#41;;
     session_register &#40;'heure_arrivee'&#41;;
     
     
     
     
     "<b>".$date2 = date&#40;"d/m/Y"&#41;;
    echo"<br>".$date2."<br>";
    "<b>".$heure_arrivee = date&#40;"H&#58;i"&#41;;
    echo"<br>".$heure_arrivee."<br>";
     
     
     
     
    $ip_ordi="select id_presence+1 from presence where id_presence=&#40;select max &#40;id_presence&#41; from presence&#41;";
    $add_com = " insert into presence&#40;id_presence, id_stagiaire, jour, heure_arrivee, ip_poste&#41; VALUES &#40; '".$ip_ordi."','".$id_stagiaire."','".$date2."','".$heure_arrivee."','".$_SERVER&#91;'REMOTE_ADDR'&#93;."'  &#41;";
    echo $add_com;
     
    if&#40;$tab_com = m_Sql_query_Oracle&#40;$add_com,$base&#41;&#41;
    &#40;$tab_com = ora_fetch &#40;$add_com,$base&#41;&#41;
     
    echo "<h3><B><b><center><font face = papyrus>blabla</B>
    
    </center>";
     &#125;
    else
    &#123;
     echo "Erreur dans l'éxecution de la requete add_comm<br>";
     echo "Erreur".mysql_error&#40;&#41;."&#58;".mysql_error&#40;&#41;."<br>";
    &#125;
     
    ?>
    et l'erreur qui y apparaît:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error&#58; parse error, unexpected '&#123;' in /ext2/iplanet/webserver/web55/base_html/stagiaire/presentInsert.php on line 37
    comprends pas il ne me manque aucunne { pourtant .

  9. #9
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    il te manque l'acolade ouvrante après ton if

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    ok c'est corrigé maintenant ça me donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error&#58; parse error, unexpected '&#123;', expecting '&#40;' in /ext2/iplanet/webserver/web55/base_html/stagiaire/presentInsert.php on line 33

  11. #11
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    je dirai dans ton deuxième if il y a trop de parenthèse

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    j'ai déjà essayé ça a donné le même résultat

  13. #13
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    Tu as néanmoins une erreur sur ton deuxième if. Tu as deux conditions et tes acolades sont mal placées

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    oui effectivement je viebs de corriger ça:
    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
     
    if&#40;$tab_com = m_Sql_query_Oracle&#40;$add_com,$base&#41;&#41;;
    &#40;$cui_com = ora_fetch &#40;$tab_com,$base&#41;&#41;;
     
    &#123;
    echo "<h3><B><b><center><font face = papyrus>blabla</B>
     
    </center>";
     &#125;
    else
    &#123;
     echo "Erreur dans l'éxecution de la requete add_comm<br>";
     echo "Erreur".mysql_error&#40;&#41;."&#58;".mysql_error&#40;&#41;."<br>";
    &#125;
     
    ?>
    voilà l'erreur qui subsiste toujours:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error&#58; parse error, unexpected T_ELSE in /ext2/iplanet/webserver/web55/base_html/stagiaire/presentInsert.php on line 51
    la ligne 51 est au niveau du else.

  15. #15
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    C'est ce que je te disais en dessous de ton if tu as des parenthèse avec des instructions et un point virgule.

    Pour faire plusieurs test dans un if faut utiliser soit & soit &&.

    Pour l'occasion && me semble le plus approprié.

  16. #16
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    j'ai remplacé le 1er ; par $$ voilà ce que ça me donne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Parse error&#58; parse error, unexpected T_BOOLEAN_AND in /ext2/iplanet/webserver/web55/base_html/stagiaire/presentInsert.php on line 33
    si je mes & et/ou si j'enlève des parenthèses ça me remet l'erreur d'avant

  17. #17
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    if( test1 && test2 )

    tu dois avoir une parenthèse qui traine.

  18. #18
    Membre à l'essai
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    si j'enlève les parenthèse ça me remet le message

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Parse error&#58; parse error, unexpected T_ELSE in /ext2/iplanet/webserver/web55/base_html/stagiaire/presentInsert.php on line 51

  19. #19
    Membre averti Avatar de sohnic
    Femme Profil pro
    bioinfo
    Inscrit en
    Mai 2003
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : bioinfo

    Informations forums :
    Inscription : Mai 2003
    Messages : 426
    Points : 434
    Points
    434
    Par défaut
    Ben, faut dire que $$ et &&, c'est pas tout a fait la meme chose !
    S.
    http://www.noctinfo.fr/

    (\ _ /)
    (='.'=) Voici Lapinou. Aidez-le à conquérir le monde en le reproduisant.
    (")-(")

  20. #20
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2004
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2004
    Messages : 265
    Points : 332
    Points
    332
    Par défaut
    Pourquoi $$ ?? je disais && ; ça fait quoi $$ ??

Discussions similaires

  1. [SQL] Problème de requête SQL
    Par Invité dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 03/09/2006, 16h18
  2. [SQL] Problème de requête et <tr>+<td>
    Par ruty dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 15/08/2006, 10h10
  3. [SQL] Problème bizarre requête date
    Par masseur dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 17/02/2006, 14h12
  4. [SQL]problème de requête.
    Par shnouf dans le forum Oracle
    Réponses: 21
    Dernier message: 24/01/2006, 12h12
  5. [SQL] Problème de requête SQL de plus de 8060 caractères ?
    Par webtheque dans le forum MS SQL Server
    Réponses: 13
    Dernier message: 06/04/2005, 16h07

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