Recupero particolari dati

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Salve a tutti!

Mi sono messo da quanche ora a smanettare con php con l'intendo di creare delle applicazioni che mi occorrono, per questo motivo mi sono creato un piccolo esercizio. Ossia inserire tramite un form dei dati e inserirli nel database per poi visualizzare tutti i record e anche alcuni record in particolare. Il mio problema sta proprio alla fine ossia prendere solo alcuni campi. Questo è il mio codice:

PHP:
<form method="post" action="file.php">
  <p>Nome  <input type="text" name="nome">    <br />
    Nognome <input type="text" name="cognome">    <br />
    Città       <input type="text" name="citta"> <br />
   Telefono <input type="text" name="telefono">  <br />
  Sesso <input type="checkbox" name="maschio" value="s">
 Maschio <input type="checkbox" name="femmina" value="s">
Femmina <br />
<br />
<input type="submit" value="Invia">
  </p>
</form>

Tutti i record!<br /><br />

<?php
include("config.php");
$db=mysql_connect($db_host,$db_user,$db_password);
if ($db==FALSE) die("errore nella connessione");
mysql_select_db($db_name,$db) or die("errore nella selezione del database");


$query = mysql_query("SELECT * FROM tabella",$db);

if ($query==FALSE) die("errore nella composizione della query");

mysql_close($db);

while($row=mysql_fetch_array($query)){

echo "nome: ".$row[Nome] . " cognome: ".$row[Cognome];

echo "<br>";

}

echo "<br><br> Solo le persone di cognome Pincopallo nate a MILANO: <br><br>";

$db=mysql_connect($db_host,$db_user,$db_password);
if ($db==FALSE) die("errore nella connessione");
mysql_select_db($db_name,$db) or die("errore nella selezione del database");

$query = mysql_query("SELECT * FROM tabella",$db);

if ($query==FALSE) die("errore nella composizione della query");

mysql_close($db);

