Problemi nella stampa a video di variabili

  • Creatore Discussione Creatore Discussione archema
  • Data di inizio Data di inizio

archema

Nuovo Utente
29 Dic 2012
13
0
0
Salve a tutti...

Ho sudato parecchio per arrivare a stampare a video delle variabili, ma ora mi ritrovo con il problema inverso... ovvero, la definizione della variabile $descr mi serve solo per generare l'array, ma quando eseguo il codice, prima di stampare il contenuto con il "ciclo for", mi compare la scritta "Array"... come posso ovviare a tutto ciò?

Preciso che per "entrare ed uscire" (passatemi i termini) uso questa sintassi:

<?php
echo codice in html ', codice in php ,'

Ecco la porzione di codice incriminato:

PHP:
<?php
	<p>',$descr = explode(" ", $game[$i]['description']);
	$idestot = 50;
        for ($ides=0; $ides<$idestot; $ides++)
        {
	echo $descr[$ides]; echo ' ';} echo'...</p>

// altra porzione di codice HTML ..... e poi chiudo il tag di PHP

';}
?>

Grazie.
:byebye:
 
Ciao, il codice così come l'hai postato non ha molto senso:
Corretto è cosi':

PHP:
 <?php
    
   $descr = explode(" ",$game[$i]['description']);
    $idestot = 50;
    for ($ides=0; $ides<$idestot; $ides++) {
     echo $descr[$ides]; 
    }
?>
La variabile $game non esiste e non ha un parametro numerico iterato quindi....
 
Ultima modifica:
Cosi' ha piu' senso ma non ho capito cosa devi fare:

PHP:
 <?php
    
	$game=array("dato1","dato2");
	$descr = implode(" ",$game);
    $idestot = 50;
    for ($ides=0; $ides<$idestot; $ides++) {
     echo $descr[$ides]; 
    }
?>
 
Grazie per la pronta risposta...
effettivamente mi sono spiegato male...

La variabile $game è già stata definita più su e non crea problemi... a dire il vero non ho nesun problema, se non i seguenti due:

- la variabile $descr = explode(" ", $game[$i]['description']); mi viene stampa a video: Array, quando a me, invece, serve solo per crearmi un array e non ho nessuna esigenza che mi stampi la scritta Array sul video

- stesso problema più giù con $count_ii = count ($game[$i]['tags']); Questa variabile mi serve solo per stabilire quante iterazioni da fare con il seguente ciclo, ma mi stampa a video un Numero (ovviamente il numero dei cicli). Anche in questo caso non ho nessun interesse di vedere a video il numero stampato.

Se non si capisce con il seguente codice, posso passarvi l'url della pagina con lo script in azione.

ecco cmq il codice per intero:

PHP:
<?php
if (!isset ($x)) {$x= 0;}
for ($i=0; $i<$games_number; $i++){
echo '<div id="each_game">
	<div id="game_title"> 
    <h1 class="game_title"><a href="/url.php?category=',$game[$i]['category'],'&gname=',$game[$i]['name'],'&id=',$game[$i]['game_tag'],'" title="play ',$game[$i]['name'],' games"><strong>',$game[$i]['name'],'</strong></a></h1>
	</div>
	<div id="each_game_info">
	<p>',$descr = explode(" ", $game[$i]['description']);
	$idestot = 50;
    for ($ides=0; $ides<$idestot; $ides++){
	echo $descr[$ides]; echo ' ';} echo'...</p>
	<p class="each_game_info">testo testo testo: <strong><span class="each_game_info_BOLD">AVAILABLE </span></strong><img src="immagine.png" /></p>
        <p class="each_game_info">tag: ', $count_ii = count ($game[$i]['tags']); for ($ii=0; $ii<$count_ii; $ii++)
	 {echo $game[$i]['tags'][$ii]; echo ', ';} echo '</p>
	</div>
</div>';
if ($i==1){echo'<div id="script"><script type="text/javascript"></script></div>';}
if ($i==25){echo'<div id="script"><script type="text/javascript"></script></div>';}}
?>
 
