variabile php che raccoglie molti ID e li passa a un'altra query

zanzu

Nuovo Utente
20 Apr 2011
5
0
0
Salve. Ho appena inziato a usare php e MySql arrivando da asp e Access e dove posso mi faccio aiutare da Dreamweaver.
Il problema è questo: estraggo una serie di ID da una tabella tramite una query e devo estrarre i dati relativi a quegli ID da un'altra tabella che ha lo stesso campo ID in relazione.
Mi spiego meglio: ho una tabella "Servizi" dalla quale, tramite una ricerca estraggo gli ID di tutte le ditte che svolgono un determinato servizio. Fatto questo, devo usare quegli ID per estrarre da un'altra tabella "Aziende" i dati "Ragione_Sociale","indirizzo", eccetera.
La variabile che passa i dati può contenere da 1 a qualche decina di ID.
Grazie per qualsiasi suggerimento
 

micio86

Utente Attivo
Fai un ciclo

Hai la tua query mysql in php tipo :

PHP:
<?php

$risultato = mysql_query("SELECT id FROM mia_tabella");

while ($riga = mysql_fetch_array($risultato, MYSQL_ASSOC){
    // Qui fai le tue query select con l'id che sarà in --> $riga['id'];
}
?>
 

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Invece di scrivere:
PHP:
mysql_fetch_array($risultato, MYSQL_ASSOC);
È più pratico scrivere:
PHP:
mysql_fetch_assoc($risultato);
E, in realtà, sarebbe meglio evitare di usare la libreria mysql, perché è deprecata. Ti consiglio di usare PDO, oppure PEAR_MDB2 (non l'ho mai usata, ma so che è molto buona).
 

zanzu

Nuovo Utente
20 Apr 2011
5
0
0
Abbiate pazienza. Sto cercando di capire il ragionamento. La variabile "$risultato" dovrebbe contenere l'esito della prima query, cioè l'elenco degli ID?
Questo è il codice che sto usando:
PHP:
// query
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);
}
Il dato poi ce l'ho in
PHP:
<?php echo $row_Rs_ricerca['IDcoop']; ?>
che posso far vedere interamente tramite
PHP:
<?php do { ?>
<?php echo $row_Rs_ricerca['IDcoop']; ?><br />
<?php } while ($row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca)); ?>
Quindi nello specifico del mio caso la variabile $risultato come la definisco?
Scusate l'ignoranza.
 

zanzu

