Query da valore tramite form

ciprovo

Nuovo Utente
16 Ott 2012
6
0
0
Buongiorno a tutti,
sono nuovo di questo forum, mi sono iscritto proprio perche leggendo i vostri post vedo molta volonta e precisione nell'aiutare le persone, e ahimé, sono a chiedervi anche io un po di questi due valori, fondamentalmente per una cosa che credo molto semplice...

un semplice script che mi dice quante donne lavorano da me ... io lo vorrei modificare in maniera che il valore venga preso da un form piuttosto che fisso ...
copio lo script qui e poi sotto mi spiego meglio ...

PHP:
<?
/* connessione a db */
$DBhost = "XXXXXXX"; $DBuser = "XXXXXXXXXXX"; $DBpass ="ZZZZZZZZZZZ"; $DBName = "XXXX";
$table = "users";
/* Connetto al db */
mysql_connect($DBhost,$DBuser,$DBpass) or die("Impossibile collegarsi al server"); @mysql_select_db("$DBName") or die("Impossibile connettersi al database $DBName");

/* query, solo le donne...*/
$sqlquery = "SELECT * FROM $table WHERE sex = 'donna'"; $result = mysql_query($sqlquery); $number = mysql_numrows($result);

$i = 0;

if ($number < 1) {
print "<center><p>La ricerca non ha prodotto nessun risultato</p></center>"; }
else {
while ($number > $i) {
$thename = mysql_result($result,$i,"nome"); $theemail = mysql_result($result,$i,"email"); print "<p><b>Nome:</b> $thename<br><b>E-Mail:</b> $theemail</p>"; $i++; }
}
?>

ora, questo script interroga il db e mi dice il nome ed email di tutti gli utenti donna ... io invece vorrei poter "ampliare" questa funzione, in maniera ad esempio, che tramite un form io possa scegliere il valore da fargli cercare nel db e di conseguenza aver risultati diversi...
se nel form scrivo "uomo" ad esempio, vorrei che mi desse gli utenti maschi.

é un impresa per chi come me sa poco di php o tramite un piccolo aiuto vostro ci posso riuscire ?

Ringrazio in anticipo.
 
Ultima modifica di un moderatore:

alessandro1997

