Visualizzazione dei risultati da 1 a 10 su 10

Discussione: se maschio stampa M

  1. #1

    se maschio stampa M

    non riesco a far stampare il sesso, mi stampa sempre M anche se nella scheda utente ho cliccato F, dove sbaglio?

    Codice PHP:
    echo "<tr>
        <td height=\"41\" width=\"113\"><span class=\"testo_grigio_bold\">email</span></td>
        <td align=\"right\" width=\"162\"><span class=\"testo_grigio_bold\">
    $row1->email</span></td>
        <td width=\"100\"></td>
        <td align=\"left\" width=\"113\"><span class=\"testo_grigio_bold\">sesso</span></td>
        <td align=\"right\" width=\"162\">\n"
    ;

    if (
    $row1['sesso']==1){ 
    echo 
    "M\n";
    }
    else
    {
    echo 
    "F\n";
    }

    echo 
    "</td>
          </tr>
                <tr>
        <td height=\"1\" colspan=\"5\" valign=\"top\" bgcolor=\"BF9BB5\"></td>
        </tr>\n"


  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2004
    Messaggi
    378
    prova a stampare il valore dell'array con un echo $row1['sesso'];
    controlla che i valori stampati facciano ci' per cui sono stati predisposti a fare.magari il problema sta' direttamente a monte.ciao

  3. #3
    dal codice postato non si capisce
    potresti postare anche il codice precedente?
    Tremal-Naik
    ******************************
    passa a LINUX
    **********
    la religione e' il freno che impedisce al povero di ammazzare il ricco

  4. #4
    purtroppo non fa al caso mio, io dovrei far visualizzare un'immagine in base al sesso dell'utente, prima avevo fatto un esempio semplice per farmi capire:

    Codice PHP:
    echo "<tr>
        <td height=\"41\" width=\"113\"><span class=\"testo_grigio_bold\">email</span></td>
        <td align=\"right\" width=\"162\"><span class=\"testo_grigio_bold\">
    $row1->email</span></td>
        <td width=\"100\"></td>
        <td align=\"left\" width=\"113\"><span class=\"testo_grigio_bold\">sesso</span></td>
        <td align=\"right\" width=\"162\">\n"
    ;

    if (
    $row1['sesso']==1){ 
    echo 
    "<img src=\"../images/menu_spunta_rosa.gif\" width=\"10\" height=\"10\">\n";
    }
    else
    {
    echo 
    "<img src=\"../images/menu_spunta_blu.gif\" width=\"10\" height=\"10\">\n";
    }

    echo 
    "</td>
          </tr>
                <tr>
        <td height=\"1\" colspan=\"5\" valign=\"top\" bgcolor=\"BF9BB5\"></td>
        </tr>\n"

    e poi a monte ho ricontrollato tutto, ed è tutto corretto.

    il codice esteso è:

    Codice PHP:
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get"> 
    <table width="650" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td width="650" valign="top">

    <select name="utente" onchange="this.form.submit()"> 
    <option value="">seleziona utente</option> 
    <?php 
    //compila dinamicamente la select 
    while($row mysql_fetch_object($sql2)) { 
        if (
    $row->id_utenti==$_GET[utente]){ $sel="SELECTED";}ELSE{$sel="";}
      echo 
    "<option value=\"$row->id_utenti\" $sel>$row->cognome</option>\n"

    echo 
    "</select>\n"

    //verifica se è stato passato o meno un valore dalla select 
    if(isset($_GET['utente'])) { 

      
    //memorizza il valore passato dalla select (l'id del utente) 
      
    $IDutente $_GET['utente']; 

    //recupera il nome del allievo scelto tramite $IDutente 
      
    $utente mysql_query("SELECT * FROM a_utenti 
                            WHERE id_utenti = '
    $IDutente") or die(mysql_error()); 
       
      
    //recupera tutti i dati relativi all'utente specifico tramite $IDutente
     
    $sql2 mysql_query("SELECT * FROM a_utenti 
                          WHERE id_utenti = '
    $IDutente'") or die(mysql_error()); 

      
    //verifica che ci sia almeno un risultato valido per la query precedente 
      
    if(mysql_num_rows($sql2) >= 1) { 

        
    //stampa i dati relativi all'utente
         
    $row1 mysql_fetch_object($utente); 
        echo 
    "<table width=\"650\" border=\"0\" align=\"center\" cellpadding=\"0\" cellspacing=\"0\">
    <tr><td height=\"12\" colspan=\"5\"></td></tr>
    <tr><td height=\"20\" colspan=\"5\"><span class=\"testo_viola_bold\">Dati dell'utente</span></td></tr>
    <tr><td height=\"1\" bgcolor=\"BF9BB5\" colspan=\"5\"></td></tr>\n"


    echo 
    "<tr>
        <td height=\"41\" width=\"113\"><span class=\"testo_grigio_bold\">email</span></td>
        <td align=\"right\" width=\"162\"><span class=\"testo_grigio_bold\">
    $row1->email</span></td>
        <td width=\"100\"></td>
        <td align=\"left\" width=\"113\"><span class=\"testo_grigio_bold\">sesso</span></td>
        <td align=\"right\" width=\"162\">\n"
    ;

    if (
    $row1['sesso']==1){ 
    echo 
    "<img src=\"../images/menu_spunta_rosa.gif\" width=\"10\" height=\"10\">\n";
    }
    else
    {
    echo 
    "<img src=\"../images/menu_spunta_verde.gif\" width=\"10\" height=\"10\">\n";
    }

    echo 
    "</td>
          </tr>
                <tr>
        <td height=\"1\" colspan=\"5\" valign=\"top\" bgcolor=\"BF9BB5\"></td>
        </tr>\n"
    ;

     echo 
    "</table>\n"
      } else { 
          echo 
    '<span class="testo_viola_bold">non ci sono dati dell'utente</span>'; 
      } 

    ?> 


    </td>
      </tr>
    </table>
    </form>

  5. #5
    Uhm mi pare chiaro che il problema non e' nel codice PHP da te postato, visto che si tratta di una semplice istruzione IF. Gli unici due possibili problemi a monte che mi possono venire in mente sono:

    - hai controllato che il form di inserimento dei dati utente funzioni davvero? magari e' quello che ti inserisce sempre il valore "1";
    - il tipo di dati della colonna "sesso" e' numerico? se questa fosse di tipo stringa, prova a mettere le virgolette nella condizione dell'IF -> if ($row1['sesso'] == "1")

    Facci sapere...

  6. #6
    Originariamente inviato da Darsch2501
    Uhm mi pare chiaro che il problema non e' nel codice PHP da te postato, visto che si tratta di una semplice istruzione IF. Gli unici due possibili problemi a monte che mi possono venire in mente sono:

    - hai controllato che il form di inserimento dei dati utente funzioni davvero? magari e' quello che ti inserisce sempre il valore "1";
    - il tipo di dati della colonna "sesso" e' numerico? se questa fosse di tipo stringa, prova a mettere le virgolette nella condizione dell'IF -> if ($row1['sesso'] == "1")

    Facci sapere...
    funziona tutto, solo l'immagine relativa al sesso non funziona.
    La colonna sesso è un tinyint(1) no NULL predefinito 0

  7. #7
    Utente di HTML.it L'avatar di neida
    Registrato dal
    Feb 2005
    Messaggi
    1,478
    Originariamente inviato da ufficio
    [ ... ]
    Ciao prinz...

    Il problema nasce dal fatto che avendo utilizzato mysql_fetch_object() devi necessariamente richiamare i campi con una sintassi differente da quella utilizzata per il fetch_array(). Quindi $row1['sesso'] == 1 diventa $row1->sesso == 1

  8. #8
    Originariamente inviato da neida
    Ciao prinz...

    Il problema nasce dal fatto che avendo utilizzato mysql_fetch_object() devi necessariamente richiamare i campi con una sintassi differente da quella utilizzata per il fetch_array(). Quindi $row1['sesso'] == 1 diventa $row1->sesso == 1
    GRAZIEEE!!! FUNZIONAAA!!


  9. #9
    Credo dipenda dal fatto che hai caricato la riga dal database come oggetto (con mysql_fetch_object) e quindi il confronto che fai con if ($row1['sesso'] == 1) viene sempre dato per vero...

    EDIT: ops arrivato tardi... meno male cmq che abbiamo trovato l'inghippo

  10. #10

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.