Controllo sulla presenza di dati presenti su altra tabella

  • Creatore Discussione Creatore Discussione pup3770
  • Data di inizio Data di inizio

pup3770

Utente Attivo
30 Mag 2012
122
0
16
Ciao Ragazzi,
premetto che sono nuovo nel forum e diciamo nuovo nel campo php.
Come da oggetto ho bisogno la seguente.
Ho un database che include delle tabelle

dipendenti(id_dipendente, nome, cognome, sesso)
ordini(id_ordine, id_dipendente, tipo_articoli, quantità)

Ho creato uno script php per l'inserimento di un nuovo dipendente e uno script per l'inserimento di un nuovo ordine.

Il problema è che l'id_dipendente lo devo inserire l'utente che esegue lo script inserimento_ordine, ma se l'utente inserisce un id_dipendente diverso da quello che è presente nella tabella dipendenti, mi compromette l'eventuale estrazione futura.

Quindi andando al nocciolo, vorrei effettuare un controllo sull'id_dipendente andando a verificare che l'id_dipendente inserito nel form dello script inserimento_ordine, è uguale a id_dipendente della tabella dipendenti.

Il modo per vedere qual'è l'id_dipendente inserito nel form dell'inserimento_ordine lo prelevo con:
Codice:
$dipendente = ($_POST['id_dipendente']);

ma per verificare che
Codice:
$dipendente
sia uguale ad uno id_dipendente della tabella dipendenti come dovrei fare?
 
PHP:
//esegui una query simile
$qu = mysql_query("SELECT * FROM dipendenti WHERE id_dipendente=".(int)$dipendente);

//conta i risultati
if(mysql_num_rows($qu) == 1) echo "l'id è stato trovato"; else echo "id non trovato";
 
Grazie per la tempestiva risposta.
Ho inserito il codice da te suggerito e realmente mi trova la corrispondenza.

Ma se io volessi confrontare quello che c'è in
Codice:
$dipendente
con tutti i valori presenti nella chiave
Codice:
id_dipendente
della tabella
Codice:
dipendenti
come devo fare?
 
fortunatamente ho risolto.

Come ho risolto: seguendo il consiglio di

PHP:
        $dipendente = ($_POST['id_dipendente']);

	$qu = mysql_query("SELECT * FROM dipendenti WHERE id_dipendente=".(int)$dipendente);
		
		
		if(mysql_num_rows($qu) == 1) echo "l'id è stato trovato ";
		else echo "id non trovato";
		
	if(mysql_num_rows($qu) == 1)
	
	$query = "INSERT INTO ordini (id_ordine, id_dipendente, tipo_articoli, quantita) VALUES ('{$_POST['id_ordine']}','{$_POST['id_dipendente']}','{$_POST['tipo_articoli']}','{$_POST['quantita']}')";

Quindi cos'ho fatto, partendo dalla base:
ho creato il form per l'inserimento del id_dipendente:
PHP:
<b>id_dipendente:</b><br> <INPUT TYPE="text" NAME="id_dipendente" value="Inserisci un termine" onfocus="if(this.value==this.defaultValue)this.value=''"><br>
ho immesso nella variabile
PHP:
$dipendente
tramite il metodo
PHP:
$_POST
il contenuto digitato dall'utente che effettua l'ordine.
Ho selezionato dalla tabella
Codice:
dipendenti
le tuple che avessero il valore di
Codice:
id_dipendente
uguale a quello recuperato dal form ed inserito in
PHP:
$dipendente
gli faccio ottenere il numero di righe mediante
PHP:
mysql_num_rows
.
Se ne esiste 1 vuol dire che l'utente esiste e mi stampa
Codice:
l'id è stato trovato
e nel secondo
Codice:
if
(riportato solo per migliorare la comprensione visto che fa lo stesso controllo del precedente) ho inserito la query che mi permetterà di inserire nel database, nella tabella ordini tutti i valori inseriti tramite form.

Forse sono stato troppo lungo e poco comprensibile ma spero che a chi non è molto esperto come me possa tornare molto utile.
 

Ciao, va bene il codice che controlla l'id_dipendente, ma perchè fai inserire l'id e non il nome dello stesso.
Ciao da minatore
 
ciao, intanto grazie mille per la risposta e per il consiglio. Guarda attualmente mi va bene così visto che è per un progettino di data warehousing per l'università. Preferisco spicciarmi presto con il progetto per ripassare l'orale
 

Discussioni simili