Back to top

Autore Topic: visualiazzazione campi da database!!!  (Letto 11735 volte)

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
visualiazzazione campi da database!!!
« il: 10 Lug 2006, 15:16:56 »
Salve a tutti..
Sono alle prime armi con il linguaggio php e vorrei chiedervi una cosa..
Sto facendo un piccolo componente per gestire l'anagrafica degli utenti..
il problema è che dopo aver effettuato l'accesso con userid e password vorrei che mi mostrasse una tabella con nome e cognome ecc..
Il fatto è che devo recuperare i dati dal database..
Come faccio??
facendo così <?php echo $row->cognome ?>non mi recupera niente, forse da qualche parte gli devo dire quale tabella del db andare a prendere..

In attesa di un vostro aiuto
vi ringrazio anticipatamente

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #1 il: 10 Lug 2006, 15:44:35 »
$row cos'è?
Come l'hai ottenuto?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #2 il: 10 Lug 2006, 16:38:51 »
<tr class="<?php echo $tabclass[$k]; ?>">
<td valign="top">Cognome: </td>
<td><input type="text" name="cognome" size="30" maxlength="50" value="<?php echo $row->cognome;>"></td>           
</tr> 

In pratica inserisco prima di tutto nome cognome ecc, poi se voglio posso modificare i miei dati anagrafici e con lo script soprastante mi recupera i dati che posso eventualmente modificare (quando clicco su modifica, quindi c'è una prima pagina con delle voci)..
ma quello che voglio io è che nella prima pagina mi compaiono i campi anagrafici in una table senza che io li posso modificare e poi se voglio modificarli sotto ci sarà il pulsante modifica..

Spero di essere stato chiaro

GRAZIE MILLE

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #3 il: 10 Lug 2006, 16:40:28 »
Ho capito cosa vuoi fare, ma non hai risposto alla mia domanda.
Per visualizzare dei dati presi da un db, devi:
- aprire una connessione con il db
- lanciare una query
- inserire il risultato in un recordset
- prelevare i dati dal recordset
Tu mi hai scritto solo l'ultimo punto, ma gli altri? ???


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #4 il: 10 Lug 2006, 16:46:06 »
Io ho due file..
Uno nome.php e uno nome.html.php...
Non so proprio dove metterle queste cose che mi ha elencato..
ma devo fare una function specifica oppure sotto la mia "function menu" posso inserire questi campi che lei mi ha elencato?

Grazie

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #5 il: 10 Lug 2006, 16:47:26 »
ma non è che devo fare un load?????????????

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #6 il: 10 Lug 2006, 16:48:13 »
Tutte le elaborazioni inseriscile nel file nome.php.
Poi richiama solo le funzioni di visualizzazione del file nome.html.php.

Cosa intendi con load?


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #7 il: 10 Lug 2006, 16:49:26 »
ma devo fare una function specifica oppure sotto la mia "function menu" posso inserire questi campi che lei mi ha elencato?
LEI?
Cioè io?
Cioè mi stai dando del lei?  :o


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #8 il: 10 Lug 2006, 17:16:54 »
ok ti daro del tu..
ora ci provo e domani ti faro sapere..
Quindi mi consigli di fare una funzione su nome.php, una funzione che richiama i campi (nome, cognome ecc..) cosi la richiamo nell'html che me li dovrebbe mostrare..
Giusto??

Scusa per le troppe domande ma non riesco a fare questa cosa che sembra banale ma purtroppo non per me..
Grazie mille sei veramente gentile..

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #9 il: 10 Lug 2006, 17:35:10 »
Quindi mi consigli di fare una funzione su nome.php, una funzione che richiama i campi (nome, cognome ecc..) cosi la richiamo nell'html che me li dovrebbe mostrare..
No, il contrario.
Nel file nome.php recuperi tutti i dati dal database e li memorizzi in un array.
Nel file nome.html.php crei una funzione che riceve come parametro un array e visualizza il suo contenuto come meglio credi.
Alla fine del file nome.php invochi tale funzione, passandogli l'array che hai creato.

Dai un occhio alla sezione Downloads, c'è un tutorial.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #10 il: 11 Lug 2006, 09:53:51 »
Io in pratica faccio cosi:
nel file nome.php metto prima di tutto


case "mostradati":
          mostradati();
          break;


Poi definisco la funzione.

function mostradati($userid){
global $database;
$userid = trim( mosGetParam( $_REQUEST, 'userid', "" ) );   
$id = trim( mosGetParam( $_REQUEST, 'id', "" ) );
$cognome = trim( mosGetParam( $_REQUEST, 'cognome', "" ) );
$nome = trim( mosGetParam( $_REQUEST, 'nome', "" ) );
$row = new anaformativa ($database);
$row->load($id);     
$lists = array();
$sql   = "SELECT id, cognome, nome FROM #__anafor_nominativi ORDER By id";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return;
}
HTML_anaformativa::modificadati($row,$userid);
return true;
}

