• User Attivo

    problemi con id

    Ciao a tutti, non riesco a venire a capo di un problema. Allore spiego brevemente, a inizio pagina dichiaro la variabile id:

    $id=0; if(isset($_REQUEST['id'])){$id=$_REQUEST['id'];}

    Poi ho più funzioni, quella che miinteressa è mostra_form
    function mostra_form(){
    global $id;
    .....
    // seleziono tutto e se l'id vale 0 avrò i campi del form vuoti se no co i valori pescati dal db
    $sql='SELECT attivita.*, .................. WHERE att_id='.$id;
    $dati=mysql_query($sql);
    if(mysql_num_rows($dati)>0)
    {
    $array=mysql_fetch_array($dati);
    $nome=$array["att_nome"];
    $titolare=$array["att_titolare"];
    $tipo=$array["att_tipo"];
    $regione=$array["att_idregione"];
    .....ecc....
    else{
    $nome='';
    $titolare='';
    $tipo='';
    $regione='';
    .......

    $output='<form name="info" id="info" action="?azione=salva" method="post">';
    $output.='<input type="hidden" name="id" value="'.$id.'" /><br />';
    $output.='<fieldset>';
    $output.='<label for="nome">Nome Attività</label>';
    $output.='<input type="text" name="nome" value="'.$nome.'" />';
    ...........
    .................ecc

    Quando invio i dati, mando il tutto alla funzione salva, lì, se l'id vale 0 registra un nuovo record, se no agiorna il record. Lo fa in tutti e due i casi correttamente. Il problema sorge quando vado a vedere i dettagli del record, se ho registrato un nuovo record, mi mostra correttamente la scgheda dettagli, se l'ho modificato mi va in errore stampando ''nessun record''. Il problema è che anche guardando in php myadmin le modifiche le fa correttamente e l'id viene mantenuto e passato correttamente alla funzione mostra dettagli...cosa può essere?

    function mostra_det(){
    global $miaconn,$id;

    $sql='SELECT attivita.*, REGIONI.nomeregione, PROVINCE.nomeprovincia 
    	FROM attivita INNER JOIN regioni ON ATTIVITA.att_idregione = REGIONI.idregione
    	INNER JOIN PROVINCE ON ATTIVITA.att_idprovincia = PROVINCE.idprovincia WHERE att_id='.$id;
    $dati=mysql_query($sql);
    if(mysql_num_rows($dati)>0){
    	$array=mysql_fetch_array($dati);
    	$output='';
    	$output.='<b>Nome:</b>'.$array["att_nome"].'<br>';
               .....
    

    ...else{ echo ''nessun record'}

    Con altre funzioni fatte sullo stesso record come ad esempio elimina, non ho problemi, solo con mostra dettagli e mostra form e solo nel caso in cui abbia modificato il record...chi può aiutarmi???Grazie


  • User Attivo

    Che intendi per modifica al record?

    E poi potrà essere anche una cavolata ma provala così la selezione

    $sql = "SELECT attivita.*, .................. WHERE att_id='$id'";


  • User Attivo

    @mikslap said:

    Che intendi per modifica al record?

    E poi potrà essere anche una cavolata ma provala così la selezione

    $sql = "SELECT attivita.*, .................. WHERE att_id='$id'";

    Ho risolto il problema grazie lo stesso! Siccome associavo il campo idprovincia della tabella province al campo idprovincia della tabella attivita, quando facevo una modifica se non riselezionavo la provincia nella tendina mi passava quell'id a 0 e non mi faceva più vedere i dettagli ne un'eventuale nuova modifica, questo perchè all'inizio della funzione avevo il controllo fi($id==0) {fai il form vuoto} else{riempi il form con i dati del record per modificarli}. Non ho ben capito il perchè mi abbia fatto sto scherzo perchè comunque gli passavo l'id del record che mi interessava non quello della provincia, comunque usando questa accortezza non mi da più problemi! Grazie lo stesso ciao a tutti alla prossima.