Recupero particolari dati

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Ho aggiunto questo nel file ricerca, altrimenti non poteva connettersi e cercare..

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");

il risultato e che inserendo qualsiasi cos acome risultato da tutti i record della tabella inq eusto modo:

Nome
Cognome
Città
Telefono
Nome
Cognome
Città
Telefono
Nome
Cognome
Città
Telefono...e così via per tutti i record....
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Per mettere i risultati ciascuno su una riga basta che sostituisci:

while ($ricerca = mysql_fetch_array($result)){
echo $ricerca['Nome']."<br>".$ricerca['Cognome']."<br>".$ricerca['Citta']."<br>".$ricerca['Telefono']."<br>".$ricerca['Sesso']; }

con:

while ($ricerca = mysql_fetch_array($result)){
echo $ricerca['Nome']." ".$ricerca['Cognome']." ".$ricerca['Citta']." ".$ricerca['Telefono']." ".$ricerca['Sesso']."<br>"; }
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
non mi sono spiegato bene, non è la visualizzazione dei record che non mi piace, ma che qualsiasi cosa scrivo nella ricerca selezionando una qualsiasi voce dell'elenco mi da sempre tutti i record contenenti nella tabella.
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Ma hai modificato il codice che ho scritto?
Perché io sta mattina l'ho provato e mi funzionava...
Lo puoi scrivere qui?
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
cerca.php


PHP:
<?php
$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 ";
}
}
}
}
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");

$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']; }
} 
?>

index.php

PHP:
<div id="ricerca">

<form id="cerca" method="post" action="cerca.php">
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> 

<?

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);
}
?>
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Ho sbagliato io... all'inizio mi sono dimenticata un $.. da me lo avevo corretto ma mi sono dimenticata di scrivertelo...

Non è:
$parola = explode(" ", parole);
Ma:
$parola = explode(" ", $parole);

Il collegamento con il database ti conviene metterlo all'inizio del php...
 

dream88

Utente Attivo
8 Apr 2009
62
0
0
Forse ho capito dov'è l'errore...

Index.php devi metterlo così:

PHP:
<? 

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>

Nell'action del form non devi mettere cerca.php perché se no cerca.php non prende i valori che gli passi con il get...
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Warning: Cannot modify header information - headers already sent by (output started at C:\...\index.php:14) in C:\...\index.php on line 97.

Linea 97

header("Location:".$pagricerca);
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
Risolto in questo modo:

index.php

PHP:
<div id="ricerca">

<form id="cerca" method="post" action="cerca.php">
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>

cerca.php

PHP:
<?php
include("config.php");
$parola = $_POST['parola'];
$search = $_POST['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 ";
}
}
}
}

$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");

$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'].$ricerca['Cognome'].$ricerca['Citta'].$ricerca['Telefono'].$ricerca['Sesso']."<br>";
echo "<br> >>>".$parola[0]."<br>"; }
} 
?>

in poke parole ho tolto questo dalla index:

PHP:
<?
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);
}
?>

E messo post invece che GEt nel cerca.php, poi per un controllo ho messo echo "<br> >>>".$parola[0]."<br>"; tanto x capire se sta parola che inserivo me la dava...tutto mi funziona adesso :D


Potresti spiegarmi meglio la funzione LIKE con gli "%"? mi sn accorto che hai usato la variavile parole per contere la parola inserita nella ricerca poi la stessa variavile trasformata in un array per contenere più parole...non è meglio dare nomi differenti alle variabili? in java una cosa del genere me la sogno XD

grazie di tutto, sei stato molto gentile ;)
 
Ultima modifica:

dream88

Utente Attivo
8 Apr 2009
62
0
0
Per quanto riguarda i nomi delle variabili non ha nessuna importanza... Potevi anche mettere:

PHP:
$parola = trim($parola);
$parola = explode(" ", $parola);
che non cambiava niente...

Per il like con la %...Esempio:
...where Nome like '%pallino%'
Ti trova oltre al nome pallino, anche pincopallino, pallinone...
Cioè quelli che contengono quella parola...
Se levi la % ti trova solo pallino e basta!

Dipende quello che vuoi trovare tu... se ti serve solo il nome esatto allora puoi levare tranquillamente le %...
 

IlGladiatore

Nuovo Utente
16 Mag 2009
17
0
0
ok grazie, capito...

cmq x le variabili mi sn trovato un pò strammo xkè questo modo di fare mi è nuovo tt qui.
 
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