Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 23
  1. #1

    Array separato da virgole e tra apici

    Salve a tutti/e,

    con questo script stampo il nome delle immagini e il relativo caption ciascuno separato da virgole e tra singoli apici. Ma non mi funziona, cioé stampa alcuni senza apici o senza virgola di separazione.... dove sbaglio??
    codice:
    $immagine = "";
    $caption = "";
    $query="SELECT * FROM immagini";
    $risultato=mysql_query($query,$link);
    
    while ($riga = mysql_fetch_row($risultato)) {
    $immagine .= $riga[1];
    $caption .= $riga[2];
    
    if ($immagine=="") { 
    $immagine .= "'admin/upload/".$riga[1]."'"; 
    } else { 
    $immagine .= ",'admin/upload/".$riga[1]."'"; 
    }
    
    if ($caption=="") {
    $caption .= "'".trim(str_replace("\n","",$riga[2]))."'";
    } else {
    $caption .= ",'".trim(str_replace("\n","",$riga[2]))."'";
    } 
    
    }
    echo $immagine; 
    echo $caption;
    En la habana hay una pila 'e locos!

  2. #2
    Utente di HTML.it L'avatar di kodode
    Registrato dal
    Sep 2002
    Messaggi
    1,896
    per capire meglio... potresti postare quello che vuoi ottenere e quello che invece ottieni con questo codice?

  3. #3
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    $immagine e $caption saranno vuoti al primo giro solo se il primo record non contiene nulla nei relativi campi, quindi è possibile che non entri mai nel primo caso dell'IF e che la stringa finale inizi per ',' . Questo non so se sia corretto, come ti è stato richiesto devi indicare il risultato ottenuto e il risultato che vuoi ottenere.
    Ciao

  4. #4
    Risultato ottenuto:

    Per le foto: 1.jpg,'admin/upload/1.jpg'2.jpg,'admin/upload/2.jpg';
    Per i caption: caption1,'caption1'caption2,'caption2';

    Quello che vorrei invece é:

    Per le foto: 'admin/upload/1.jpg','admin/upload/2.jpg';
    Per i caption: 'caption1','caption2';
    En la habana hay una pila 'e locos!

  5. #5
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Ciao
    Immagina il primo ciclo per la variabile immagini:

    $riga[1] è uguale a 1.jpg

    $immagine .= $riga[1];

    quindi $immagine ora vale 1.jpg.

    Entriamo nell'if. Il caso true non sarà mai eseguito, quindi ad $immagine viene appeso il valore del caso false.

    Stesso vale per caption

  6. #6
    Scusami sono un po' duro.... ma l'if mi serve per far stampare l'immagine tra apici seguiti da una virgola o non seguiti dalla virgola nel caso sia l'ultimo elemento, giusto?

    Continuo a non capire come risolvere
    En la habana hay una pila 'e locos!

  7. #7
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Si, il concetto è chiaro ma l'applicazione non è corretta in quanto, come ti ho già detto, nel primo caso potresti non entrarci mai.
    Provo a spiegartelo con i commenti al punto giusto

    Codice PHP:
      $immagine "";
      
    $caption "";
      
    $query="SELECT * FROM immagini";
      
    $risultato=mysql_query($query,$link);

      while (
    $riga mysql_fetch_row($risultato)) {
        
    /*
        Usando =. appendi un certo valore a $immagine e $caption.
        Lo fai all'inizio del ciclo, quindi arrivando all'if, se $riga[1] e $riga[2] 
        contenevano un valore ( e lo contengono ) vuol dire che non saranno più stringa vuota 
        Una soluzione potrebbe essere l'utilizzo di diversi identificatori 
        */
        //$immagine .= $riga[1];
        //$caption .= $riga[2];
        
        // diventano 
        
        
    $img $riga[1];
        
    $cap $riga[2]; 

        
    // Il loro valore è sovrascritto ad ogni giro
        
        
        /*
        if ($immagine=="") { 
          $immagine .= "'admin/upload/".$riga[1]."'"; 
        } else { 
          $immagine .= ",'admin/upload/".$riga[1]."'"; 
        }
        */
        // diventa 
        
        
    if ($img=="") { 
          
    $immagine .= "'admin/upload/".$riga[1]."'"
        } else { 
          
    $immagine .= ",'admin/upload/".$riga[1]."'"
        }
        
    /*
        if ($caption=="") {
          $caption .= "'".trim(str_replace("\n","",$riga[2]))."'";
        } else {
          $caption .= ",'".trim(str_replace("\n","",$riga[2]))."'";
        } */
        // diventa 
        
        
    if ($cap=="") {
          
    $caption .= "'".trim(str_replace("\n","",$riga[2]))."'";
        } else {
          
    $caption .= ",'".trim(str_replace("\n","",$riga[2]))."'";
        } 

      }
      
      
      echo 
    $immagine
      echo 
    $caption
    Non ho testato il codice ovviamente, tu provalo e dimmi se ottieni il risultato.
    Ciao

  8. #8
    Sì avevo pensato ad un altro identificatore e in effetti é migliorato, però la sequenza adesso inizia con una virgola: ,'1.jpg','2.jpg';

    Stessa storia per il caption. Come la tolgo?
    En la habana hay una pila 'e locos!

  9. #9
    Utente di HTML.it L'avatar di Razorblade
    Registrato dal
    Feb 2002
    Messaggi
    1,308
    Prova così

    Codice PHP:
      $immagine "";
      
    $caption "";
      
    $query="SELECT * FROM immagini";
      
    $risultato=mysql_query($query,$link);
      
    $counter 0;
      
      while (
    $riga mysql_fetch_row($risultato)) {
        
    $immagine.= $counter == "" ","
        
    $immagine.= "'admin/upload/".$riga[1]."'";
        
    $caption.= $counter == "" ","
        
    $caption.= "'".trim(str_replace("\n","",$riga[2]))."'";
        
    $counter++;
      }
      
      echo 
    $immagine
      echo 
    $caption
    Dimmi cosa ottieni in caso lo correggo
    Ciao

  10. #10
    Ho ottenuto una sola immagine e un solo caption.
    En la habana hay una pila 'e locos!

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.