Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12

Discussione: Problemi if else

  1. #1

    Problemi if else

    Salve. Vi spiego cosa vorrei fare.
    Io nel database ho una tabella utenti con i campi id, numero, sponsor1 e sponsor2. Quando io sono nella pagina per modificare un utente ho in mio possesso il suo id.
    Vorrei che se sponsor1 e sponsor2 sono maggiori di 0 compaia l'immagine si.png altrimenti compaia l'immagine no.png.

    Io ho usato questo codice:
    codice:
    $id=$_GET['id'];
    //asteclick
    function sponsor1() {$query = "SELECT sponsor1 FROM utenti WHERE id = '$id'";
    
    if($sponsor1>0) {
    echo"[img]si.png[/img]";
    }
    else {
    echo"[img]no.png[/img]";
    }}
    
    function sponsor2() {$query = "SELECT sponsor2 FROM utenti WHERE id = '$id'";
    
    if($sponsor2>0) {
    echo"[img]si.png[/img]";
    }
    else {
    echo"[img]no.png[/img]";
    }}
    Escludendo poi la connessione al db che è nel codice più sopra. Ma purtroppo anche se $sponsor1 è maggiore di 0 me lo da negativo (no.png). Perchè?

  2. #2
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    spero che la esegui la query dopo averla scritta

    $query = "SELECT sponsor1 FROM utenti WHERE id = '$id'";
    mysql_query($query);

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Scrivi la query sql ma non la esegui. E' normale che i valori ti risultino false e quindi non maggiori di 0.

    Devi fare così:

    Codice PHP:
    $id=$_GET['id'];

    //asteclick
    function sponsor()
    {
    $query "SELECT sponsor1, sponsor2 FROM utenti WHERE id = '$id'";
    $result mysql_query($query);
    $row mysql_fetch_row($result);

    if(
    $row['sponsor1'] > && $row['sponsor2'] > 0) {
    return 
    "[img]si.png[/img]";
    }
    else {
    return 
    "[img]no.png[/img]";
    }


    Così facendo l'immagine si.png apparirà solamente se sponsor1 e sponsor2 sono entrambi maggiori di 0, se vuoi che sia sufficiente che solo uno dei due valori sia positivo devi sostituire il && nell'if con un ||

    Ricorda di fare attenzione con le funzioni, che devono avere un return e non un echo.

  4. #4
    Niente da fare. Ora il codice sta cosi ma da sempre i valori a caso.

    codice:
    function sponsor1() {$query = "SELECT sponsor1 FROM utenti WHERE id = '$id'"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_row($result); 
    
    if($row['sponsor1'] > 0) { 
    return "[img]si.png[/img]"; 
    } 
    else { 
    return "[img]no.png[/img]"; 
    } }
    
    function sponsor2() {$query = "SELECT sponsor2 FROM utenti WHERE id = '$id'"; 
    $result = mysql_query($query); 
    $row = mysql_fetch_row($result); 
    
    if($row['sponsor2'] > 0) { 
    return "[img]si.png[/img]"; 
    } 
    else { 
    return "[img]no.png[/img]"; 
    } }
    .


    Dove sponsor 1 nel db per esempio nell'id dell'utente "prova" ha "1" mentre sponsor 2 ha "2" ma compaiono tutti e due no.png.

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Ma perchè eseguire due query su una stessa tabella con inutile spreco di risorse quando puoi utilizzare una sola query?

  6. #6

  7. #7
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    Codice PHP:
    function sponsor() {

    $query "SELECT sponsor1, sponsor2 FROM utenti WHERE id = '$id'"
    $result mysql_query($query); 
    $row mysql_fetch_row($result); 

    if(!empty(
    $row['sponsor1'])){ 
    return 
    "[img]si.png[/img]"
    }else{ 
    return 
    "[img]no.png[/img]"
    }

    if(!empty(
    $row['sponsor2'])){ 
    return 
    "[img]si.png[/img]"
    }else{ 
    return 
    "[img]no.png[/img]"
    }



  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Originariamente inviato da brodik
    Codice PHP:
    function sponsor() {

    $query "SELECT sponsor1, sponsor2 FROM utenti WHERE id = '$id'"
    $result mysql_query($query); 
    $row mysql_fetch_row($result); 

    if(!empty(
    $row['sponsor1'])){ 
    return 
    "[img]si.png[/img]"
    }else{ 
    return 
    "[img]no.png[/img]"
    }

    if(!empty(
    $row['sponsor2'])){ 
    return 
    "[img]si.png[/img]"
    }else{ 
    return 
    "[img]no.png[/img]"
    }


    In realtà questo codice non è del tutto corretto perchè, per come è scritto, php non analizzerà affatto la variabile $row['sponsor2'], dal momento che prenderà per buono il primo return che trova, relativo a sponsor1. Si può risolvere con un array come questo:

    Codice PHP:
    function sponsor() {

    $query "SELECT sponsor1, sponsor2 FROM utenti WHERE id = '$id'"
    $result mysql_query($query); 
    $row mysql_fetch_row($result); 

    if(!empty(
    $row['sponsor1'])){ 
    $sponsor1 "[img]si.png[/img]"
    }else{ 
    $sponsor1 "[img]no.png[/img]"
    }

    if(!empty(
    $row['sponsor2'])){ 
    $sponsor2 "[img]si.png[/img]"
    }else{ 
    $sponsor2 "[img]no.png[/img]"
    }

    return array(
    $sponsor1$sponsor2);



  9. #9
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    si è vero grazie per la correzione..

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2009
    Messaggi
    110
    Siamo qui per offrirci supporto a vicenda, figurati

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.