Un semplice loop in PHP - HELP

di il
24 risposte

Un semplice loop in PHP - HELP

Allora, premetto che sono un WebDesigner e quindi di programmazione PHP non so una ceppa! Mi trovo a dover fare un loop in PHP che mi permetta di prendere X immagini caricate da un pannello di controllo Wordpress ma sulla pagina me ne restituisca soltando 3 di queste immagini e per dippiù random.. il codice che ho usato fin ora è:
<?php
				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
				shuffle($images); 
				foreach($images as $image ){
				echo '<a href="';
				echo get('uploads_immagine_sulla_destra',1,$image);
				echo '" rel="lightbox[galleria]">';
 				echo '<img src="';
 				echo get('uploads_immagine_sulla_destra',1,$image);
 				echo '" height="120px" width="220px" rel="lightbox" />';
				echo '</a>';
 				} ?>
Il risultato che ottengo è quasi ottimo, perchè il seguente codice mi restituisce le immagini che carico da pannello di controllo e me le mette random..però io voglio far si che appaiano solo 3 immagini, non tutte!

Ho provato cosi ma niente:
<?php
				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
				shuffle($images); 
				for($images = 1; $images <= 3; ++$images ){
				echo '<a href="';
				echo get('uploads_immagine_sulla_destra',1,$image);
				echo '" rel="lightbox[galleria]">';
 				echo '<img src="';
 				echo get('uploads_immagine_sulla_destra',1,$image);
 				echo '" height="120px" width="220px" rel="lightbox" />';
				echo '</a>';
 				} ?>
Mi rimetto alle vostre mani o potenti programmatori

