Comment délimiter des résultats mysql?

Fermé
joboy84 - 8 nov. 2007 à 17:35
 Alain42 - 9 nov. 2007 à 13:39
Bonjour,

Je souhaiterai que vous m expliquez comment faire pour limiter des resultats..

Voila, je vous file mon script : Il sert à afficher des jeux concours présent dans la base de donnée. Par contre le lien mènant jusqu'au site du jeu concours ne s'affiche que pour les membres connectés.

Je souhaiterai faire en sorte qu'il n'y ai que 4 concours qui s'affichent par page...

Si par exemple dans la base j'ai 10 jeux concours, actuellement cela m'affiche les 10 concours sur la meme page...Je voudrai donc qu'il affiche 4 concours sur la premiere page, puis un lien "suivant" menant vers les 4 suivant...etc...

Merci

<?php 
				
// connexion à la base
$db = mysql_connect('xxxxxx', 'xxxx', 'xxxxxxxxx') or die('Impossible de se connecter a la base de données'.mysql_error());

// sélection de la base  
mysql_select_db('xxxxxx',$db)  or die('Erreur de selection de la base'.mysql_error());
 
session_start(); 

$pseudo = $_SESSION['pseudo'];  
 
// on crée la requete SQL
$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer)";
 
// on envoie la requête

$req = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); 

if (!$req)
{
	echo "query = ".$sql."\n";
	echo "mysql_errno = ".mysql_errno($link)."\n";
	echo "mysql_error = ".mysql_error($link)."\n";	
	exit;
} 

if (mysql_num_rows($req) > 0 & session_is_registered('id')==true) 
{

	// on fait une boucle qui va faire un tour pour chaque enregistrement
	while($data = mysql_fetch_array($req)) 
    	{	
        	echo '<table width="534" height="31" border="0">
                <tr>
                  <td width="410" height="25" bordercolor="#044A74" bgcolor="#025384">'.$data['nomconcoursargent'].'</td>
                  <td width="107" bordercolor="#044A74" bgcolor="#025384"><div align="center">'.$data['plusinfo'].'</div></td>
                </tr>
              </table>
			  <table width="534" border="0">
                <tr>
                  <td width="155" height="83" bordercolor="#044A74" bgcolor="#025384">Lots mis en jeu : </td>
                  <td width="354" bordercolor="#044A74" bgcolor="#025384">'.$data['jeuxconcoursargent'].'</td>
                </tr>
              </table>			  
			  <table width="534" border="0">
                <tr>
                  <td width="522" bordercolor="#044A74" bgcolor="#025384"><div align="center">'.$data['lienconcoursargent'].'</div></td>
                </tr>
              </table>
			    <table width="534" border="0">
                  <tr>
                    <td bordercolor="#044A74" bgcolor="#025384"><div align="center"><form action="TESTSUPLOTERIES.php" 	method="post">
		<input name="idccargent" type="hidden" value="'.$data['idccargent'].'">
		<input name="pseudo" type="hidden" value="'.$pseudo.'">
		<input type="submit" class="fondblanc" value="Effacer ce jeu concours de mon compte">
		 </form></div></td>
                  </tr>
                </table><br>';
 	  }   
}
else
{
while($data = mysql_fetch_array($req))
{
			  	echo '<table width="534" height="31" border="1">
                <tr>
                  <td width="410" height="25">'.$data['nomconcoursargent'].'</td>
                  <td width="107"><div align="center">'.$data['plusinfo'].'</div></td>
                </tr>
              </table>
			  <table width="534" border="1">
                <tr>
                  <td width="155" height="83">Lots mis en jeu : </td>
                  <td width="354">'.$data['jeuxconcoursargent'].'</td>
                </tr>
              </table>			  
			  <table width="534" border="1">
                <tr>
                  <td width="522"><div align="center"><form action=membres/index.php 	method="post">
		<input type="submit" class="fondblanc" value="Cliquez ici pour participer à ce jeu concours"> 
		</form>
		</div></td>
                </tr>
              </table><br>';
}
}
// on ferme la connexion à mysql
mysql_close();
?>  

5 réponses

Re,

Je pense que d apres mes recherches il faut utiliser :

SELECT * FROM `listeconcoursArgent` ORDER BY `typeconcours` ASC LIMIT 0 , 4


Mais comment l integrer à

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT
idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY
idcampconfirmer)";


Bonne continuation
1
Bonjour,

Cette partie est reussie :

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY `typeconcours` ASC LIMIT 0 , 4";


Mais comment afficher les liens suivant..;précédent..?!
0
Bonsoir,

esayes:

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY `typeconcours` ASC LIMIT ".$debut." ,".$fin."";


ensuite au premier affichage tu initialises
$debut=0;
$fin=4;

et dans le lien page 2, tu mets ton_script.php ?debut=5&fin=9
dans le lien page 2, tu mets ton_script.php ?debut=10&fin=14

etc...

et tu récupéres par $_GET['debut']
0
Bonjour,

Effectivement Alain !

J'ai juste un soucis pour intégrer a cause des guillemet ' et "...

J'ai fait :

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY typeconcours ASC LIMIT '.$limite.','.$nombre";


Et ca m'affiche une page blanche...

Si je fait comme tu dis ci dessus...ca marche pas non plus..

en mettant

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY typeconcours ASC LIMIT "'.$limite."','".$nombre";


Ca donne :

Erreur SQL !
SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='' GROUP BY idcampconfirmer) ORDER BY typeconcours ASC LIMIT '.0.','.4
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''.0.','.4' at line 1


Je sais que c est a cause des guillemet car je sais jamais comment les mettre...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Bonjour,

tu n'as pas mis exactement comme je te disait:

$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY `typeconcours` ASC LIMIT ".$debut." ,".$fin."";



toi tu as mis:


$sql = "SELECT * FROM listeconcoursArgent WHERE idccargent NOT IN (SELECT idcampconfirmer FROM confirmeconcoursargent WHERE pseudo='".$pseudo."' GROUP BY idcampconfirmer) ORDER BY typeconcours ASC LIMIT "'.$limite."','".$nombre";

ne mets pas les '
après LIMIT, ou alors mets les avant les "

'".$limite."'


tu as commencé ta chaine de requette avec " donc lorsque tu concatènes par le point il faut que ce soit avec "
0