Nuovo Utente
20 Apr 2011
5
0
0
Mi da errore "Parse error: syntax error, unexpected" alla riga
PHP:
while ($riga = mysql_fetch_array($row_Rs_ricerca){
Codice completo con la query
PHP:
while ($riga = mysql_fetch_array($row_Rs_ricerca){
    // Qui fai le tue query select con l'id che sarà in --> $row_Rs_ricerca['IDcoop'];
	
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = $row_Rs_ricerca['IDcoop']";
$RsCoop = mysql_query($query_RsCoop, $ConnCoop) or die(mysql_error());
$row_RsCoop = mysql_fetch_assoc($RsCoop);
$totalRows_RsCoop = mysql_num_rows($RsCoop);
}  
else echo $error;
 

micio86

Utente Attivo
Togli questo else echo $error;

Non esiste un costrutto while else...
Se mai devi fare un if (numero_righe) {while...} else {errore}

Quindi:
PHP:
if($totalRows_Rs_ricerca) {
while ($riga = mysql_fetch_array($row_Rs_ricerca){
   mysql_select_db($database_ConnCoop, $ConnCoop);
   $query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = '".$row_Rs_ricerca['IDcoop']."'";
   $RsCoop = mysql_query($query_RsCoop, $ConnCoop) or die(mysql_error());
   $row_RsCoop = mysql_fetch_assoc($RsCoop);
   $totalRows_RsCoop = mysql_num_rows($RsCoop);
}
}
else echo $error;
 
Ultima modifica:

zanzu

Nuovo Utente
20 Apr 2011
5
0
0
Ho capito il motivo dell'errore di prima, tuttavia ci deve essere qualcos'altro che non va perchè continua a darmi errore alla stessa riga
PHP:
"Parse error: syntax error, unexpected '{' in D:\XAMPP\htdocs\coop_venete\risultati2.php on line 37"
Ti metto il codice di entrambe le query
PHP:
....
if (!$error) {
$servizio=$select_utente;

// prima query
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);
}
else echo $error;  

// seconda
if($totalRows_Rs_ricerca) {
while ($riga = mysql_fetch_array($row_Rs_ricerca){
   mysql_select_db($database_ConnCoop, $ConnCoop);
   $query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = '".$row_Rs_ricerca['IDcoop']."'";
   $RsCoop = mysql_query($query_RsCoop, $ConnCoop) or die(mysql_error());
   $row_RsCoop = mysql_fetch_assoc($RsCoop);
   $totalRows_RsCoop = mysql_num_rows($RsCoop);
}
}
else echo $error;
Grazie
 

micio86

Utente Attivo
Questo si contraddice!!!
PHP:
if (!$error) {
$servizio=$select_utente;

// prima query
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);
}
else echo $error;

Fallo così :
PHP:
$servizio=$select_utente;

// prima query
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);

Credo ke la prima query la devi fare sempre no!??! Quindi niente condizioni!
Poi l'errore indica chiaramente che hai una graffa non chiusa o un punto e virgola mancante!
 

zanzu

Nuovo Utente
20 Apr 2011
5
0
0
Ho controllato bene il codice (per quello che riesco a capire) e ho fatto delle prove, cioè ho testato la pagina senza la seconda query ed è tutto a posto; poi mi da l'errore di sintassi già visto ieri a questa riga:
PHP:
while ($riga = mysql_fetch_array($row_Rs_ricerca){
Scrivo il codice completo
PHP:
<?php require_once('Connections/ConnCoop.php'); ?>

<?php

//questo è un controllo di sicurezza anti sql injction:
$array_voci=array('TRASCRIZIONE','SEGRETERIA','VERDE_MANUTENZIONE','PULIZIE');//qui aggiungerò tutte le altre voci del select option

if (isset($_GET['servizi']) AND !empty($_GET['servizi'])) $select_utente = $_GET['servizi'];
else $error="Errore: campo obbligatorio, devi scegliere una delle voci.";

$servizio=$select_utente;

// prima query
mysql_select_db($database_ConnCoop, $ConnCoop);
$query_Rs_ricerca = "SELECT ".$servizio.", IDcoop FROM settori WHERE ".$servizio." = '1'";
$Rs_ricerca = mysql_query($query_Rs_ricerca, $ConnCoop) or die(mysql_error());
$row_Rs_ricerca = mysql_fetch_assoc($Rs_ricerca);
$totalRows_Rs_ricerca = mysql_num_rows($Rs_ricerca);  

// seconda query
if($totalRows_Rs_ricerca) {
while ($riga = mysql_fetch_array($row_Rs_ricerca){
   mysql_select_db($database_ConnCoop, $ConnCoop);
   $query_RsCoop = sprintf("SELECT * FROM coop WHERE IDcoop = '".$row_Rs_ricerca['IDcoop']."'";
   $RsCoop = mysql_query($query_RsCoop, $ConnCoop) or die(mysql_error());
   $row_RsCoop = mysql_fetch_assoc($RsCoop);
   $totalRows_RsCoop = mysql_num_rows($RsCoop);
}
}
else echo $error;  
?>
L'errore subentra con la seconda query e non riesco a capire quale sia
 
Discussioni simili
Autore Titolo Forum Risposte Data
T PHP: variabile che cambia ogni 5 giorni... PHP 3
M variabile php che prende il nome della cartella in cui è contenuta PHP 5
R [PHP] Definire variabile globale, ma che abbia come nome il valore di una variabile PHP 2
E Inviare variabile a PHP da ciclo in JS Javascript 0
A inserire variabile php colore in div html PHP 2
C [RISOLTO]Inserimento variabile php in input html PHP 20
F Passare una variabile php dal DB mysql alla pagina PHP 3
M [PHP] Passare variabile di sessione con metodo GET PHP 10
S [PHP] Rendere visibile variabile di un costrutto if in un altro costrutto if PHP 1
Tommy03 Variabile PHP per impostare una proprietà CSS PHP 2
L [PHP] Passare variabile PHP 3
J Passaggio variabile tra 2 file php PHP 15
Tommy03 Variabile PHP dentro a JQuery PHP 3
A [PHP] Scopo di una variabile PHP 4
M [PHP] Salvare campo di una tabella in una variabile PHP 14
B [PHP] Valore variabile non riconosciuto PHP 1
AMONRA75 [PHP] passare una variabile in una finestra MODAL PHP 1
P [PHP] $_GET non preleva variabile nell’URL PHP 4
A Php variabile immagine inesistente PHP 4
Shyson [PHP] Personalizzare variabile PHP 0
Monital Funzione php e campo database come variabile PHP 6
V [PHP] Variabile modificata in un if non mantiene quel valore PHP 5
K [PHP] Paginazione Wordpress: passare variabile PHP 6
A [PHP] Passaare una variabile ad un PHP 2
A [PHP] Non prende variabile $provincia ma tutte le altre si PHP 6
P [PHP] Query con variabile PHP 2
napuleone scrivere in un file <?php $variabile PHP 1
A [PHP] Widget Meteo con località variabile PHP 0
paloppa [PHP] Dubbio print variabile PHP 27
paloppa [PHP] Dubbio valore variabile PHP 16
B Scrivere in una casella di testo una variabile PHP PHP 9
T [PHP] passare una variabile in una finestra MODAL di bootstrap PHP 3
M [PHP] Mantenere variabile con datagrid nella pagina 2 PHP 1
L [PHP] Problema creazione query a numero di parametri variabile PHP 6
P Colore testo variabile PHP PHP 5
Occhioverde [PHP] Incrementare variabile al click di un pulsante PHP 5
elpirata [PHP] Stampare i valori di una variabile scritta su più righe PHP 1
T [php]Variabile in textbox via post PHP 9
bubino8 [PHP] Variabile da multipla Checkbox PHP 2
giancadeejay [PHP] Variabile volubile PHP 4
M [PHP] Includere solo il risultato di una variabile PHP 2
G [Javascript] jQuery PHP MySql - inserire variabile nel DataBase Javascript 8
Metazoo Recuperare variabile php da javascript senza aggiornare pagina PHP 5
L variabile php per html PHP 2
gandalf1959 [PHP] variabile di sessione si azzera ricaricando la pagina? PHP 3
gandalf1959 [PHP] Con GET perdo un pezzo di variabile PHP 7
S [PHP] Aiuto! Non riesco a richiamare una variabile PHP 2
U [PHP] Parse error: syntax error, unexpected variabile (T_VARIABLE) PHP 8
M [PHP] Errore nell' assegnazione della variabile $this->id su una funzione PHP 1
cosmin Utilizzare una variabile php in CREATE TABLE mysql. PHP 2

Discussioni simili