Utente Attivo
6 Ott 2009
5.302
1
0
26
Roma
alessandro1997.netsons.org
Puoi fare tutto in un'unica pagina così:
PHP:
<?php
if (isset($_POST['sex']) && in_array($_POST['sex'], array('uomo', 'donna'))) {
    mysql_connect('localhost', 'root') or die('Impossibile collegarsi al server.');
    mysql_select_db('test') or die('Impossibile connettersi al database.');

    $sql = 'SELECT * FROM users WHERE sex = \'%s\'';
    $sql = sprintf($sql, mysql_real_escape_string($_POST['sex']));

    $result = mysql_query($sql);

    if (mysql_num_rows($query) > 0) {
        while ($row = mysql_fetch_assoc($query)) {
            echo "<p><b>Nome:</b> {$row['nome']}</p>";
            echo "<p><b>E-mail: {$row['email']}</b></p>";
        }
    } else {
        echo '<p style="text-align: center">La ricerca non ha prodotto nessun risultaot.</p>';
    }
} else {
    echo <<<EOF
<!DOCTYPE html>
<html>
    <head>
        <title>Ricerca</title>
        <meta charset="utf-8" />
    </head>

    <body>
        <h1>Ricerca</h1>

        <form action="{$_SERVER['REQUEST_URI']}" method="post">
            <div>
                <label for="sex">Sesso:</label>

                <select id="sex" name="sex">
                    <option value="uomo">Uomo</option>
                    <option value="donna">Donna</option>
                </select>
            </div>

            <div>
                <button type="submit">Cerca</button>
            </div>
        </form>
    </body>
</html>
EOF;
?>
 

ciprovo

Nuovo Utente
16 Ott 2012
6
0
0
Puoi fare tutto in un'unica pagina così:
PHP:
<?php
if (isset($_POST['sex']) && in_array($_POST['sex'], array('uomo', 'donna'))) {
    mysql_connect('localhost', 'root') or die('Impossibile collegarsi al server.');
    mysql_select_db('test') or die('Impossibile connettersi al database.');

    $sql = 'SELECT * FROM users WHERE sex = \'%s\'';
    $sql = sprintf($sql, mysql_real_escape_string($_POST['sex']));

    $result = mysql_query($sql);

    if (mysql_num_rows($query) > 0) {
        while ($row = mysql_fetch_assoc($query)) {
            echo "<p><b>Nome:</b> {$row['nome']}</p>";
            echo "<p><b>E-mail: {$row['email']}</b></p>";
        }
    } else {
        echo '<p style="text-align: center">La ricerca non ha prodotto nessun risultaot.</p>';
    }
} else {
    echo <<<EOF
<!DOCTYPE html>
<html>
    <head>
        <title>Ricerca</title>
        <meta charset="utf-8" />
    </head>

    <body>
        <h1>Ricerca</h1>

        <form action="{$_SERVER['REQUEST_URI']}" method="post">
            <div>
                <label for="sex">Sesso:</label>

                <select id="sex" name="sex">
                    <option value="uomo">Uomo</option>
                    <option value="donna">Donna</option>
                </select>
            </div>

            <div>
                <button type="submit">Cerca</button>
            </div>
        </form>
    </body>
</html>
EOF;
?>

come al solito mi spiego molto male...

ti ho mandato un mex in pvt che spiega bene la problematica mia, per aiutare anche gli altri mi spiego brevemente....

io vorrei poter cercare all'interno dei prodotti che io vendo, un seriale, e, se esiste (quindi non va bene il menu a tendina perche a quel punto lo cercherei tra 3mila risultati) mi mostra le proprieta di quell'ogetto... inoltre non deve dar modo a chi cerca di conoscere gli altri seriali, se quello che inserisco c'è mi dice il resto, altrimenti "seriale non trovato".

ho mandato un mex privato spiegando molto meglio, se é cosi gentile e preciso da risolvermi il problema posterò anche di qui la soluzione.

ancora mille grazie
 

ciprovo

Nuovo Utente
16 Ott 2012
6
0
0
ecco il mex che ho mandato ad alessandro
Ciao Alessandro,

faccio seguito al post che ho lasciato qui a cui tu hai gentilissimente risposto...
http://forum.mrwebmaster.it/php/3187...mite-form.html

Come al solito mi spiego molto male, pensando fosse semplice ho tralasciato cose importantissime...

l'idea che tu mi hai fatto potrebbe andar bene, se non per il fatto che lo script lo avrei poi modificato a piacimento mio, e al posto di ricercare tra due valori (uomo, donna), dovrebbe poter far la ricerca tra valori multipli, come ad esempio seriale di prodotti che io vendo. Immagina, potrebbero essere centinaia e centinaia, quindi il sistema con menu a tendina non va bene.
inoltre ti dirò di piu, il sistema non dovrebbe dar modo a chi cerca di poter vedere tutti i valori contenuti, se quello che scrivo all'interno del form c'è nel db allora mi da gli estremi altrimenti no ...

faccio un esempio ...
se nel form scrivo un numero seriale che nel db esiste, mi uscirà marca e modello dell'hardware, se il seriale é inesistente uno stamp mi dirà "nessun prodotto trovato", altrimenti se il seriale esiste mi dirà tutti gli altri dati del prodotto.

il db contiene solo 4 colonne..
-id
-nomeprodotto
-seriale prodotto
-link
la colonna link ha come contenuto un link vero e proprio che se cliccato fa partire un download del softwarte relativo a quel prodotto

pensi di potermi aiutare?
ti ringrazio ancora infinitamente
 

ciprovo

Nuovo Utente
16 Ott 2012
6
0
0
nel senso che mi mostrava i dati dell'intero db ... sto risolvendo cercando in giro e sembra funzionare... poi appena ho la certezza che funzioni lo posto qui ... :)

ho risolto cosi, il codice che mi aveva postato alessandro mi mostrava l'intero db e non essendo un professore del php non l'ho potuto modificare...

questo funziona bene :
PHP:
<?php

// connettiamoci il nostro database

$db_host = "XXXXX";
$db_user = "XXXXX";
$db_password = "XXXXX";
$db_name = "XXXXX";

//connetto il database

$db = mysql_connect($db_host, $db_user, $db_password) or die ('Errore durante la connessione');
mysql_select_db($db_name, $db) or die ('Errore durante la selezione del db');

// recuperiamo il valore ricerca inviato con get

$ricerca = $_GET['ricerca'];

// vediamo se è stato inviato, e quindi uguale a ok

if ( $ricerca == 'ok' ) {

// recuperiamo ora cerca inviato con post

$cerca = $_POST['cerca'];

// vediamo se è stato compilato il campo

if ( $cerca == TRUE && $cerca != "" ) {

// ora vediamo se supera i tre caratteri

if ( strlen($cerca) >= 3 ) {

// ora depuriamo la stringa da cercare sul database

$cerca =  mysql_escape_string(stripslashes($cerca));

// ora possiamo effettuare la nostra ricerca sul db, state attenti alla sintassi

$query = "SELECT * FROM users WHERE seriale LIKE '%$cerca%'";

$risultato = mysql_query($query) or die (mysql_error());

$risposta = mysql_query($query) or die ("Utilizza termini più specifici!");

$dentro_la_query= mysql_fetch_assoc($risposta);

if ( $dentro_la_query == TRUE ) {

while($row= mysql_fetch_assoc($risultato)) {

$seriale = $row['seriale'];
$link = $row['link'];
$prodotto = $row['prodotto'];
$id = $row['id'];

// stampiamo i nostri dati

echo "seriale: $seriale<br>";
echo "Link Software:<a href='$link'>download</a><br>";
echo "prodotto : $prodotto<br>";



}

} else {

echo "Nessun temine alla ricerca trovato";

}


} else {

echo "Devi inserire almeno 3 caratteri";

}

} else {

echo "Non hai compilato il modulo ricerca";

}

}

?>

Ringrazio, siete stati gentilissimi, Alessandro un grazie particolare per il tuo impegno repentino !!

Cris
 
Ultima modifica di un moderatore:
Discussioni simili
Autore Titolo Forum Risposte Data
danjde [MySQL] Escludere specifico valore dalla query select MySQL 3
D Passaggio valore query PHP 0
max75 query su due tabelle e dati doppioni MS Access 2
E Aiuto per query PHP 8
E Query differenza tra tabelle MySQL 5
E Query Alias PHP 4
T Query con date MS Access 1
K Inserimento query Errore 1366 PHP 4
L Query e selezione DB con $_POST PHP 2
M query update e delete PHP 0
A media degli elementi estratti da una query MySQL 0
S Passare query o utm alla pagina successiva Domini 1
O problema con query PHP 4
M Query PHP 8
R query DELETE non cancella i record PHP 1
G Query con i giorni della settimana MySQL 10
E Query annidate o cicli MySQL 1
C bottone query MySQL 0
T Query su due tabelle con totali Database 4
G AVVISO QUERY IN ESECUZIONE PHP 1
M Riportare in tabella HTML dati estratti con query SQL MySQL 0
S Selezionare ultimo record di una sotto query MySQL 27
G Menù a tendina di ricerca con query PHP 1
V Query per una somma PHP 2
F stampare a video i risultati della query PHP 1
L problema con query select PHP 2
D Query sum Database 1
M Visualizzazione a video risultati query php PHP 0
A form PHP prenotazione tramite query PHP 2
R Problema query con ricerca id numerico PHP 2
G Casella combinata in una query MS Access 4
R Aiuto con le query MS Access 2
Y query di DELETE PHP 4
V Query Oracle Oracle 0
L query somma PHP 8
W Query SQL Classic ASP 2
M Problemi con query a più tabelle PHP 3
Alex_70 Conteggio nella query PHP 0
elpirata Query per leggere dati da una tabella mysql e mostrarli a video in base a parametri passati tramite GET PHP 5
A nome file che contiene punto passato come parametro a query PHP 31
F query e form con select multipla PHP 17
M Problema su query JOIN in tre tabelle PHP 0
M Ordinare una query join PHP 2
Alex_70 Query ORDER BY PHP 18
G Problema ------- con Query PHP 1
G Problema con Query PHP 1
Alex_70 foreach explode query PHP 3
O query con date in formato stringa PHP 3
Tommy03 Unione query di 4 tabelle MySQL 1
I Fatal error: Query Failed! SQL: SELECT * INTO OUTFILE PHP 1

Discussioni simili