Poi nel file nome.class.php inserisco i seguenti dati.

class anaformativa extends mosDBTable {
  var $id=null;
  var $userid=null;
  var $cognome=null;
  var $nome=null;
  /**
   * @param db - database connector object
   */
  function anaformativa(&$db) {
    $this->mosDBTable('#__anafor_nominativi', 'id', $db);
  }
}


e infine nel file nome.html.php (per adesso ho creato un link mostra che mi dovrebbe richiamare i campi)

<tr><td><a href="index.php?option=com_ana_formativa&task=mostradati&userid=<?php echo $userid;?>">Mostra dati[/url]</td></tr>


con la seguente funzione

   
function mostradati(&$row,$userid) {
global $mosConfig_live_site;
global $my;
$id=$row->id;
$idUtente=1;
   ?>
<div>
<p class="componentheading">Anagrafica</p>
<table width="100%" border="0" cellspacing="2" cellpadding="0">          <tr class="<?php echo $tabclass[$k]; ?>">
<td width="20%" valign="top">Cognome: </td>
<td><?php echo $row->cognome;    ?></td>           
</tr>
<tr class="<?php echo $tabclass[$k]; ?>">
<td width="20%" valign="top"><strong>Nome:</srong></td>
<td><?php echo $row->nome;    ?></td>           
</tr>
</table>
</div>
<?php
  }


dov'è che sbaglio secondo te????
ora mo da anche un errore..anzi 2..

Warning: Missing argument 1 for mostradati() in /var/www/test/components/com_ana_formativa/ana_formativa.php on line 610

Fatal error: Call to undefined function: modificadati() in /var/www/test/components/com_ana_formativa/ana_formativa.php on line 627


che pizzaaaaaaaaa!!!!

Graze

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #11 il: 11 Lug 2006, 10:05:20 »
nel file nome.php metto prima di tutto

case "mostradati":
          mostradati();
          break;

Poi definisco la funzione.

