estrarre 5 valori per volta con mysql_fetch_array con annesso bottone

Felice Gattuso

Utente Attivo
19 Ago 2012
41
0
0
salve ragazzi... quesito super semplice per voi... voglio fare in modo che il mysql_fetch_array mi estragga solo 10 post ( per esempio ) e con un bottone ne estragga altri 10 e così via... un pò come su facebook... qualcuno sa come posso fare ?...grazie in anticipo
 
per spiegarmi meglio

HTML:
//riordino post
	$sql = mysql_query("SELECT * FROM post  ORDER BY $order DESC LIMIT 5") or die( mysql_error());	
	
	//ciclo post	
	while ($row= mysql_fetch_assoc($sql)){

devo fare in modo che il limit si sommi di +5 per ogni volta che clicco il bottone "more post"...

qualcuno ha idee :D ?
 
per spiegarmi meglio

HTML:
//riordino post
	$sql = mysql_query("SELECT * FROM post  ORDER BY $order DESC LIMIT 5") or die( mysql_error());	
	
	//ciclo post	
	while ($row= mysql_fetch_assoc($sql)){

devo fare in modo che il limit si sommi di +5 per ogni volta che clicco il bottone "more post"...

qualcuno ha idee :D ?

La butto li.. prendere tutti i risultati e poi mostrarli o meno con jquery??

Oppure altra possibile soluzione utilizzare ajax.
 
ok... in soldoni ? cioè... mettiamo caso devo creare questo bottone che sommi di +5 il limit... come faccio ? quella dell'ajax mi sembra una buona soluzione ma non capisco come agire... come aggiungo +5 al limit ?
 
ok... in soldoni ? cioè... mettiamo caso devo creare questo bottone che sommi di +5 il limit... come faccio ? quella dell'ajax mi sembra una buona soluzione ma non capisco come agire... come aggiungo +5 al limit ?

in soldoni farei cosi...

la pagina che stampa i post:
PHP:
<html>
<head>
	//devi includere jquery
	
	
	
	<script type="text/javascript">
		function getPost(limit)
		{
		 $.ajax({
			type: "POST",
			url: "getPost.php",
			data: { limit: limit,
			cache: false,
			success: function(response)
				{
					if(response == 'ERRORE' || response == null)
					  {
						alert('cavolo!');
					  }
					else
					{
						$('#post').append(response);
						$('#limit').val(limit += 5);
					}
				}
		 })
		 .fail( function() {
			alert('errore');
		 });
		}
	</script>
</head>
<body onload="getPost($('#limit').val());">

	 
	 <div id="post">
		<input type="hidden" id="limit" name="limit" value="5" />
	 </div>
<input type="button" onclick="getPost($('#limit').val());" />
</body>
</html>

La pagina getPost.php la farei cosi:
PHP:
<?php
if(isset($_POST['limit'])):
	//connessione al db
	...
		
	//seleziono gli articoli
	$sSql = mysql_query(
				sprintf(
					"SELECT * FROM post  ORDER BY '%s' DESC LIMIT %d",
					$order, // questo non so da dove lo prendi
					intval($_POST['limit'])
				)
			);
	if(mysql_num_rows($sSql) > 0)
		while ($aRow = mysql_fetch_assoc($sSql)):
			//qui ci va il codice html e php per generare i post da visualizzare ES:
?>
		<div class="articolo">
			<h1><?php echo $aRow['titolo']; ?></h1>
			<p>
			<?php echo $aRow['testo']; ?>
			</p>
		</div>
<?php
		endwhile;
	else
		echo 'ERRORE';
endif;

fatta al volo ed in ufficio qundi non assicuro che funziona perfettamente tutto :D
Ma più o meno la logica è questa secondo me
 
mi sono accordo di alcuni errori grossolani
sostituisci
PHP:
function getPost(limit)
        {
         $.ajax({
            type: "POST",
            url: "getPost.php",
            data: { limit: limit,
            cache: false,
            success: function(response)
                {
                    if(response == 'ERRORE' || response == null)
                      {
                        alert('cavolo!');
                      }
                    else
                    {
                        $('#post').append(response);
                        $('#limit').val(limit += 5);
                    }
                }
         })
         .fail( function() {
            alert('errore');
         });
        }
con
PHP:
function getPost(limit)
        {
         $.ajax({
            type: "POST",
            url: "getPost.php",
            data: { limit: limit},
            cache: false,
            success: function(response)
                {
                    if(response == 'ERRORE' || response == null)
                      {
                        alert('cavolo!');
                      }
                    else
                    {
                        $('#post').append(response);
                        $('#limit').val(parseInt(limit) + 5);
                    }
                }
         })
         .fail( function() {
            alert('errore');
         });
        }
 
Perfetto... ho seguito il tuo ragionamento ma ho utilizzato un altro metodo sulla base di quello... funziona alla grande :D
 
e se mettiamo il caso... volessi fare proprio come su facebook... che deve eseguire il get ajax quando arrivo a fondo pagina... come faccio ? sento che dimezzo ci sta sempre java :D
 
risolto cosi

Codice:
<script type="text/javascript"> 
	$(window).scroll(function() {
    if ($('body').height() <= ($(window).height() + $(window).scrollTop())) {       
		 $.ajax({    
                type: "GET",  
                url: "limit.php",  
                success: function(response){
                    $("#limit").html(response);
                    $('#plus').disabled = false;
                } 
            });
	}
	});
    </script>
 

Discussioni simili