while($raw=mysql_fetch_array($query))
{

	if($raw[Cognome]==?????

}

?>

L'algoritmo che avevo pensato e confrontare l'indice dell'array cognome con la stringa Pincopallo e se è uguale fare un'altor if all'interno che confronta sta volta l'indice della città con la stringa Milano, solo che non php non so se si può mettere " == " in java metto equals qua non so... come potrei fare per ottenere questo risultato?


Grazie in anticipo!
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Si, == è utilizzato per verificare le uguaglianze...

Ma non ti conviene mettere le due condizioni direttamente nella query?
Cioè scrivere:
SELECT * FROM tabella WHERE .....&&...... ?
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
si avevo pensato una cosa di questo genere, ma non sapevo se si poteva fare e come si fa :D

una cosa del genere?

$b = mysql_query("SELECT Cognome, Citta FROM tabella WHERE Cognome= '$_SESSION[Pincopallo]' && Citta= '$_SESSION[Milano]'",$db);

se voglio solo gonome e città, mentre se voglio tutte le info della persona metto

$b = mysql_query("SELECT * FROM tabella WHERE Cognome= '$_SESSION[Pincopallo]' && Citta= '$_SESSION[Milano]'",$db);

Dico bene o sto invendando troppo? XD
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Sì direi di sì....

C'è una cosa che non riesco a capire.... perché usi la variabile $_session?
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
sisi che sto inventando o che è corretto?

Bho ho messo la variabile perchè pensavo che mettendo quella stringa la dentro lui confrontava. Ripeto io non ho mai programmato in php quindi sono tutte supposizioni che faccio, quindi possono essere anche sbagliate :D
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Sisi che è corretto...

Cmq puoi mettere direttamente Cognome='Pincopallo' senza $_session o roba simile!!!
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Questo è il codice che ho fatto:

PHP:
echo "<br><br> Pincopalli nati ad Milano: <br><br>";

$db=mysql_connect($db_host,$db_user,$db_password);
if ($db==FALSE) die("errore nella connessione");
mysql_select_db($db_name,$db) or die("errore nella selezione del database");

$b=mysql_query("SELECT Cognome, Citta FROM tabella WHERE Cognome='Pincopallino' Citta='Milano'",$db);

if ($b==FALSE) die("errore nella composizione della query");

mysql_close($db);

while($rig=mysql_fetch_array($b))
{
echo "<br> ".$rig['Cognome'].$rig['Citta']; 
}

Questo è il risultato:

" errore nella composizione della query "
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
si adesso esegue, ma non come voglio io. Cioè io voglio che mi da il record per intero quindi individua quanti pincopalli di milano ci sono e mi restituisce nome, cognome, città, telefono e sesso. In questo modo restituisce cognome e città solamente anche se metto

PHP:
while($rig=mysql_fetch_array($b))
{
echo "<br> ".$rig['Nome'].$rig['Cognome'].$rig['Citta'].$rig['Telefono']; 
}

che posso fare?
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Risolto scrivendo così:

PHP:
$b=mysql_query("SELECT Nome, Cognome, Citta, Telefono FROM tabella WHERE Cognome='Pincopallo' && Citta='Milano'",$db);

ma il sesso non lo inserisce, io come variabile avevo messo " s " ora appena dopo telefono scrivendo " Telefono, s " mi dice errore nella composizione della query... come mai?
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Invece della query che hai scritto tu prova a mettere questa:

$b=mysql_query("SELECT * FROM tabella WHERE Cognome='Pincopallo' && Citta='Milano'",$db);

L' * serve per selezionare tutti i campi che hai nella tabella...
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
fatto....ma non cambia, mi sorge un dubbio....forse ho sbagliato io qui:

PHP:
<?php
$nome=$_POST['nome'];
$cognome=$_POST['cogonome'];
$citta=$_POST['citta'];
$telefono=$_POST['telefono'];
$s=$_POST['s'];

include("config.php"); 
$db=mysql_connect($db_host,$db_user,$db_password);
if ($db==FALSE) die("errore nella connessione");
mysql_select_db($db_name,$db) or die("errore nella selezione del database");

$query = "INSERT INTO tabella (Nome,Cognome,Citta,Telefono,Sesso) 
          VALUES ('{$_POST['nome']}','{$_POST['cognome']}','{$_POST['citta']}','{$_POST['telefono']}','{$_POST['s']}')";
$result=mysql_query($query,$db);

if ($result==FALSE) die("Errore inserimento del cliente,<br> la seguente query è sbagliata: $query");
echo "Cliente" .$nome .$cognome "inserito con successo";
mysql_close($db);

?>

Questo è il form:

PHP:
<form method="post" action="file.php">
  <p>Nome 
    <input type="text" name="nome">
    <br />
    Nognome    
    <input type="text" name="cognome">
    <br />
    Città        	
    <input type="text" name="citta">
<br />
Telefono 
<input type="text" name="telefono">
<br />
Sesso 
<input type="checkbox" name="maschio" value="s">
Maschio 
<input type="checkbox" name="femmina" value="s">
Femmina
<br />
<br />
<input type="submit" value="Invia">
  </p>
</form>
 
Ultima modifica:

dream88

Utente Attivo
8 Apr 2009
62
0
0
Aspetta... ci sono alcuni errori!!

Innanzitutto nel form ti converrebbe usare dei radio button invece che delle checkbox...quindi:

<input type="radio" name="s" value="maschio"/> Maschio
<input type="radio" name="s" value="femmina"/> Femmina

poi...visto che hai messo i valori del form nelle variabili, la query per inserire i dati nel database è:

$query = "INSERT INTO tabella (Nome,Cognome,Citta,Telefono,Sesso)
VALUES ('$nome','$cognome','$citta','$telefono','$s')";

Attento che quando hai fatto il post hai scritto :
$cognome=$_POST['cogonome']; anziché $cognome=$_POST['cognome'];

Infine... quando devi visualizzare i risultati della query, devi mettere:
while($rig=mysql_fetch_array($b))
{
echo "<br> ".$rig['Nome'].$rig['Cognome'].$rig['Citta'].$rig['Telefono'].$rig['Sesso'];
}
Perché il nome del campo nella tua tabella è 'Sesso' e non 's'...
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Ho provato a riscrivere il codice e funziona!
Allora... Hai una tabella 'tabella' con le colonne: Nome,Cognome,Citta,Telefono,Sesso,Id.

In config.php il codice è:

<?php
// Dati connessione al database
$db_host = ''; // Host - solitamente localhost
$db_utente = ''; // Nome utente del Database
$db_password = ''; // Password del Database
$db = ''; // Nome del Database

// Effettua la connessione al database
$dbh=mysql_connect ($db_host, $db_utente, $db_password) or die ('Errore nella stringa di connessione al database: '.mysql_error());
mysql_select_db($db,$dbh);
?>


Il form è questo:


<form method="post" action="">
<p>Nome
<input type="text" name="nome">
<br />
Cognome
<input type="text" name="cognome">
<br />
Città
<input type="text" name="citta">
<br />
Telefono
<input type="text" name="telefono">
<br />
Sesso
<input type="radio" name="s" value="maschio"/> Maschio
<input type="radio" name="s" value="femmina"/> Femmina

<br />
<br />
<input type="submit" name="Invia" value="Invia">
</p>
</form>


Il codice per inserire dati nel database è:

<?php

include("config.php");
if(isset($_POST['Invia']))
{
$nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';
$cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : '';
$citta = (isset($_POST['citta'])) ? trim($_POST['citta']) : '';
$telefono = (isset($_POST['telefono'])) ? trim($_POST['telefono']) : '';
$s = (isset($_POST['s'])) ? trim($_POST['s']) : '';

$query = "INSERT INTO tabella (Nome,Cognome,Citta,Telefono,Sesso)
VALUES ('$nome','$cognome','$citta','$telefono','$s')";
mysql_query($query) OR die("Errore 003, contattare l'amministratore ".mysql_error());

if (!$query) {

die("Errore inserimento del cliente,<br> la seguente query è sbagliata: $query");}
else {echo "Cliente".$nome.$cognome."inserito con successo";}
}

?>


E il codice per vedere tutte le persone che si chiamano Pincopallino e la cui città è Milano è:

<?php
$b = mysql_query("SELECT * FROM tabella WHERE Cognome= 'bosio' && Citta= 'ciao'");
while($rig=mysql_fetch_array($b))
{
echo "<br> ".$rig['Nome'].$rig['Cognome'].$rig['Citta'].$rig['Telefono'].$rig['Sesso'];
}
?>

Adesso dovrebbe realmente funzionare... fammi sapere!
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Scusa l'ultima query è questa....

<?php
$b = mysql_query("SELECT * FROM tabella WHERE Cognome= 'Pincopallino' && Citta= 'Milano'");
while($rig=mysql_fetch_array($b))
{
echo "<br> ".$rig['Nome'].$rig['Cognome'].$rig['Citta'].$rig['Telefono'].$rig['Sesso'];
}
?>
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Si adesso funziona grazie :D

Il pezzo che inserisce i dati nel db copiato così x come lo hai scritto mi dava un errore quando andavo per inserire un nuovo campo solo che il contatto lo inseriva lo stesso anche con l'errore che mi generava, quindi ho eliminato

mysql_query($query) OR die("Errore 003, contattare l'amministratore ".mysql_error());

e inserisce sempre il contatto ma sta volta mi dice inserimento effettuato ecc...

Una cosa sola....

PHP:
if(isset($_POST['Invia']))
{
$nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';
$cognome = (isset($_POST['cognome'])) ? trim($_POST['cognome']) : '';
$citta = (isset($_POST['citta'])) ? trim($_POST['citta']) : '';
$telefono = (isset($_POST['telefono'])) ? trim($_POST['telefono']) : '';
$s = (isset($_POST['s'])) ? trim($_POST['s']) : '';


Quando scrivi If isset vuol dire che se il pulsante è stato "cliccato" allora prosegui con l'inserimento?Può avere altri significati?
Dopo la dichiarazione della variabile inserisci nuovamente isset e poi un "?" che cosa serve? la funziona trim toglie gli spazi a destra e a sinistra se non erro quindi elimina eventuali spazi fatti durante l'inserimento?

Grazie per l'aiuto che mi stai dando :D
 
Ultima modifica:

dream88

Utente Attivo
8 Apr 2009
62
0
0
Si esatto...

if(isset($_POST['Invia']))... vuol dire che quando schiacci il pulsante Invia ti fa le operazioni che indichi tra le { }.

E questo invece:
$nome = (isset($_POST['nome'])) ? trim($_POST['nome']) : '';
Controlla che la variabile sia valorizzata ed eventualmente elimina gli spazi vuoti....

Ciao!:D
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
e se vorrei creare un campo di ricerca dove inserisco per esempio un nome e mi trova tt quelli che si chiamano in quel nome? o comunque se inserisco anche un cognome?
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Potresti fare una cosa di questo tipo...

Un form dove hai un campo di ricerca, un'opzione dove puoi scegliere per esempio tra nome, cognome e città, e il pulsante Cerca.
Questo è il codice:

<?

if(isset($_POST['cerca']))
{
// Dati Inviati dal modulo
$parola = (isset($_POST['parola'])) ? trim($_POST['parola']) : '';
$search = (isset($_POST['search'])) ? trim($_POST['search']) : '';
$pagricerca= "cerca.php?parola=".$parola."&search=".$search;
header("Location:".$pagricerca);
}
?>

<div id="ricerca">

<form id="cerca" method="post" action="">
Ricerca:
<input name="parola" type="text"/>
<select name="search">
<option selected="selected" value="1">Nome</option>
<option value="2">Cognome</option>
<option value="3">Citta</option>
</select>
<input type="submit" name="cerca" value="Cerca"/>
</form>

</div>


E poi devi avere la pagina Cerca.php dove vai a visualizzare i dati che hai cercato...

$parola = $_GET['parola'];
$search = $_GET['search'];
if ($parola)
{
$parole = trim($parola); // elimina gli spazi circostanti
$parola = explode(" ", parole);// array di singole parole
}
//Definizione della query
$sql = "SELECT * FROM tabella";

if ($search=="1"){
if (isset($parola))
{
$sql .=" WHERE ";
for($i = 0; $i < count($parola); $i++)
{
$sql .= "Nome LIKE '%" . $parola[$i]. "%'";
if ($i < count($parola)-1)
{
$sql .= " OR ";
}
}
}
}
if ($search=="2"){
if (isset($parola))
{
$sql .=" WHERE ";
for($i = 0; $i < count($parola); $i++)
{
$sql .= "Cognome LIKE '%" . $parola[$i]. "%'";
if ($i < count($parola)-1)
{
$sql .= " OR ";
}
}
}
}
if ($search=="3"){
if (isset($parola))
{
$sql .=" WHERE ";
for($i = 0; $i < count($parola); $i++)
{
$sql .= "Citta LIKE '%" . $parola[$i]. "%'";
if ($i < count($parola)-1)
{
$sql .= " OR ";
}
}
}
}

$result =mysql_query($sql);
if (mysql_num_rows($result) == 0) {
die("Non è stato trovato il termine cercato. Effettua una nuova ricerca");
}
else {
while ($ricerca = mysql_fetch_array($result)){
echo $ricerca['Nome']."<br>".$ricerca['Cognome']."<br>".$ricerca['Citta']."<br>".$ricerca['Telefono']."<br>".$ricerca['Sesso']; }
}


Non l'ho provato però dovrebbe funzionare....
 
Discussioni simili
Autore Titolo Forum Risposte Data
O Recupero valori da listato Javascript 0
S problema con recupero dati tabella mysql PHP 2
D Recupero dati da HDD esterno Hardware 0
T foreach e fetchAll dove recupero solo l'ultimo record PHP 5
T recupero valori select multipla da android Javascript 3
W Recupero password Classic ASP 16
L Recupero dati da SSD Windows 10 prof Windows e Software 2
S [PHP] Recupero nome immagine da Form con input file PHP 3
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
bubino8 [PHP] Recupero id autoincrement PHP 8
I Recupero accesso pannello di controllo dominio Leggi, Normative e Fisco 2
S [PHP] form con metodo get e recupero id PHP 4
Emix [PHP] Check - Select e recupero variabili PHP 40
bubino8 [PHP] Recupero input senza invio PHP 1
U [PHP] Selezione con menu a tendina e recupero selezione PHP 5
L Problema con recupero dati in PHP cURL e JAVA con server PHP 1
P Javascript o Jquery - recupero testo (oltre al valore) di una select Javascript 5
S [PHP] Recupero più dati da form realizzata ciclo FOR PHP 5
P [PHP] Recupero dati da un array PHP 5
P [Javascript] Aiuto per recupero variabili da script Javascript 10
F Recupero dati json Ajax 2
D jquery per recupero variabile Javascript 4
A Form recupero campo Radio PHP 7
I tabella con ciclo, recupero dati PHP 3
P Recupero variabile Ajax 5
Z recupero e stampa a video di immagini da database PHP 3
Emix Problema recupero Dati da MYSQL PHP 20
L Recupero dati da tutte le tabelle nel db MySQL 4
Alessio Gebbia [PHP] Recupero dati da un WHILE ! PHP 3
N Recupero indirizzo mail PHP 1
M recupero dati... PHP 1
filomeni Recupero anchor Javascript 13
P Recupero dati per select form PHP 9
S Recupero valori da tabella tramite id colonna Javascript 1
L Recupero dati form in tabella e invio con ajax. Problemino jQuery 1
L PHP e recupero risultati da query PHP 2
L PHP e recupero risultati da query PHP 11
felino HDD 2.5'' caduto a terra: possibile recupero dei dati al suo interno Hardware 8
D recupero valore radio button PHP 1
Emix Recupero dati da una tabella e spostarli in un altra PHP 11
A Problema recupero valori da select con chiamata ajax Ajax 1
neo996sps Non recupero il value in un select popolato da DB PHP 4
N Chronoforms, recupero nome form Joomla 20
blips Recupero valori select Javascript 1
H Recupero password dimenticata PHP 0
C Recupero dati da pagina esterna PHP 5
M recupero dati da db PHP 6
I Recupero numero file uploadati php PHP 1
T Problema con form e recupero dati da mysql PHP 17
F errori sul recupero dati mysql e php PHP 3

Discussioni simili