Newsgroup: it.comp.www.php
Titolo: aiuto da niubbo 2

Grazie ai vostri suggerimenti (e a tanta lettura, grazie a google) ho
risolto una parte del mio problema. Chi non lo rammenta puï¿œ scovarlo
poco sopra (aiuto da niubbo)
In pratica sono riuscito a far comparire il valore di riferimento sulla
pagina dove vengono riportati i dati del database; a questo punto mi
rimane soltanto uno scoglio da superare e non riesco a venirne a capo..
In pratica vorrei che venissero eseguite due istruzioni if
contemporaneamente.. Mi era stato consigliato di usare l'opzione "switch
case", ma da cio' che ho capito, era piï¿œ un'alternativa che una
necessitï¿œ e francamente non sono riuscito a metterla in pratica...
Rispiego la mia necessitï¿œ: Ho un database sql su cui vengono memorizzati
dei dati presi da un software radioamatoriale e il valore di riferimento
ï¿œ la frequenza radio. Vorrei che alla pressione di un link, vengano
visualizzati i records di particolari frequenze.. esempio un risultato
che mi faccia vedere records di frequenze da 7000 a 8000 e da 14000 a
15000, tralasciando tutto il resto. Ho provato ad inserire una & sul
metalink (si chiama cosi' ?) ma senza successo. Per maggiore chiarezza
riporto il contenuto degli script
Datemi anche solo un indizio, poi il tempo e il modo di arrivarci sarï¿œ
compito mio :-)
Grazie a tutti.
clustermenu.php
<center>
<table width="650" border="1" align="center" cellpadding="0"
cellspacing="0">
  <tr>
    <td><center><A href="clusterselect.php?band=LF">Lower &lt; </a></td>
    <td><center><A href="clusterselect.php?band=HFcw">All HFcw</a> </td>
    <td><center><A href="clusterselect.php?band=160m">1.8MHz</a></td>
    <td><center><A href="clusterselect.php?band=80m">3.5MHz</a></td>
    <td><center><A href="clusterselect.php?band=40m">7MHz</a></td>
    <td><center><A href="clusterselect.php?band=30m">10MHz</a></td>
    <td><center><a href="clusterselect.php?band=20m">14MHz</a></td>
    <td><center><A href="clusterselect.php?band=17m">18MHz</a></td>
    <td><center><A href="clusterselect.php?band=15m">21MHz</a></td>
    <td><center><A href="clusterselect.php?band=12m">24Mhz</a></td>
    <td><center><A href="clusterselect.php?band=10m">28Mhz</a></td>
  </tr>
   </td>
  </tr>
</table>
<table width="500" border="1" align="center" cellpadding="0"
cellspacing="0">
  <tr>
<tr>
 <td width="200"><center><A href="clustersearch.php">Search the
Cluster</a> </td>
 <td width="200"><center><A href="clusterall.php">View last 1000 Spots
(all bands)</a> </td>
</tr>
</table>
clusterselect.php
<head>
<TITLE>9H1LO-1 DX Cluster Web Interface - Powered by 9H1LO DX
Engine</Title>
<meta http-equiv="refresh" content="60">
</head>
<center>
<?include'clustermenu.php'?>
<p>&nbsp;</p>
Last 50 Spots for <? echo $_GET['band'];?>
<table width="80%" border="2" align="center" cellpadding="2"
cellspacing="1" bordercolor="#0066FF">
<tr>
<td width="50"><center><b>DX Call </b></td>
<td width="50"><center><b>Frequency</b></td>
<td width="50"><center><strong>Date/Time (UTC)</strong></td>
<td width="50"><center><b>Spotter</b></td>
<td width="50"><center><b>Comments</b></td>
</tr>
<?
include 'clusterdb.inc.php';
if ( $_GET['band'] == "HFcw" ) {
	$que = "between '1500' and '30000'";
}
if ( $_GET['band'] == "160m" ) {
        $que = "between '1800' and '2000'";
}
if ( $_GET['band'] == "80m" ) {
        $que = "between '3500' and '4000'";
}
if ( $_GET['band'] == "40m" ) {
        $que = "between '7000' and '8000'";
}
if ( $_GET['band'] == "30m" ) {
        $que = "between '10000' and '11000'";
}
if ( $_GET['band'] == "20m" ) {
        $que = "between '14000' and '15000'";
}
if ( $_GET['band'] == "17m" ) {
        $que = "between '18000' and '19000'";
}
if ( $_GET['band'] == "15m" ) {
        $que = "between '21000' and '22000'";
}
if ( $_GET['band'] == "12m" ) {
        $que = "between '24000' and '25000'";
}
if ( $_GET['band'] == "10m" ) {
        $que = "between '28000' and '30000'";
}
[...cut...]

 � la frequenza radio.
