Newsgroup: it.comp.www.php
Titolo: Ricerca in db Mysql

Ciao a tutti, sto provando a far funzionare un piccolo motore di ricerca sui
campi di un db in Mysql, ma incontro un problema: visualizzo solo un
(l'ultimo,come da manuale) valore e a me servirebbe l'elenco di tutti i
campi corrispondenti.
Questo è il mio script:
$dati = mysql_query ("select * from tabella WHERE nome LIKE '%$ricerca%' or
cognome LIKE '%$ricerca%');
while($row=mysql_fetch_array($dati)){
    $nome=$row[0];
    $cognome=$row[1];
      }
In pratica se cerco Mario, mi vien fuori solo Mario Rossi pur essendoci
anche Mario Bianchi...
Come avrete capito sono un newbie, mi chiedevo: esiste una buona guida sul
php su internet oltre al manuale ufficiale(per me un pò ostico)?
Grazie,
Marco

 ha scritto nel messaggio
news:a8vs1f$8tl$1...@pegasus.tiscalinet.it...
| $dati = mysql_query ("select * from tabella WHERE nome LIKE '%$ricerca%'
or
| cognome LIKE '%$ricerca%');
| while($row=mysql_fetch_array($dati)){
|     $nome=$row[0];
|     $cognome=$row[1];
|       }
|
| In pratica se cerco Mario, mi vien fuori solo Mario Rossi pur essendoci
| anche Mario Bianchi...
like '*<keyword>*'
--
[ Penguin At Work ]
-> 
http://web.tiscali.it/penguinatwork/
-> aka Fustino Di Dixan while working

Marco
La funzione mysql_fetch_array(come anche la mysql_fetch_row)
sovrascrive le righe estratte dalla query.Mi spiego meglio: il ciclo while
ripete il fetch per ogni record estratto.Perciò la visualizzazione dei
record precedenti l'ultimo deve avvenire all'interno del while.
while($row=mysql_fetch_array($dati)){
    $nome=$row[0];
$cognome=$row[1];
      echo $nome,$cognome;
}
Spero di essere stato
chiaro ed esaustivo ;))
--------------------------------
Inviato via 
http://usenet.iol.it
 

 like '*<keyword>*'
        ^         ^
devono essere % non *
Era giusto nel esempio (mancava solo nel while la visualizzazione, che
presumo sia stata messa fuori dal while).

 ha
scritto nel messaggio news:fpUs8.10848$SR5.2...@twister1.libero.it...
| > like '*<keyword>*'
|         ^         ^
|
| devono essere % non *
mmmm... mi scuso! :)
di mysql e php non so quasi nulla ed e' 3 giorni
che lo uso.
per il ciclo fuori beh, io lo davo per scontato
che ad ogni record seguisse l'output.
arrivo da vb/access ... mi dici solo se % e' un
cosa di php o di mysql?
perche' io (mi sto dedicando a casa) se uso *
ottengo cmq dei risultati corretti.
(os:linux/mysql/php)
grazie e scusa


 (os:linux/mysql/php)
Sicuro di ottenere un risultato con LIKE 'Mario*'?
Non dovrebbe andare bene...
Il % e una 'cosa' mySQL. Il PHP non centra in questo caso, la stringa viene
passata al Server mySQL cosi come'e' nello script. Hai anche provato
collegandoti direttamente con mysql (/usr/bin/mysql)?

 ha
scritto nel messaggio news:qnVs8.11061$SR5.2...@twister1.libero.it...
| Sicuro di ottenere un risultato con LIKE 'Mario*'?
| Non dovrebbe andare bene...
beh, per le prove che ho fatto io nelle ore serali direi
di si... ma posso sempre sbagliarmi! o non ricordare
giusto.
| Il % e una 'cosa' mySQL. Il PHP non centra in questo caso, la stringa
viene
ah, ecco!
quindi a mysql non piace * che invece access gradisce.
che mi dici di "?" ? anche lui fa la stessa fine?
forse e' meglio se mi scarico una guida dal sito
ufficiale di mysql...
| passata al Server mySQL cosi come'e' nello script. Hai anche provato
| collegandoti direttamente con mysql (/usr/bin/mysql)?
che intendi??
# mysql qualcosa??
ti diro', il mio db e' in /var/lib/mysql/cartellaDB
creata con # mysqladmin create db... e poi, si ho usato
mysql ma solo cosi' per dargli in pasto la struttura:
# mysql -u root cartellaDB < fileStrutturaDB
ho avviato il servizio (mysqld) e mi collego con
$db=mysql_connect("localhost","root")
ecc...
di + nin so'! vuoi illuminarmi?? non e' una domanda da
*ti sto prendendo in giro*, sono serio e mi farebbe
piacere.


"Fustino di Dixan" <acer...@penguinAtWork.it> ha scritto nel messaggio
news:a91bn5$hnr$1...@phobos.ibnetwork.net...
| creata con # mysqladmin create db... e poi, si ho usato
db=cartellaDB sorry!


SELECT Nome FROM tbl WHERE Nome LIKE 'Mario%';
ecc.
Cosi puoi sperimentare a volonta con le query mysql (senza dover codificare
sempre tutto con PHP solo per provare)... BTW: Puoi usare freccia su giu'
per modificare l'ultima query.
Prendi il manuale di mysql su
 
www.mysql.com/documentation/index.html
Leggi anche qui:
 
www.dopoil.com/PHP-FAQ/faq.php?mysqlPrompt
 
www.dopoil.com/PHP-FAQ/faq.php?jollyEmail
 
www.dopoil.com/PHP-FAQ/faq.php?mysqlCalcs

 ha
scritto nel messaggio news:ZHWs8.11546$SR5.2...@twister1.libero.it...
| allora fai:
| # mysql -u root cartellaDB
|
| al prompt di mysql:
| >SHOW TABLES;  <INVIO>
[CUT]
Grazie tante! a buon rendere :D (spero)
That's very kind of you


 chiaro ed esaustivo ;))
Zuperman sei tuu
fantastico guerrieeééérooooo
sceso come un fulminee dal cieeeeeeeéééloooooo....
Kenshiro docet!
Grassie!
:))