Problema Indice alfanumerico per un array

  • Creatore Discussione Creatore Discussione civolo
  • Data di inizio Data di inizio

civolo

Nuovo Utente
24 Nov 2010
2
0
0
ciao a tutti mi ritrovo così:
$query=mysql_query("SELECT Nome, 3°Giornata, 4°Giornata FROM Risultati WHERE Nome='Pippo' ",$Conn);
while ($row=mysql_fetch_array($query)){
?>
<tr>

<td><?php echo $row[Nome];?></td>
<td><?php echo $row[3°Giornata];?></td>
<td><?php echo $row[4°Giornata];?></td>

</tr>
<?php } ?>
mi da errore nelle righe dove c'è l'indice 3°Giornata e 4°Giornata..però devo usare per forza quelle stringhe poichè l'array è stato creato con tali indici...ma all'esecuzione della pagina mi viene fornito l'errore:
syntax error, unexpected T_STRING, expecting ']'..
che posso fare? cambio il nome nel database o c'è una soluzione?
Grazie
 
Negli array associativi le chiavi devono essere racchiuse tra apici. Anche se poi nella pratica nella maggior parte dei casi funziona anche senza apici, questo non vuol dire che sia una pratica corretta.
 
Io avevo provato con apici e senza, solo nel numero solo nella stringa ma niente, a questo punto ho risolto mettendo i numeri in romano, al posto di 1=>I ecc..
se non sbaglio nella teoria degli array c'era anche che i contenuti di un array gestito da un indice devono essere dello stesso tipo, e mi sembra valesse anche per gli indici...cioè che non possano essere formati da più tipi(in questo caso stringe e numeri), correggimi se ho sbagliato :) , comunque ho risolto mettendo i numeri romani così avendo l'indice formato di una stringa unica senza numeri..
grazie per l'interessamento :)
 
ciao
....da un indice devono essere dello stesso tipo...
ih php possono essere miste es.
PHP:
$ar=array('pinco' ->'pallo','caio'->'sempronio');
//se poi fai
$ar[]="sofonisba";
$ar[]="pancrazio";
$ar['tizio']="asdrubale";
ti ritrovi
in
$ar['pinco']==pallo
$ar['caio']==sempronio
$ar[0]==sofonisba
$ar[1]==pancrazio
$ar['tizio']==asdrubale

anche se secondo me è un modo poco corretto di operare (dal punto di vista della logica non di php)
 
Il problema di fondo nel non racchiudere tra apici gli indici dell'array è che così facendo il parser di PHP tenterebbe di interpretare la stringa "3°Giornata" come costante, se non fosse che una costante (e più in generale un identificatore) non può iniziare con un numero (può contenerlo, ma non deve essere il primo carattere). Quindi l'interprete decide che essendoci un intero, questo debba essere interpretato come uno scalare.

Visto nell'ottica del tuo problema, infatti poi ritorna questo errore:

syntax error, unexpected T_STRING, expecting ']'

perchè dopo l'indice scalare dell'array si aspetta che venga chiusa la parentesi quadra:

echo $row[3]

e invece trova questo:
echo $row[3°Giornata]
E' complicato e non mi sono spiegato molto bene, ma ci ho provato....
 
Ultima modifica:

Discussioni simili