La frequenza di riferimento immagino sia il contenuto di un campo  di un 
record del database, e che ogni record/campo contenga una frequanza. (o no?)
Quante frequenze diverse ci sono?
Perch� se sono mettiamo 3 va bene fare i link con la if, ma se la quantit� � 
alta, diciamo maggiore di 10 � meglio fare leggere le frequenze disponibili 
al codice e creare un men� sulla pagina con il link.
Meglio ancora fare inserire un numero (delle afrequanza).
Io userei un modulo con un campo frequanza in cui l'utente inserisce il 
numero.
Al click sul pulsante invia richiamare una pagina che con una query legge il 
contenuto del database e ti da i risultati.
Non c'� bisono di if, la selezione te la fa sql sul database.
Se invece vuoi le frequenze di un certo range, mettiamo fra 7000 e 8000, nel 
codice SQL della query utilizzi between, qualcosa del tipo Between 
FrequenzaInizio And FrequenzaFine sul campo delle frequenze ed otterrai il 
risutato.
Saluti
Leonardo

 
Ciao Leonardo e grazie per aver risposto... Benissimo.. ï¿œ quello che ho
fatto.. o meglio.. e' quello che giï¿œ c'era sullo script che ho scaricato
dal sito 
http://www.9h1lo.net/dxmysql.php
, solo che gli script originali
avevano delle imperfezioni che ho corretto in parte... Ora perï¿œ vorrei
completarlo e adattarlo alle mie esigenze...
Cercherï¿œ di essere il piï¿œ chiaro possibile;
Vorrei una query che mi restituisse come risultato due (o anche piï¿œ)
range di frequenza e non uno come avviene adesso.. Cioï¿œ.. io adesso
punto sull'istruzione
}
if ( $_GET['band'] == "20m" ) {
        $que = "between '14000' and '15000'";
}
e ho come risultato i records che hanno un range di frequenza da 14000 a
15000.. Vorrei adesso una funzione che mi restituisse due (o anche piï¿œ)
range di frequenza come di seguito:
}
if ( $_GET['band'] == "20m" ) {
        $que = "between '14000' and '15000'";
}
e
}
if ( $_GET['band'] == "40m" ) {
        $que = "between '7000' and '8000'";
}
C'ï¿œ un modo per poter fare questo ?
Saluti, Davide.


Si, devi fare 2 between sullo stesso campo con un legame or fra di loro
oppure fai 2 query e fai due letture diverse per poi fare vedere i risultati 
nella pagina nel modo che ti va pi� bene.
Cosa utilizzi per scrivere le query? Conosci SQL? (inteso come codice per 
scrivere le query)
Saluti
Leonardo

 Leonardo
Solo l'editor di testo (vim) e google che da dieci giorni a questa parte
sono diventato il primo fan :-) ..Ma come anche anticipato dal titolo
del thread.. sono proprio niubbo in materia, se non di piï¿œ...
Documentandomi ho trovato un indizio che mi faceva pensare ad usare in
alternativa il comando union, ma nemmeno questo riesco a metterlo nel
modo giusto, nonostante abbia ricopiato esempi che ho trovato in rete.
Davide.


