Visualizzazione dei risultati da 1 a 9 su 9
  1. #1

    Intruso in query con risultati random: è possibile?

    Ciao a tutti,
    credo che sia non fattibile ma comunque provo a postare ugualmente.
    Ho una pagina che mi riporta i risultati di una query da database e li dispone in ordine di inserimento decrescente.
    I valori sono: una foto, il titolo e l'autore.
    Volevo sapere se era possibile poter inserire in maniera random o programmata un div (sesse dimensioni dei risultati) creato staticamente.
    Es ho 50 risultati da database:
    <div>$foto, $autore, $titolo</div>
    <div>$foto, $autore, $titolo</div>
    <div>$foto, $autore, $titolo</div>

    <div>intruso</div>
    <div>$foto, $autore, $titolo</div>
    <div>$foto, $autore, $titolo</div>
    <div>$foto, $autore, $titolo</div>

    E' fattibile la cosa secondo voi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    ciao Pimpinelli,
    non so se ho capito bene quel che vuoi fare ma se così fosse non è niente di strettamente legato al php, è più che altro un piccolo "problema" di logica,

    ipotizziamo che la tua query restituisca 50 record,
    potresti estrarre un numero tra 1 e 50 con la rand ed avresti la tua posizione random salvata in una variabile $x.
    Poi fai il ciclo per stampare i contenuti, quando sei all'iterazione numero $x oltre stampare il div con il contenuto del db stamperai anche il div intruso.

    Spero di aver capito bene le tue intenzioni.

  3. #3
    Ciao arkus,
    è proprio quello che vorrei fare…
    Ora siccome sono autodidatta in materia di php riesco a fare le cose base (spesso), mi potresti indicare concretamente alcuni passaggi per identificare la posizione random $x?
    Grazie per la tua dritta.
    Aspetto fiducioso alcune tue indicazioni.
    Ciao

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    prova a postare il codice che hai scritto per la visualizzazione dei dati e vediamo come integrare la stampa dell'intruso.

  5. #5
    Utente di HTML.it L'avatar di joker06
    Registrato dal
    Dec 2006
    Messaggi
    782
    Diciamo che hai:

    Totale_righe -> 50
    Intruso -> 10 (ogni 10 righe lo stampi)

    nel ciclo:
    codice:
    if ($Totale_righe % $intruso != 0)
       stampi riga 
    else 
       stampi riga
       stampi intruso
    una cosa simile dovrebbe essere corretta
    perdona se è scritta un po cosi veloce ma sono al cellulare

  6. #6
    Ciao a tutti,
    non ho ancora provato il codice di joker06
    nel frattempo
    questo il codice da me realizzato per la query
    Codice PHP:
    <?  
    $sqlmoto 
    "SELECT prodotti.*,users.id_countries,users.id_user,countries.alpha_2 FROM prodotti 
    INNER JOIN users
    ON prodotti.id_utente = users.id_user
    INNER JOIN countries
    ON countries.id = users.id_countries
    WHERE pubblica='no'"
    ;
    $resmoto mysql_query($sqlmoto$conn);
      
    while (
    $rowmoto mysql_fetch_array($resmoto))
    {
        
    $id_utente $rowmoto['id_utente'];
        
    $id_moto $rowmoto['id_prodotto'];
        
    $marca $rowmoto['marca'];
        
    $modello $rowmoto['modello'];
        
    $cartella $rowmoto['prod_foto01'];
        
    $flag $rowmoto['alpha_2'];
        
    //echo 'ciao '.$flag;
        
    $pics opendir('gallery/'.$cartella.'/thumbnails/');
        while (
    $filename readdir($pics)){

        if (
    $filename != '.' && $filename != '..') {

            
    $path 'gallery/'.$cartella.'/thumbnails/'.$filename;
            list(
    $width$height) = getimagesize($path);
            
                
    $immagine'[img]'.$path.'[/img]';
        }
        
    //stampo il risultato
        
    }
    }

    ?>

  7. #7
    ciao Joker06
    ho fatto copia ed incolla del tuo codice sulla mia query ma ho trascurato qualcosa perché non mi restituisce l'intruso ogni singolo risultato
    Codice PHP:
    $inserzioni_check mysql_query("SELECT * FROM prodotti") or die(mysql_error());
    $righe mysql_num_rows($inserzioni_check);

    $sqlmoto "SELECT * FROM prodotti ";
    $resmoto mysql_query($sqlmoto$conn);
    while (
    $rowmoto mysql_fetch_array($resmoto))
    {
        
    $intruso 'intruso';
        
    $id_moto $rowmoto['id_prodotto'];
            if (
    $righe $intruso != 0)
       
    //stampi riga
       
    echo $id_moto.'
    '
    ;
    else {
       
    //stampi riga
       //stampi intruso
       
    echo $id_moto.'
    '
               
    .$intruso.'
    '
    ;
    }

    puoi essere così gentile da indicarmi come posso mettere l'intruso ogni 10 risultati?
    Grazie

  8. #8
    Utente di HTML.it
    Registrato dal
    Oct 2009
    Messaggi
    292
    tornando all'esempio iniziale, un solo intruso random in mezzo ai 50 risultati, ti posto un codice d'esempio senza entrare nel merito del tuo codice che nel frattempo è cambiato.

    Codice PHP:
    $max mysql_num_rows$query_result ); 
    $x mt_rand1$max ); 
    for(
    $i 0$i $max$i++){     
      if( 
    $i == ( $x-) ) echo "<div>Intruso</div>";           
      
    $row mysql_fetch_assoc$query_result );     
      echo 
    "<div>Contenuti database</div>"


    nel caso tu volessi stampare ogni 10 risultati:

    if ($riga_corrente % 10 != 0)

    dove $riga_corrente è il numero dell'iterazione di cui dovrai tenere traccia.

  9. #9

    [Risolto]

    ciao,
    scusate il ritardo nel postare i miei complimenti, questa cosa la faccio nel tempo libero.
    Funziona!!!
    Grazie a tutti e alla prox.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.