24 Risposte

  • Re: Un semplice loop in PHP - HELP

    Ciao, prova a fare:
    
    ...
    for($i = 0; $i < 3; ++$i ){
       $image=$images[$i];
    ...
    
  • Re: Un semplice loop in PHP - HELP

    Praticamente cosi? :
    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images); 
    				for($i = 0; $i < 3; ++$i ){
    				$image=$images[$i];
    } ?>
    Non funziona...
  • Re: Un semplice loop in PHP - HELP

    Cos'è che non funziona? se non sappiano l'errore non possiamo agire. Ti lancia un errore php? il risultato non è giusto? Se il risultato non è giusto, cosa ti mostra per essere diverso da cosa ti aspetti?

    metti dei punti di debug per vedere i risultati passo per passo.
  • Re: Un semplice loop in PHP - HELP

    <?php
                $images = getFieldOrder('uploads_immagine_sulla_destra'); 
                shuffle($images); 
                for($images = 1; $images <= 3; ++$images ){
                echo '<a href="';
                echo get('uploads_immagine_sulla_destra',1,$image);
                echo '" rel="lightbox[galleria]">';
                echo '<img src="';
                echo get('uploads_immagine_sulla_destra',1,$image);
                echo '" height="120px" width="220px" rel="lightbox" />';
                echo '</a>';
                } ?>
    con questo codice mi vengono restituiti i campi <img src>. Me ne vengono restituiti 3, come espresso da codice, però sono vuoti! Cioe sono tag vuoti.. <img src="" />, non mi trova le immagini.

    Con il codice scritto nel post precedente invece non mi viene restituito proprio niente, neanche un messaggio di errore, completamente vuoto.
  • Re: Un semplice loop in PHP - HELP

    Prova in questo modo
    
    $images = getFieldOrder('uploads_immagine_sulla_destra'); 
    shuffle($images);
        if(is_array($images)){ 
            for ($i=0; $<3;$i++) 
                echo get_image('uploads_immagine_sulla_destra',1,$images[$i]); 
            } 
        }
    
  • Re: Un semplice loop in PHP - HELP

    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images);
     			    if(is_array($images)){ 
          		    for ($i=0; $i<3;$i++) {
                    echo get_image('uploads_immagine_sulla_destra',1,$images[$i]); 
    					} 
    				} ?>
    Perfetto!! Mi vengono fatte vedere solo 3 immagini e per dippiù random, grazie! Adesso rimane solo un problema.. io alle mie immagini devo dare delle dimensioni precise ed un collegamento a lightbox, tenendo presente che il codice qui sopra funziona alla perfezione ma non mi ridimensiona chiaramente le immagini e non richiama il lightbox io ho provato cosi:
    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images);
     			    if(is_array($images)){ 
          		    for ($i=0; $i<3;$i++) {
                    echo '<a href="';
    				echo get('uploads_immagine_sulla_destra',1,$image[$i]);
    				echo '" rel="lightbox[galleria]">';
     				echo '<img src="';
     				echo get('uploads_immagine_sulla_destra',1,$image[$i]);
     				echo '" height="120px" width="220px" rel="lightbox" />';
    				echo '</a>'; 
    					} 
    				} ?>
    E in questo modo non va, ossia mi restituisce nuovamente 3 campi IMG ma vuoti...mentre il richiamo al Lightbox funziona!

    E comunque grazie per l'aiuto datomi fin ora!
  • Re: Un semplice loop in PHP - HELP

    Scusate il doppio post ma ho risolto, ecco il codice funzionante per chi come me un giorno dovesse trovarsi a risolvere questo problema e si imbatterà in questo fantastico forum colmo di personale disponibile:
    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images);
     			    if(is_array($images)){ 
          		    for ($i=0; $i<3;$i++) {
    				echo '<a href="';
    				echo get('uploads_immagine_sulla_destra',1,$images[$i]);
    				echo '" rel="lightbox[galleria]">';
    				echo '<img src="';
                    echo get('uploads_immagine_sulla_destra',1,$images[$i]); 
    				echo '" height="120px" width="220px" />';
    				echo '</a>';
    					} 
    				} ?>
    ed ecco i tag che permetterano agli avventurosi di trovare questo post tramite zio google:

    magicfields, magic field, wordpress, php loop, images, item, random, shuffle, upload, admin panel, lightbox.

    Ancora grazie a tutti! Problema risolto!
  • Re: Un semplice loop in PHP - HELP

    Prova così
    
    $images = getFieldOrder('uploads_immagine_sulla_destra'); 
    shuffle($images);
        if(is_array($images)){ 
            for ($i=0; $<3;$i++) 
                echo get_image('uploads_immagine_sulla_destra',1,$images[$i],null,null,"h=200&w=200"); 
            } 
        }
    
    già che ci sei, leggiti la documentazione:

    http://wiki.magicfields.org/doku.php?id=front-end_functions
  • Re: Un semplice loop in PHP - HELP

    Scusa forse non hai letto l'ultimo post che ho scritto, ho risolto il problema grazie, quella documentazione l'avevo già letta oggi si, sono 3 giorni che combatto con questo problema, finalmente ne sono venuto a capo grazie a voi grazie il topic può essere chiuso
  • Re: Un semplice loop in PHP - HELP

    In effetti non l'avevo letto devi averlo mandato mentre scrivevo il mio

    ottimo comunque sempre a disposizione
  • Re: Un semplice loop in PHP - HELP

    Effettivamente un problema ci sarebbe
    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images);
     			    if(is_array($images)){ 
          		    for ($i=0; $i<3;$i++) {
    				echo '<a href="';
    				echo get('uploads_immagine_sulla_destra',1,$images[$i]);
    				echo '" rel="lightbox[galleria]">';
    				echo '<img src="';
                    echo get('uploads_immagine_sulla_destra',1,$images[$i]); 
    				echo '" height="120px" width="220px" />';
    				echo '</a>';
    				} 
    				} ?>
    In questo modo carico sempre e comunque 3 immagini, anche se da pannello di controllo ne carico soltanto una nella mia pagina visualizzo l'immagine caricata + 2 immagini vuote. Come fare a visualizzarne soltanto una se ne carico soltanto una? E 2 se ne carico solo 2?
  • Re: Un semplice loop in PHP - HELP

    Con un semplice trucco booleano
    
    for ($i=0; $i<3 || $i < $images.length;$i++)
    
    ti consiglio, oltre alla guida proposta prima, una bella spolveratina di basi di programmazione, operazioni booleane comprese
  • Re: Un semplice loop in PHP - HELP

    <?php
    				$images = getFieldOrder('uploads_immagine_sulla_destra'); 
    				shuffle($images);
     			    if(is_array($images)){
          		    for ($i=0; $i<3 || $i < $images.length;$i++) {
    				echo '<a href="';
    				echo get('uploads_immagine_sulla_destra',1,$images[$i]);
    				echo '" rel="lightbox[galleria]">';
    				echo '<img src="';
                    echo get('uploads_immagine_sulla_destra',1,$images[$i]); 
    				echo '" height="120px" width="220px" />';
    				echo '</a>';
    				} 
    				} ?>
    Continua a restituirmi 3 immagini anche se ne carico solo 1
    Si beh.. oddio io so che programmatore e WebDesign sono 2 mestieri diversi.. a questo punto conviene mettere in preventivo anche un programmatore e far pagare dippiù il cliente
  • Re: Un semplice loop in PHP - HELP

    Infatti

    scusa, sono io cotto
    
    
    for ($i=0; $i<3 && $i < $images.length;$i++) {
    
Devi accedere o registrarti per scrivere nel forum
24 risposte