Doppia ricerca

  • Creatore Discussione Creatore Discussione gracito
  • Data di inizio Data di inizio

gracito

Utente Attivo
30 Mag 2010
109
0
0
Ciao a tutti
ho una tabella così composta:
Id | 12 | 17 | 41 | 140 ........... 50 colonne di questo tipo dove l'intestazione della colonna è un numero.

1 | 10 | 120 | 30 | 28
2 | 15 | 160 | 60 | 138
3 | 20 | 140 | A50 | 58

Ho due form in uno inserisco l'Id e nell' altro il valore di una delle 50 colonne.

es. 1° Form Id = 3 | 2° Form 41 .

Dovrei visualizzare il risultato A50, hp provato così.

PHP:
<?php  

$Id = $_REQUEST["Id"]; // recupero dato dal form Id 
$Prova = $_REQUEST["Prova"]; // recupero dato dal form Prova 

 ?>  
  <table width="870" border= "1" align="center">  
    <br>  
    <tr>  
        
      <td><div align="center"><font color="#000066"><b>ID </b></font></div></td>  
      <td><div align="center"><font color="#000066"><b>PROVA </b></font></div></td>  
         
    </tr>  
    <?php  
$db = mysql_connect("localhost","root","");  
mysql_select_db("test", $db);  
$result =mysql_query("SELECT ????????? FROM salti Where ID='$Id'" );  

 while($myrow=mysql_fetch_array($result))  

echo  "<tr>  

<td>$myrow[Id]</td>  
<td>$myrow[??????]</td> // come richiamo il valore della $Prova  

</tr>";  
?>

Spero essere stato chiaro.

Grazie
 
ciao
intanto una cosa:
essendo l'id (come spero che sia) unico non ti serve dare il while in quanto mysql_fetch_array ti estrae solo un record
in quanto hai fatto la select con WHERE id='$id'
a questo punto tu hai un array chiamato $myrow ($myrow['id'], $myrow['12'], $myrow['17']...$myrow['140']
e devi cercare al suo interno il valore A50
per prima cosa dopo il mysql_fetch_array eliminerei $myrow['id'] (salvandolo in una variabili di comodo

PHP:
<?php
//....
$result =mysql_query("SELECT * FROM salti Where ID='$Id'" );
//......
$comodo=$myrow['id'];//può servire
unset($myrow['id']);
$chiave = array_search($Prova, $myrow);
if($chiave){
	echo "il valore $Prova si trova all id=$comodo campo=$chiave<br>";
}else{
	echo "il valore $Prova non si trova all id=$comodo campo=$chiave<br>";
}
//a questo punto se vuoi estrarre tutti i valori del record
if($chiave){
	$query="SELECT * FROM salti WHERE id=$comodo AND $chiave='$Prova'";
	//ecc.....
}
?>
prova, malche vada non funzia
 
Ciao e grazie.

Io non conosco i valori dell'array. Conosco solo l'ID e la colonna

Ho due form uno per la ricerca dell'id e l'altro per la ricerca della colonna e devo visualizzare il valore dell'array corrispondente.
Es nel form Id inserisco 3 nel form prova 41 e lui dovrebbe ridarmi il valore corrispondente A50.

Grazie
 
ciao
forse non ho capito ma
...uno inserisco l'Id e nell' altro il valore di una delle 50 colonne...
tu hai un input in cui scrivi l'id e uno in cui scrivi il valore da cercare (quel $Prova = $_REQUEST["Prova"]; )?
almeno io avevo capito in questa maniera, se è così qiuello che ti ho postato
1: prima trova il record con quell'id
2: estrae tutto il record mettendolo nell'array $myrow
3: cerca nell'array se c'è il valore
4: se c'è ti restituisce il nome del campo (array_search) che corrisponde alla chiave dell'array, altrimenti FALSE
 
Ultima modifica:
Ciao

Funziona ma non fa esattamente quello che volevo, non sono abbastanza chiaro illustrandolo.
Mi spiego, funziona quando inserendo Id = 3 nel form Id e nel form Prova (quel $Prova = $_REQUEST["Prova"]) inserisco il valore A50 e mi restituisce
"il valore A50 si trova all Id=3 campo=3"

Id | mia | tua | sua | nostra

1 | 10 | 120 | 30 | 28
2 | 15 | 160 | 60 | 138
3 | 20 | BB | A50 | 58

Io voglio che inserendo nel form Id= 3 e nel form prova = sua mi dia il risultato A50.

PHP:
<?php
$db = mysql_connect("localhost","root","");
mysql_select_db("test", $db);
$result =mysql_query("SELECT * FROM salti Where ID='$Id'" );

 $myrow=mysql_fetch_array($result);
 
$comodo=$myrow['Id'];
unset($myrow['Id']); 
$chiave = array_search($Prova, $myrow);

if($chiave){ 
    echo "il valore $Prova si trova all Id=$comodo campo=$chiave<br>"; 
}else{ 
    echo "il valore $Prova non si trova all Id=$comodo campo=$chiave<br>"; 
} 
 
?>

Grazie
 
ciao
allora non stai cercando il valore che può essere contenuto in un campo, ma dato l'idi e il nome del campo quello che c'è dentro
PHP:
<?php
$Id = $_REQUEST["Id"]; // recupero dato dal form Id  
$Prova = $_REQUEST["Prova"]; // recupero dato dal form Prova  
$result =mysql_query("SELECT * FROM salti Where ID='$Id'" );
echo $result[$Prova];
?>
 

Discussioni simili