|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Urgente php e mysql
Ciao ragazzi, ho un problema con php. Tra pochi giorni debbo consegnare una tesina per un esame e sono 2 giorni che perdo tempo appresso a sta cosa.
Debbo recuperare i dati da un db mysql v4.1.0 alpha con una query php v4.3.4. I suddetti dati (una colonna di n numeri) li debbo mettere in una lista di selezione su una pagina html (salvata con estensione.php). Le istruzioni che uso sono le seguenti: <?php $connection = mysql_connect("localhost", "root", "") or die ("Connessione fallita!".mysql_errno().mysql_error()); if($connection) mysql_select_db("Telefonia"); $query="SELECT Numero FROM contratto"; $ris=mysql_query($query) or die("Problema nella lettura dei numeri".mysql_errno().mysql_error()); ?> Numero: <SELECT name="numero"> <OPTION Value=0>Seleziona un numero <?php While(mysql_fetch_row($ris)) echo "<OPTION Value=$ris[0]>$ris[0] </OPTION>"; ?> </SELECT> In realtà, la query trova il numero giusto di elementi lo capisto perchè mi aggiunge alla lista N righe vuote, dove N è corretto (ho controllato),anche stampando direttamente il risultato della select con echo o print dentro lo script, mi trovo sempre con campi vuoti. vi ringrazio anticipatamente |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Milano
Messaggi: 19148
|
ho lavorato su php e mysql fino ad ora e scusami se magari dico cose banali ma poi me ne vado a letto...
non è che il problema sta nel mysql_fetch_row? io uso sempre mysql_fetch_array perché mi pare che avevo avuto qualche problema con altri tipi di funzioni (forse proprio la fetch_row che usi tu). cmq non sono un grande esperto di php, devo riconoscerlo... ma tu intanto prova, ci metti un attimo |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Avevo già provato, sia con mysql_fetch_row sia con mysql_fetch_array, sia con mysql_fetch_object, ma danno tutti lo stesso esito. Non c'è nessun "guru" del php qui nel forum che mi possa aiutare?
cmq recoil grazie lo stesso. |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
Re: Urgente php e mysql
Quote:
cioè non ho capito il problema, cosa devi visualizzare in quella lista? e come è strutturata la tabella? cioè se devi far vedere singoli numeri tanto vale che conti quante righe escono dalla query e fai u nwhile semplicissimo.... Codice:
<?php While(mysql_fetch_row($ris)) echo "<OPTION Value=$ris[*?label-colonna?*]>$ris[*?label-colonna?*] </OPTION>"; ?>
__________________
NB: HP NX6310 | Intel Core Solo 1,66 | 1024 DDR2 5300 | 60 GB 5400 rpm | Intel GMA 950 | DVDRW DL PC: AMD Athlon 64 3800+ | 1024 DDR 3200 | ATI X600 256MB | HDD 250 GB 7200 rpm | DVD RW DL HP Ho concluso recentemente con: aleph0 - ayyyoooo Ultima modifica di Python : 16-12-2003 alle 14:26. |
|
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
se devi creare una lista con la scelta di opzioni solo numeri (cioè una lista di numeri, tanti quante sono le righe uscite dalla query) fai semplicemente cosi
Quote:
|
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
La tabella contiene dei numeri telefonici oltre che ad altri dati.
Quendi dalla tabella debbo estrarre tutti i numeri telefonici (solo), e debbo poterli selezionare da una lista. Come corrispondente valore per ogni numero selezionato, debbo avere lo stesso numero. spero di essermi spiegato un po' meglio, ammetto che probabilmente non sono stato molto chiaro con il primo post. |
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
cioè tipo così?
<OPTION Value=028783409>028783409</OPTION> allora al posto di 0 devi mettere il label che hai dato alla colonna contenente i numeri di telefono nella tua tabella Quote:
__________________
NB: HP NX6310 | Intel Core Solo 1,66 | 1024 DDR2 5300 | 60 GB 5400 rpm | Intel GMA 950 | DVDRW DL PC: AMD Athlon 64 3800+ | 1024 DDR 3200 | ATI X600 256MB | HDD 250 GB 7200 rpm | DVD RW DL HP Ho concluso recentemente con: aleph0 - ayyyoooo Ultima modifica di Python : 16-12-2003 alle 22:04. |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Ho provato come mi hai detto, non funziona, ma cmq era una prova che avevo già fatto. Usando mysql_fetch_row($ris) , per accedere ai dadi di ris, bisogna usare l'indice nomerico, se invece usi mysql_fetch_object($ris) allora devo usare l'indice associativo (la label della colonna che vuoi leggere), se usi mysql_fetch_array($ris,OPT), hai la possibilità di scegliere quale indice utilizzare, quello numerico, quello associativo o entrambi. Ho provato tutte queste soluzioni, il risultato è sempre quello, una lista con N righe bianche al posto dei numero telefonici (dove N rappresenta il giusto numero di righe che dovrebbero agiungersi alla lista).
Non ti viene in mente niente, anche qualche trucco per aggirare l'ostacolo?? Io ci sto diventando matto!! Ho messo le mani sul php per la prima volta 6 giorni fa e già mi stà passando la voglia di usarlo ![]() ![]() ![]() ![]() |
![]() |
![]() |
![]() |
#9 | |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
prova una cagata simile
![]() Quote:
|
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Ho risolto, non so come, ho riscritto il codice ed ora funziona. Ti riporto di seguito l'attuale codice, confrontalo con quello che avevo scritto prima e dimmi che cambia (apparte il nome delle variabili)!..
![]() ![]() <?php $db_con = mysql_connect("localhost","root","") or die("Problema nella nella connessione".mysql_errno().mysql_error()); if($db_con) mysql_select_db("telefonia"); //$db_query="SELECT Numero FROM contratto"; ?> < <?php echo "Numero: <SELECT name=\"numero\">"; echo "<OPTION Value=0>Seleziona un numero"; $db_ris=mysql_query("Select Numero from contratto;") or die("Problema nella lettura dei numeri".mysql_errno().mysql_error()); while ($row = mysql_fetch_row($db_ris)) echo "<option value=\"$row[0]\">$row[0]</option>\n"; echo "</select>"; ?> ciao |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Ora ho un'altro problema!
![]() In base ad un confronto (un if) fra due stringhe, debbo selezionare o meno un elemento di una lista di selezione. Rispettivamente le due stringhe sono: 1) un parametro (valore di una text box della pag php precedente) passato attraverso html (action="pagina.php"?parametro) e caricato tramite $HTTP_GET_VARS. 2) una stringa risultante da una select (che restituisce tutti i valori di una colonna di una tabella). Ora, anche essendo sicuro che la 1 è presente nella 2, non c'è verso di effettuare questo confronto per ottenere il giusto risultato!! Non capisco se il problema, ho provato con "strcmp","strncmp","==", ho provato a convertire entrambe in stringhe con "sprintf" per poi fare il confronto, ma non ne vengo fuori!!! Giuro, il php mi sta simpatico... perchè lui invece ce l'ha con me? ![]() |
![]() |
![]() |
![]() |
#12 |
Senior Member
Iscritto dal: Jul 2002
Messaggi: 2183
|
prova cosi
Codice:
$stringa1 = "ciao"; $stringa2 = "ciaoamico"; if ( strchr($stringa2, $stringa1) ){ } ciao |
![]() |
![]() |
![]() |
#13 |
Senior Member
Iscritto dal: Dec 2001
Città: Altidona (AP)
Messaggi: 349
|
Ho risolto anche questo.
![]() ![]() ![]() Ancora grazie per l'aiuto. Ora vorrei fare una cosa ma non so se è possibile. In base alla selezione di un controllo "radio" (penso si chiami così, le caselle per la selezione), vorrei far comparire dei campi di input piuttosto che altri (le possibili scelte sono 2) sulla stessa pagina che ospita il controllo. Dovrebbe essere possibile, e dovrebbe entrarci qualcosa l'azione $PHP_SELF, di cui però il manuale che ho io non parla (dice solo che esiste ![]() ps:giuro che poi non rompo + le scattole! ciao e di nuovo grazie |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:57.