Problemi con query ed array

Ciao.

Ho questo codice:

<?php
/* Mi connetto al database */
$host = 'localhost';
$user = 'root';
$password = 'ciao';
$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 * FROM desk WHERE desk = 'derivati'";
$query_indaga = mysql_query ($indaga,$link)
or die ("Non riesco ad eseguire la richiesta $query_indaga");
$num_righe = mysql_num_rows($query_indaga);


$array_matricola = array();
$indice = 0;
while ($valori = mysql_fetch_array ($query_indaga)){
$array_matricola[$indice] = $valori["matricola"];
$indice++;



for ($indice = 0 ; $indice <= $num_righe; $indice++) {
$prima_fascia = "SELECT desk.desk, desk.matricola, `$array_matricola[0]`.turno, turni.codice, `$array_matricola[0]`.data, turni.uscita, turni.fascia
FROM (desk INNER JOIN `$array_matricola[0]` ON desk.matricola = `$array_matricola[0]`.matricola) INNER JOIN turni ON `$array_matricola[0]`.turno = turni.codice
WHERE (((desk.desk)='derivati') AND ((`$array_matricola[0]`.data) >= '2006-08-07' And (`$array_matricola[0]`.data) <= '2006-08-13'))";
$query_prima_fascia = mysql_query ($prima_fascia,$link)
or die ("Non riesco ad eseguire la richiesta  $query_prima_fascia");

$fascia = array();
while ($valori = mysql_fetch_array ($query_prima_fascia)){
$array_fascia[] = $valori ["fascia"];
}
}
}


echo "$array_fascia[0]$array_matricola[0]<br>";
echo "$array_fascia[1]$array_matricola[1]<br>";
echo "$array_fascia[2]$array_matricola[2]<br>";
echo "$array_fascia[3]$array_matricola[3]<br>";
echo "$array_fascia[4]$array_matricola[4]<br>";
echo "$array_fascia[5]$array_matricola[5]<br>";
echo "$array_fascia[6]$array_matricola[6]<br>";
echo "$array_fascia[7]$array_matricola[7]<br>";
echo "$array_fascia[8]$array_matricola[8]<br>";
echo "$array_fascia[9]$array_matricola[9]<br>";
echo "$array_fascia[10]$array_matricola[10]<br>";
echo "$array_fascia[11]$array_matricola[11]<br>";
echo "$array_fascia[12]$array_matricola[12]<br>";
mysql_close ($link);
?>

Dovrei fare in modo che la prima query mi calcoli il numero delle righe estratte (e lo fa), poi vengono  caricati i numeri delle matricole all'interno di un array (i numeri delle matricole sono a loro volta ciascuna una tabella), poi una successiva query fa una estrazione continuativamente con un ciclo per tutte le tabelle (i numeri di matricola) contenute all'interno dell'array.per estrarre poi ulteriori valori che vorrei vedere stampati a video: vorrei veder stampati i valori fascia (diurno, intermedio, serale) e matricola.

Qualcosa sembrerebbe  funzionare, mi ritornano indietro i seguenti valori

diurno37600
diurno
diurno
diurno
diurno
diurno
diurno
diurno
diurno
diurno
diurno
diurno
diurno40878

Per far stampare qualcosa devo inserire nella query i valori $array_matricola[0] , se metto tra le parentesi quadre $index o le lascio vuote non funziona più nulla.

Quello che mi sembra strano è che mi stampa la prima riga che è corretta (è una fascia diurno corrispondente a quel numero di matricola) e l'ultima (anch'essa corretta) della tabella desk. I valori in mezzo risultano tutti diurno (e non è vero) e non viene immesso nessun numero di matricola ...

Com'è possibile estrarre i singoli valori delle matricole dalla tabella desk per poi immetterne i relativi valori in un array per poi lanciarci una query, ciclicamente fino ad esaurimento dei codici matricole contenuti nell'array stesso,  onde stampare ulteriori valori compresi quelli delle matricole?

Proprio non mi riesce ....  :wallbash:

Help me  :-[

Stone

inviato 10 anni fa
stone
X 0 X

ehm, credo di aver risolto, ho tolto $index dalle parentesi quadre di $array_matricola[].

Il problema è ora come immettere un codice un po' più snello per stampare i vari valori ... come potrei fare?

Stone

 :bye:

risposto 10 anni fa
stone
X 0 X

ehm, credo di aver risolto, ho tolto $index dalle parentesi quadre di $array_matricola[].

Il problema è ora come immettere un codice un po' più snello per stampare i vari valori ... come potrei fare?

Stone

 :bye:

Credevo di aver risolto ...

Purtroppo mi stampa tutti diurno ma alcuni invece sono intermedio e serale. Mentre la prima riga è sempre corretta, sembra che il valore diurno della prima riga venisse trasposto a tutto il resto, come se non tenesse in considerazione l'array_fascia ...

Il problema è anche  come immettere un codice un po' più snello per stampare i vari valori ... come potrei fare?

Stone

 :bye:

risposto 10 anni fa
stone
X 0 X

Secondo me dovresti rivedere le query e provare a realizzare un'unica query con uno o più JOIN.

Riporta la struttura delle tabelle interessate e poi descrivi nel dettaglio quali informazioni vuoi estrarne e con quale criterio. La visualizzazione è un problema successivo.

 :bye:

risposto 10 anni fa
Gianni Tomasicchio
X 0 X

Ciao Gianni.

Nella tabella "desk" sono presenti i seguenti campi:

- desk

- matricola (vi è un elenco di matricole che sono codici a ui corrispondono i nomi delle tabelle relative alle matricole stesse)

- nome

-cognome

nelle tabelle delle varie matricole (37600, 38073, ecc):

- giorno

- data-

- matricola

- nome

- cognome

- turno

- inquadramento

- desk

nella tabella "turni"

- codice (il codice del turno)

- tipo

- fascia

A me serve una query che dalla tabella "desk" per il desk "derivati" (campo desk) mi estragga tutte le matricole di coloro che lavorano in tale desk (ciascuna matricola poi corrisponderà ad una tabella chiamata con lo stesso numero: ad es la matricola 37600 (contenuta nella tabella "desk" al campo matricola, sarà anche una tabella chiamata "37600")). Questa estrazione dei valori delle varie matricole dovrebbe poggiare dentro un array che poi vorrei utilizzare per fare un ciclo di query su tutte le tabelle richiamandone il nome dall'array con il valore della matricola estratto dalla tabella "desk" (questa parte, diciamo, mi è riuscita poichè riesco a stampare i singoli record di una tabella matricola presa a piacimento dal mio array.

Però dovrei riuscire (e qui il secondo join dell' unica query sottoposta a ciclo) anche ad estrarre i valori contenuti nel campo fascia  della tabella "turni".

Un gran bel pasticcio ma non posso fare diversamente poichè le tabelle sono sempre sottoposte ad update e devo servirmi di più tabelle per avere un insieme di informazioni che mi servono. :(

Il problema è come mai non riesco a stampare correttamente i valori contenuti in fasce, sembra che il primo valore (diurno) venga ripetuto per tutti gli altri record/matricoel ma non è per tutti così,, all'interno della tabella fasce vi sono valori anche come serale...

Stone :bye:

risposto 10 anni fa
stone
X 0 X

qualcuno mi aiuti .......  :wallbash:

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