Problemi con gli array

Ciao!

Estraggo alcuni codici con questa query:

<?php
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'personale';
$link=mysql_connect("$host","$user","$password")
or die ("Non riesco a connettermi a <b>$host");
mysql_select_db ($database, $link)
or die ("Non riesco a selezionare il db $database<br>");
$indaga = "SELECT `37491`.turno FROM `37491` WHERE (((`37491`.data)>='2006-08-01' And (`37491`.data)<='2006-08-31'))
GROUP BY `37491`.turno HAVING (((`37491`.turno)<>'no' And (`37491`.turno) Is Not Null))";
$query_indaga = mysql_query ($indaga,$link)
or die ("Non riesco ad eseguire la richiesta  $query_indaga");
echo "
<html>
<head>
</head>
<body>
<p><font face=verdana size=4 color=#0909FF>
<br>
<table border=1 width=20 id=table1>
      <td width=10><font face=Arial color=#0909ff><p align=left>Codice</p></font></td>

";
while ($valori = mysql_fetch_array ($query_indaga)){
$turno = $valori ["turno"];
echo "
   <tr>
      <td width=20><font color=#0909FF face=Arial size=2><span style=text-decoration: none><p align=center>$turno</span></font></p></td>";
}
echo "</table>";
mysql_close ($link);
?>

questo codice mi estrae i seguenti valori:

1105

1480

1656

63

allora se apporto una piccola modifica mettendo

[ ...]
$turno[] = $valori ["turno"];
[...]
echo "
   <tr>
      <td width=20><font color=#0909FF face=Arial size=2><span style=text-decoration: none><p align=center>$turno[0]</span></font></p></td>";

riesco ad estrarre il codice corrispondente all'indice  dell'array, il problema è che (ad es. per l'array con indice 0 a cui corrisponde il codice turno 1105) mi vengono stampati quattro volte lo stesso valore 1105

1105

1105

1105

1105

se metto $turno[1] mi stampa per tre volte il codice 1480

1480

1480

1480

se metto $turno[2] mi stampa per due volte 1656 e se metto $turno[3] mi stampa una volta il codice 63.

Sicuramente è collegato al fatto che la query estrae quattro codici, ma come posso risolvere la visualizzazione in modo che compaio sempre un solo codice visualizzato?

Ciao

Stone  :bye:

inviato 10 anni fa
stone
X 0 X

Non capisco perchè aprire più topic per lo stesso post, cmq il tuo problema non è con gli array, ma con la logica sbagliata del codice.

..omississ..
$turno = array();
$indice = 0;
while ($valori = mysql_fetch_array ($query_indaga)){
$turno[$indice] = $valori ["turno"];
$indice++;

}
$indice = mt_rand(0,$indice-1);
echo "
   <tr>
      <td width=20><font color=#0909FF face=Arial size=2><span style=text-decoration: none><p align=center>$turno[$indice]</span></font></p></td>";
echo "</table>";
mysql_close ($link);
?>

Il ciclo carica i singoli valori nell'array turno, generando così un vero array popolato con tutti i codici del campo turno della query, esce dal ciclo, genera un numero casuale per scegliere il turno, ne visualizza 1 tra tutti.

risposto 10 anni fa
LonelyWolf
X 0 X

Grandissimo!

Funziona in modo assolutamente perfetto!

Ti ringrazio tantissimo!  :) :) :)

Stone  :bye:

risposto 10 anni fa
stone
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda