Visualizzazione dei risultati da 1 a 10 su 10

Discussione: Array to String

  1. #1

    Array to String

    Ciao a tutti,
    ho questo blocco di codice che recupera da un record set i risultati di una SHOW TABLES e mi stampa i nomi delle tabelle separati da virgole in modo sequenziale.

    codice:
    while($rowtab = mysql_fetch_array($result_tabelle)) {
    	echo "'$rowtab[0]', ";
    }

    Come faccio se volessi mettere il tutto in una variabile?

    In pratica vorrei convertire un array in una stringa separata da virgole.

    Grazie.

  2. #2

  3. #3

    da array a stringa

    Non mi ci riaccapezzo....

    Ma sulla base dell'esempio che mi hai dato, qual'è che va al posto della variabile $array?

    $rowtab o $result_tabelle ?

    Questo è il codice come lo stavo facendo... scusate se non capisco una mazza di php.

    codice:
    
    // Query di selezione non variabile $tabella
    $query_tabelle = "SHOW TABLES LIKE '%_stories'";
    
    // Riempimento recordset
    $result_tabelle = mysql_query($query_tabelle, $conn);
    
    	
    // Ciclo con stampa del record
    if($result) {
    	while($rowtab = mysql_fetch_array($result_tabelle)) {
    		$comma = implode(", ", $rowtab);
    	}
    }
    Grazieeeeeeeee

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Dipende da cosa vuoi ottenere
    Vuoi una riga DIVERSA per ogni record oppure vuoi TUTTI i record in un unica variabile?

    Cosa vuoi che sia separato da virgole? I campi del record o i vari record tra loro? E nel secondo caso, come separi i campi? Ti interessano i nomi dei campi o vuoi solo i valori?

    Questo codice crea un array con un elemento con tutti i VALORI separati da virgole per ogni record del query
    Codice PHP:
    // Ciclo con stampa del record
    $listaRecord = array();
    while(
    $rowtab mysql_fetch_array($result_tabelle)) {
      
    $listaRecord[] = implode(", "$rowtab);
      }


  5. #5
    Grazie.

    Ti spiego:
    non ho bisogno di un array, ma di una variabile stringa.


    codice:
    // Riempimento recordset
    $risultato_tabelle = mysql_query($query_tabelle, $conn);
    
    $listaRecord = array(); 
    while($rowtab = mysql_fetch_array($risultato_tabelle)) { 
      $listaRecord[] = implode(", ", $rowtab); 
      } 
    
    
    echo $listaRecord[];

    Il seguente codice mi genera questo errore:

    Fatal error: Cannot use [] for reading in /web/htdocs/localhost/home/query.php on line 27

    all'ultima riga.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Certo che sei stringato di parole!! Ti ho fatto quattro domande e hai risposto a MEZZA!

    Questa stringa COSA DEVE CONTENERE???

    FAcciamo un esempio

    Tabella pippo

    id valore
    1 pluto
    2 paperino

    La variabile finale COSA DEVE CONTENERE?

    1) "pluto, paperino"
    2) "1, pluto" in una riga e "2, paperino" in un altra
    3) "1,pluto,2,paperino"
    4) "1=pluto,2=paperino"
    ...

    Aiutami ad aiutarti

    Inoltre echo $array[] non si può fare!
    al massimo puoi fare
    print_r($array)

  7. #7

    array to string

    Sei stato molto gentile a venirmi incontro

    Dunque: ti spiego.

    Questa query per quanto ne so, restituisce i nomi delle tabelle di un database, quindi non è effettuata su campi e record.

    Il database è fatto da:
    tab_articoli
    tab_utenti
    tab_amministratori

    La variabile di cui ho bisogno è:

    " 'tab_articoli', 'tab_utenti', 'tab_amministratori' "

    Grazie mille!

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2007
    Messaggi
    595
    Spero di aver capito cosa cerchi
    Codice PHP:
    $resultArray = array();
    while(
    $rowtab mysql_fetch_array($risultato_tabelle)) 

      
    $resultArray[] = $rowtab[0];

    $stringa implode(" ,",$resultArray); 

  9. #9

    ti ringrazio

    Ti ringrazio molto, il tuo codice mi ha restituito la stringa che volevo.

    Ma ancora non funziona il mio programmino.

    Eccone il codice:

    codice:
    // Qui mi prendo i nomi di tutte le tabelle
    $resultArray = array(); 
    while($rowtab = mysql_fetch_array($risultato_tabelle)) { 
      $resultArray[] = $rowtab[0]; 
      } 
    
    $comma = implode(", ",$resultArray);
    
    $array_tabelle = array($comma);
    
    // Faccio il ciclo del recordset delle tabelle selezionate
    while($tabella = array_pop($array_tabelle)) {
    
    	// Query di selezione non variabile $tabella
    	$query = "SELECT * FROM $tabella";
    	
    	// Riempimento recordset
    	$ritultato = mysql_query($query, $conn);
    	
    	// Finchè è contenuto qualcosa fai...
    	if($ritultato) {
    		
    		// Ciclo con stampa del record
    		while($riga = mysql_fetch_array($ritultato)) {
    			echo "[*]".$riga['title'];
    		}
    		
    	}
    	
    }
    In pratica io mi vado a selezionare tutte le tabelle una per volta grazie a questo array per poi stampare tutti i record del campo 'title' di ogni tabella.

    Ecco perchè avevo bisogno della variabile $comma da mettere in un array, ma in questo modo non funziona.

    Se invece nella variabile $array_tabelle faccio:
    $array_tabelle = array(tabella1, tabella2, tabella3)
    scrivendoli manualmente allora funziona bene e mi stampa il tutto.

    Come ho fatto in questo codice,

    codice:
    $comma = implode(", ",$resultArray);
    $array_tabelle = array($comma);
    mi viene visualizzato il primo record della seconda tabella loopato per tantissime volte e poi nuovamente un secondo record della seconda tabella loopato per tante volte. Non perchè.

    Potreste darmi una dritta? Ti sono umilmente grato.

  10. #10

    grazie

    Grazie comunque.

    Ho risolto con usando l'array con il classivo $n=$n+1

    codice:
    $query_tabelle = "SHOW TABLES LIKE '%_stories'"; // Seleziono i nomi delle tabelle che contengono gli articoli (_stories) di ogni comune
    
    $rs_tabelle = mysql_query($query_tabelle, $conn); // Riempimento recordset con i nomi delle tabelle
    
    $resultArray = array(); // Creazione array contenente i nomi delle tabelle
    
    $t=0; // La variabile $t contine il numero della tabella che userò per l'array
    
    while($rowtab = mysql_fetch_array($rs_tabelle)) { // Inserisco i dati in un array per identificare la tabella selezionata
    	$resultArray[] = $rowtab[0]; // Dalla riga al result-array
    	$array_tabelle = array($resultArray[$t]); // Questo è il mio result con dentro il numerino della tabella che sta sfogliando
    
    	// Faccio il ciclo per sfogliare i record
    	while($tabella = array_pop($array_tabelle)) {
    	
    		$query = "SELECT * FROM $tabella"; // Query di selezione con variabile $tabella
    		
    		$rs = mysql_query($query, $conn); // Riempimento recordset
    		
    		// Finchè ci trovi qualche articolo qualcosa fai...
    		if($rs) {
    			
    			// While con stampa del record
    			while($riga = mysql_fetch_array($rs)) {
    				echo "[*]".$riga['title'];
    			}
    			
    		}
    		
    	}
    	
    	$t++; // Passo alla tabella successiva
    }

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.