function mostradati($userid){
Perchè definisci la funzione con un parametro e poi la richiami senza?
Questo è un errore.

Fatal error: Call to undefined function: modificadati() in /var/www/test/components/com_ana_formativa/ana_formativa.php on line 627
Invochi la funzione modificadati() che non esiste nel file ana_formativa.php.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #12 il: 11 Lug 2006, 10:10:29 »
giusto..
quello era un mio errore nel richiamare la funzione..
Ora riesco a vedere il campo cognome e nome ma non si visualizzano i campi memorizzati nel database..
Mi da ancora errore nella riga 610..

qualche consiglio??
Ma sto facendo bene oppure mi sono inventato delle cavolate?

Grazie

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #13 il: 11 Lug 2006, 10:12:17 »
Codice: [Seleziona]
function mostradati($userid){
global $database;
$userid = trim( mosGetParam( $_REQUEST, 'userid', "" ) );   
$id = trim( mosGetParam( $_REQUEST, 'id', "" ) );
$cognome = trim( mosGetParam( $_REQUEST, 'cognome', "" ) );
$nome = trim( mosGetParam( $_REQUEST, 'nome', "" ) );
$row = new anaformativa ($database);
$row->load($id);     
$lists = array();
$sql   = "SELECT id, cognome, nome FROM #__anafor_nominativi ORDER By id";
$database->setQuery($sql);
if (!$database->query()) {
echo $database->stderr();
return;
}
HTML_anaformativa::modificadati($row,$userid);
return true;
}
Questo codice non serve apparentemente a nulla.
Effettui la query al database ma non recuperi i risultati.
Devi fare così:
Codice: [Seleziona]
$sql   = "SELECT id, cognome, nome FROM #__anafor_nominativi ORDER By id";
$database->setQuery($sql);
if (!$database->query()) {
    echo $database->stderr();
    return;
}
$rows = $database->loadObjectList();
A questo punto hai un array di oggetti dentro $rows. Array che puoi gestire come ti pare, ad esempio facendo un bel ciclo:
Codice: [Seleziona]
foreach($rows as $row){
    $row->id;
    $row->nome;
    $row->cognome;
}


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #14 il: 11 Lug 2006, 10:12:51 »
Ma sto facendo bene oppure mi sono inventato delle cavolate?
Più che cavolate direi un pò di disordine.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #15 il: 11 Lug 2006, 10:22:37 »
Allora prima di tutto ti ringrazio per la tua disponibilità..
io nel file ana_formativa.php metto questa funzione

Codice: [Seleziona]
function mostradati($row){
global $database;
$sql   = "SELECT id, cognome, nome FROM #__anafor_nominativi ORDER By id";
$database->setQuery($sql);
if (!$database->query()) {
    echo $database->stderr();
    return;
}
$rows = $database->loadObjectList();
HTML_anaformativa::mostradati($row,$userid);
return true;

foreach($rows as $row){
    $row->id;
    $row->nome;
    $row->cognome;
}
}

ho paura di aver sbagliato la posizione del foreach..
Pero non mi fa vedere ancora niente..
Forse sbaglio nell'html?

il codice che ho nell'html è questo:
Codice: [Seleziona]
function mostradati($row) {
    global $mosConfig_live_site;
global $my;
$id=$row->id;
$idUtente=1;
    ?>
<div>
<p class="componentheading">Anagrafica</p>
    <table width="100%" border="0" cellspacing="2" cellpadding="0">         

  <tr class="<?php echo $tabclass[$k]; ?>">
        <td width="20%" valign="top">Cognome: </td>
<td><?php echo $row->cognome ?></td>           
</tr>

<tr class="<?php echo $tabclass[$k]; ?>">
        <td width="20%" valign="top"><strong>Nome:</srong></td>
<td><?php echo $row->nome ?></td>           
</tr>
<tr><td>
<input type="hidden" name="modifica" value="false">
<input type="hidden" name="userid" value="<?php echo $userid?>">
</td></tr>
    </table>
        </div>
 <?php 
  


è come quello di prima e continua a persistere l'errore in linea 610.

Grazie

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #16 il: 11 Lug 2006, 10:40:40 »
Codice: [Seleziona]
function mostradati($row){
Cosa è $row?  ???
Perchè la richiedi ma non la usi?

Codice: [Seleziona]
foreach($rows as $row){
    $row->id;
    $row->nome;
    $row->cognome;
}
Questo codice era solo di esempio, ma non fa assolutamente nulla.
Serviva per farti capire come ciclare sull'array e come usare i dati.
E poi questo codice devi metterlo nel file dell'HTML.
Nel file PHP devi richiamare la funzione in HTML e passargli solo $rows.


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #17 il: 11 Lug 2006, 12:34:18 »
ok grazie..
Proverò domani a rifarlo da capo..
Ho letto il tutorial..Già ne avevo letto uno del genere..

Grazie mille

Offline napo

  • Instancabile
  • ******
  • Post: 6532
  • Sesso: Maschio
  • NO MP TECNICI, verranno ignorati
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #18 il: 11 Lug 2006, 12:40:41 »
Tu tieni sempre presente questa cosa:
- nel file PHP metti tutte le istruzioni di elaborazione ed invii i risultati al file HTML
- nel file HTML definisci le funzioni che prendono i risultati del PHP e li visualizzano
- se ti serve crea il file CLASS per fare ordine nel codice


AllOne.it Consulting: http://www.allone.it Gens Joomla, il : http://www.gensjoomla.org  [url=http://www.allone.it/jooml

Offline netmit

  • Nuovo arrivato
  • *
  • Post: 45
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #19 il: 12 Lug 2006, 16:45:02 »
finalmente ci sono riuscito..
il problema era che richiamavo l'id invece della userid nella parte load..
grazie napo..
ma domani si ricomincia..
ho un altro piccolo problema e domani aprirò una nuova discussione..

a presto

Offline alex

  • Appassionato
  • ***
  • Post: 418
  • Sesso: Maschio
    • Mostra profilo
Re: visualiazzazione campi da database!!!
« Risposta #20 il: 13 Lug 2006, 12:43:44 »
Ho letto tutta la discussione e stavo pensando che sarebbe utile se metto a disposizione di tutti quanti lo schema dell'architettura del database di joomla....

 



Web Design Bolzano Kreatif