Ciao.
Prova così:
PHP:
  <?php
    if (!isset ($x)) {$x= 0;}
    for ($i=0; $i<$games_number; $i++){
    echo '
     <div id="each_game">
       <div id="game_title"> 
       <h1 class="game_title">
	<a href="/url.php?category=',$game[$i]['category'],
	'&gname=',$game[$i]['name'],'&id=',$game[$i]['game_tag'],
         '"title="play',$game[$i]['name'],' games">
	<strong>',$game[$i]['name'],'</strong>
       </a>
      </h1>
      </div>
      <div id="each_game_info">
      <p>
        ',$descr = explode(" ", $game[$i]['description']);
         $idestot = 50;
        for ($ides=0; $ides<$idestot; $ides++){
           //echo $descr[$ides]; echo ' ';
	 } echo'...
      </p>
      <p class="each_game_info">
        testo testo testo: <strong>
	<span class="each_game_info_BOLD">AVAILABLE </span>
	</strong><img src="immagine.png" />
      </p>
      <p class="each_game_info">tag: 
          ', $count_ii = count ($game[$i]['tags']); 
         for ($ii=0; $ii<$count_ii; $ii++){
	    //echo $game[$i]['tags'][$ii]; echo ',';
	  } '
      </p>
    </div>
    </div>';
    if ($i==1){
	echo'<div id="script"><script type="text/javascript"></script></div>';
    }
    if ($i==25){
	echo'<div id="script"><script type="text/javascript"></script></div>';}
    }
   ?>
 
Ultima modifica:
Stampa "Array" perchè la variabile $descr è un array in quanto la funzione explode la rende tale.
Arriviamo al codice, correggo un po' quello postato da helpdesk che se non erro (correggimi se sbaglio) stampa Array come prima.

PHP:
  <?php
    if (!isset ($x)) {$x= 0;}
    for ($i=0; $i<$games_number; $i++){
    echo '
     <div id="each_game">
       <div id="game_title"> 
       <h1 class="game_title">
	<a href="/url.php?category=',$game[$i]['category'],
	'&gname=',$game[$i]['name'],'&id=',$game[$i]['game_tag'],
         '"title="play',$game[$i]['name'],' games">
	<strong>',$game[$i]['name'],'</strong>
       </a>
      </h1>
      </div>
      <div id="each_game_info">
      <p>';
      $descr = explode(" ", $game[$i]['description']);
      $idestot = 50;
      for ($ides=0; $ides<$idestot; $ides++){
           echo $descr[$ides]." ";
      } 
      echo'...
      </p>
      <p class="each_game_info">
        testo testo testo: <strong>
	<span class="each_game_info_BOLD">AVAILABLE </span>
	</strong><img src="immagine.png" />
      </p>
      <p class="each_game_info">tag: ';
      $count_ii = count ($game[$i]['tags']); 
         for ($ii=0; $ii<$count_ii; $ii++){
	      echo $game[$i]['tags'][$ii].", ";
	  }
      echo '
      </p>
    </div>
    </div>';
    if ($i==1){
	echo'<div id="script"><script type="text/javascript"></script></div>';
    }
    if ($i==25){
	echo'<div id="script"><script type="text/javascript"></script></div>';
    }
    }
   ?>
Con questo codice dovrebbe scomparire Array e il numero dato da count e dovresti vedere il contenuto di $descr e di $game.
Se non va bene così posta anche il link.
 
Stampa "Array" perchè la variabile $descr è un array in quanto la funzione explode la rende tale.
Arriviamo al codice, correggo un po' quello postato da helpdesk che se non erro (correggimi se sbaglio) stampa Array come prima.

PHP:
  <?php
    if (!isset ($x)) {$x= 0;}
    for ($i=0; $i<$games_number; $i++){
    echo '
     <div id="each_game">
       <div id="game_title"> 
       <h1 class="game_title">
	<a href="/url.php?category=',$game[$i]['category'],
	'&gname=',$game[$i]['name'],'&id=',$game[$i]['game_tag'],
         '"title="play',$game[$i]['name'],' games">
	<strong>',$game[$i]['name'],'</strong>
       </a>
      </h1>
      </div>
      <div id="each_game_info">
      <p>';
      $descr = explode(" ", $game[$i]['description']);
      $idestot = 50;
      for ($ides=0; $ides<$idestot; $ides++){
           echo $descr[$ides]." ";
      } 
      echo'...
      </p>
      <p class="each_game_info">
        testo testo testo: <strong>
	<span class="each_game_info_BOLD">AVAILABLE </span>
	</strong><img src="immagine.png" />
      </p>
      <p class="each_game_info">tag: ';
      $count_ii = count ($game[$i]['tags']); 
         for ($ii=0; $ii<$count_ii; $ii++){
	      echo $game[$i]['tags'][$ii].", ";
	  }
      echo '
      </p>
    </div>
    </div>';
    if ($i==1){
	echo'<div id="script"><script type="text/javascript"></script></div>';
    }
    if ($i==25){
	echo'<div id="script"><script type="text/javascript"></script></div>';
    }
    }
   ?>
Con questo codice dovrebbe scomparire Array e il numero dato da count e dovresti vedere il contenuto di $descr e di $game.
Se non va bene così posta anche il link.

FANTASTICO... ora funziona a meraviglia.

Effettivamente mettere in // commento la riga di codice lo avrebbe reso inutilizzabile.

Grazie davvero a tutti... per me questa era una cosa estrema...

Grazie.
 

Discussioni simili