Ricapitolando:
secondo me dovresti fare il tutto con 2 pagina php (si potrebbe fare anche 
con 1 ma si complica leggermante)
Pagina1: ci metti un modulo con 2 campi testo per ciascuna frequenza che voi 
leggere nel database.
<form name="form1" method="post" action="Pagina2.php">
  <p>
    F1inizio
    <input name="F1inizio" type="text" id="F1inizio">
    F1fine
    <input name="F1Fine" type="text" id="F1Fine">
</p>
  <p>F2inizio
    <input name="F2inizio" type="text" id="F2inizio">
    F2fine
    <input name="F1Fine" type="text" id="F1Fine">
</p>
  <p>
    <input type="submit" name="Submit" value="Invia">
</p>
</form>
Questa chiama Pagina2.php
che dovrebbe essere contenere qualcosa del genere:
<?php
// letture dei dati dalla pagina precedente
$F1inizio = $_POST["F1inizio"];
$F1Fine = $_POST["F1Fine"];
$F2inizio = $_POST["F2inizio"];
$F2Fine = $_POST["F2Fine"];
// preparazione query DI SELEZIONE per otttenere tutti i dati della tabella 
del database
// con between devi scrivere qualcosa del genere nella query al campo 
frequenza
// Between $F1inizio And $F1Fine
$query = "SELECT NomeTabella.CampoFreq FROM NomeTabella WHERE 
(((NomeTabella.CampoFreq) Between $F1inizio And $F1Fine));";
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
// scorre tutti i risultati
while ($row = mysql_fetch_array($result))
{
echo "<br>";
echo $row['CampoFreq'];
}
?>
Questo � un ottimo sito per in iniziare
http://www.w3schools.com/PHP/php_mysql_intro.asp
http://www.w3schools.com/php/default.asp
Se conosci MAAccess le query puoi fartele scrivere da lui e poi apportare le 
piccole modifiche necessarie a renderle utilizzabili in MySQL
Se vuoi ti mando un piccolo promemoria su MySQL che mi scrissi tempo fa.
saluti
Leonardo

 Leonardo
Ti ringrazio per i link.. Per quanto riguarda gli appunti, se vuoi puoi
mandarmeli a 
ik6xmi_toglimi_chiocciola_tiscalinet.it
.
Grazie per l'aiuto.
Davide


Non sono nulla di segreto, anzi......
Queste sono istruzioni basilari di MySQL
<?php ////////////////////////////////////// connessione al server
$connection = mysql_connect("localhost","root","") or die ("Couldn't connect 
to server");
// conessione al database - produce
$db = mysql_select_db("produce", $connection) or die ("Couldn't select 
database");
?>
<?php ////////////////////////////////////// 
visualizzare-una-tabella-di-dati
// preparazione query DI SELEZIONE per otttenere tutti i dati della tabella 
del database
$query = "SELECT * FROM fruit";
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
// scorre tutta la query leggendo i dati
while ($row = mysql_fetch_array($result))
{echo "<br>";echo $row['name'], " - " , $row['number'];}
?>
<?php ///////////////////////////////////////////// aggiornare-i-dati
// preparazione query per aggiornare il valore sulla riga (campo del record) 
pears dellataballa fruit con il valore 234
$query = "UPDATE fruit SET number = 234 WHERE name = 'pears'";//// pears pu� 
essere l'ID oppure tutti i campi che contengono pears
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
?>
<?php //////////////////////////////////////////// inserire-nuovi-dati
// preparazione query per inserire il nuovo record 'apricots' con il valore 
234
$query = "INSERT INTO fruit (name, number) VALUES('apricots', '203')";
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
?>
<?php //////////////////////////////////////////////// eliminare-i-dati
// preparazione query per eliminare il record il cui campo name contiene 
'apricots'
$query = "DELETE FROM fruit WHERE name = 'apricots'";
// esegue la query
$result = mysql_query($query) or die ("Quesry failed; " .mysql_error());
?>
Saluti
Leonardo

 Queste sono istruzioni basilari di MySQL
Azz... chiedo scusa.. :-)
Grazie per gli appunti.. Cercherï¿œ di farne tesoro :-)