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 :

Problème avec limit. [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 éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut Problème avec limit.
    Bon voila je désiré faire un limit avec mssql, mais ca n'existe pas j'ai donc suivi la FAQ, et j'ai réussi a faire cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    //C'est un echo de ma requête
    SELECT * FROM ( SELECT TOP 1 AR_Ref, AR_Design, FA_CodeFamille FROM ( SELECT TOP 9 AR_Ref, AR_Design, FA_CodeFamille FROM F_ARTICLE ) AS tbl1 ) AS tbl2 WHERE FA_CodeFamille='SYSTAM'
    Mais ca n'affiche rien du tout, il y as bien des enregistrements.

    Voici le code de l'affichage pour le moment
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    $sql = "SELECT * FROM ( ";
    	$sql .= "SELECT TOP ".$g_nbr." AR_Ref, AR_Design, FA_CodeFamille FROM ( ";
    	$sql .= "SELECT TOP ".$g_maxnbr." AR_Ref, AR_Design, FA_CodeFamille FROM  F_ARTICLE ) AS tbl1 ) AS tbl2 WHERE FA_CodeFamille='$g_famille'";
    	echo($sql);
    	$req = mssql_query($sql);
    	echo('<p><img src="res/ban-top_pub.jpg" width="600" height="100"></p>');
    	echo('<table width="600" border="0" cellspacing="0" cellpadding="0">');
    	while($data = mssql_fetch_array($req)){
    		echo('<hr>'); 
    		echo($data['AR_Design'].'<br>');
    		echo($data['FA_CodeFamille'].'<br>');
    		echo($data['AR_Ref'].'<br><hr>');
    	}
    Je comprend pas ou j'ai déconné car je n'est aucun message d'erreur.
    Merci à vous.

  2. #2
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Oula je sais pas ce que t'essaye de faire mais t'a requête ne va pas du tout.
    On peut pas faire de SELECT dans un FROM (enfin pas a ma connaissance).
    Revoie ta requête surtout au niveau de la structure ou sinon dit nous ce que tu veux faire avec pour t'aider.

  3. #3
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Bah je désire selectionner seulement par tranche de 9 dans ma base de données.
    En quelque sorte un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM matable WHERE machin='$truc' LIMIT 1,9
    Seulement voila ca varie et LIMIT n'existe pas en mssql, j'ai donc utilisé un tuto présent ici
    http://sqlserver.developpez.com/faq/?page=Jeu#Jeu2

  4. #4
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Suffit juste de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT TOP 10 * FROM matable WHERE machin='$truc'
    edit : a nan jsuis bête attend jvais essayer de trouver autre chose^^"

  5. #5
    Membre expérimenté Avatar de Gaara-Manga
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    247
    Détails du profil
    Informations personnelles :
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Avril 2007
    Messages : 247
    Par défaut
    Bon j'ai fait un équivalent de limit avec les top j'ai testé sa marche.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT * 
    FROM matable 
    WHERE Monid IN (SELECT TOP 20 Monid FROM matable) 
    AND Monid NOT IN (SELECT TOP 10 Monid FROM matable)
    AND machin='$truc'
    La il te retournera l'enregistrement 10 a 20.

    Bon j'ai pas trop compris comment tourner la requête dans l'article mais jla trouve très bizarre en tout cas^^

  6. #6
    Membre éprouvé Avatar de SirDarken
    Profil pro
    Développeur Web
    Inscrit en
    Février 2004
    Messages
    897
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Services de proximité

    Informations forums :
    Inscription : Février 2004
    Messages : 897
    Par défaut
    Je l'ai transformer en ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $sql = "SELECT AR_Ref, AR_Design, FA_CodeFamille FROM F_ARTICLE ";
    $sql .= "WHERE AR_Ref IN (SELECT TOP 20 AR_Ref FROM F_ARTICLE) ";
    $sql .= "AND AR_Ref NOT IN (SELECT TOP 10 AR_Ref FROM F_ARTICLE) ";
    $sql .= "AND FA_CodeFamille='$g_famille'";
    Mais pareil ca retourne rien le souci c'est que j'ai pas vraiment d'ID (ca vient d'un logiciel SAGE Gestion commercial.
    Je voie pas ou ca peut coincer c'est ca le pire.

    Edit
    En remplacant le AR_Ref dans les select top je recoie ce message, mais ca me semble logique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Warning: mssql_query() [function.mssql-query]: message: Une seule expression peut �tre sp�cifi�e dans la liste de s�lection quand la sous-requ�te n'est pas introduite par EXISTS. (severity 16) in C:\wamp\www\galtier\aff_famille.php on line 27
    On me l'avait dit jamais commencé un truc en fin de semaine tu fini le WE HS, je commence à le croire.

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

Discussions similaires

  1. Problème avec <limits>
    Par micheldup dans le forum C++
    Réponses: 8
    Dernier message: 10/06/2008, 00h26
  2. problème avec LIMIT
    Par naje83 dans le forum Débuter
    Réponses: 0
    Dernier message: 18/12/2007, 16h55
  3. [HSQLDB] problème avec un SELECT utilisant LIMIT
    Par don_quichotte dans le forum Autres SGBD
    Réponses: 5
    Dernier message: 12/04/2007, 23h08
  4. Problème avec LIMIT
    Par Marconico dans le forum Requêtes
    Réponses: 3
    Dernier message: 06/12/2006, 17h49
  5. [MySQL] problème avec LIMIT
    Par gtraxx dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 10/10/2006, 14h58

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