Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    Verifica presenza record

    Salve, chiedo scusa perchè la soluzione sembra essere banale, sarà la stanchezza, ma non c'arrivo...
    In una pagina PHP, voglio dare un output in caso ci sia il record, in caso non ci sia, e in caso ci sia ma con cella vuota, e quindi riempirla.
    Il database è uno e piccolo, solo qualche riga e colonna:
    Codice PHP:
    //Connetto al database
    $sql="SELECT * FROM database WHERE colonna = '".$record."'";
    $result=mysql_query($sql);
    if (
    mysql_num_rows($result)==null//funziona
        
    {
        print(
    "<h2>Codice inserito errato</h2>");
        } 
    elseif (
    mysql_num_rows($result) AND //questa è la parte che mi manca)
        
    {
        print(
    "<h2>Codice gi&agrave; utilizzato</h2>");
        }
    else 
    //funziona
        
    {
        
    //Inserisco record
        

    Grazie a chiunque mi aiuta.

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Già fai confusione tra tabella e database. Un database è un contenitore di tabelle. Poi il mysql_num_rows($result)==null non mi piace. Normalmente mysql_num_rows torna un intero. Dimmi in quale occasione ti compare la scritta 'codice inserito errato'.

    Comunque.

    Codice PHP:
    //Connetto al database
    $sql="SELECT * FROM database WHERE colonna = '".$record."'";
    $result=mysql_query($sql);
    if (
    mysql_num_rows($result)==null) {
        print(
    "<h2>Codice inserito errato</h2>");
        } else {
            if (
    mysql_num_rows($result) != 0) {
                 print(
    "<h2>Codice gi&agrave; utilizzato</h2>");
            } else {
                 
    // inserisco
            
    }
        }

    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Quote Originariamente inviata da badaze Visualizza il messaggio
    Già fai confusione tra tabella e database. Un database è un contenitore di tabelle. Poi il mysql_num_rows($result)==null non mi piace. Normalmente mysql_num_rows torna un intero. Dimmi in quale occasione ti compare la scritta 'codice inserito errato'.

    Comunque.

    Codice PHP:
    //Connetto al database
    $sql="SELECT * FROM database WHERE colonna = '".$record."'";
    $result=mysql_query($sql);
    if (
    mysql_num_rows($result)==null) {
        print(
    "<h2>Codice inserito errato</h2>");
        } else {
            if (
    mysql_num_rows($result) != 0) {
                 print(
    "<h2>Codice gi&agrave; utilizzato</h2>");
            } else {
                 
    // inserisco
            
    }
        }

    Grazie innanzitutto per la risposta.
    "Codice inserito errato" me lo da quando la voce non è presente nella tabella, il che è giusto.
    Il risultato ora, scritto così, ha 2 vie: o il record c'è o non c'è, quindi non inserisco.

    Perchè dici che quel null non va bene?
    Come predefinito quella colonna ha valore nullo.

  4. #4
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    mysql_num_row(), se ben ricordo, restituisce il numero complessivo dei records che rispondono alla query (0, 1 oppure n) , non i valori. quindi non puoi verificare se in quel numero intero c'è un null.
    l'impostazine del codice dovrebbe essere rivista...

  5. #5
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    mysql_query e cosi via è ormai obsoleto quindi non mi ricordo bene dovrebbe essere più o meno così:
    Codice PHP:
    $numrows mysql_num_rows($query);
        if (
    $numrows!=0)
        {
            while (
    $rows mysql_fetch_array($query))
            {
                    
    $value $rows['colonna'];     
            }
            if(
    $value == null)
                {
    //dichiarazione}
                    
    elseif($value)
                           { 
    //altra dichiarazione; 
                           
    }
                            else {
    //ultima dichiarazione se necessaria;
                            


  6. #6
    Quote Originariamente inviata da ttcc Visualizza il messaggio
    mysql_query e cosi via è ormai obsoleto quindi non mi ricordo bene dovrebbe essere più o meno così:
    Codice PHP:
    $numrows mysql_num_rows($query);
        if (
    $numrows!=0)
        {
            while (
    $rows mysql_fetch_array($query))
            {
                    
    $value $rows['colonna'];     
            }
            if(
    $value == null)
                {
    //dichiarazione}
                    
    elseif($value)
                           { 
    //altra dichiarazione; 
                           
    }
                            else {
    //ultima dichiarazione se necessaria;
                            

    Grazie anche a te per l'interesse nell'aiutarmi.
    Sono un autodidatta, perciò non sono aggiornato sulle funzioni corrette...
    ...sbaglio pure le basi: ad esempio io le parentesi le metto nel modo sbagliato, lo so, ma mi sembra più logico distinguerle mettendole a capo, forse perchè avevo iniziato con Visual Basic.NET utilizzando Visual Studio.

    Comunque questo tipo di codice, non mi funziona...
    Diciamo che il nome, quello non presente nella tabella, non riporta nulla, credo vadi in loop durante il while; gli altri 2 danno risultati diversi tra loro: 1 e 2 col codice qui sotto.
    Dimmi se l'ho interpretato nel giusto modo:
    Codice PHP:
    $sql="SELECT * FROM tabella WHERE colonna = '".$nome."'";
    $result=mysql_query($sql);
    $numrows mysql_num_rows($result);
        if (
    $numrows!=0)
            {
            while (
    $rows mysql_fetch_array($result))
                {
                
    $value $rows['colonna'];     
                }
            if(
    $value == null)
                {
                print(
    "1");
                }
                elseif(
    $value)
                    {
                    print(
    "2");
                    }
            else
                {
                print(
    "3");
                }
            } 
    Te come faresti a fare questo controllo (partendo da 0)?

  7. #7
    Utente di HTML.it L'avatar di ttcc
    Registrato dal
    Dec 2008
    Messaggi
    489
    Codice PHP:
    //connessione al db

    $query="SELECT * FROM tabella WHERE colonna= '".$nome."'";
    $sql=mysql_query($query);
    $numrows mysql_num_rows($sql);

        if (
    $numrows!=0)
        {
            while (
    $rows mysql_fetch_array($sql))
            {
                    
    $value $rows['due'];     
            }
            if(
    $value == null)
                {
                    echo 
    "null";
                }
                    elseif(
    $value)
                    { 
                    echo 
    "value";
                    }
                     else 
                          {
                             echo 
    "form";
                            }
        } 
    l'ho testato e funziona....

  8. #8
    Quote Originariamente inviata da ttcc Visualizza il messaggio
    Codice PHP:
    //connessione al db

    $query="SELECT * FROM tabella WHERE colonna= '".$nome."'";
    $sql=mysql_query($query);
    $numrows mysql_num_rows($sql);

        if (
    $numrows!=0)
        {
            while (
    $rows mysql_fetch_array($sql))
            {
                    
    $value $rows['due'];     
            }
            if(
    $value == null)
                {
                    echo 
    "null";
                }
                    elseif(
    $value)
                    { 
                    echo 
    "value";
                    }
                     else 
                          {
                             echo 
    "form";
                            }
        } 
    l'ho testato e funziona....
    Scusa, mi trovo nella stessa situazione di prima:
    Il valore, quello non presente nella tabella, non da nessun esito, nessuna delle 3 voci.
    Ho trovato l'errore, stava in una parentesi messa nel posto sbagliato, ricopio il tuo codice con la correzione:
    Codice PHP:
    //connessione al db

    $query="SELECT * FROM tabella WHERE colonna= '".$nome."'";
    $sql=mysql_query($query);
    $numrows mysql_num_rows($sql);

    if (
    $numrows!=0)
         {
         while (
    $rows mysql_fetch_array($sql))
              {
              
    $value $rows['due'];     
              }
         if(
    $value == null)
              {
              echo 
    "null";
              }
         elseif(
    $value)
              { 
              echo 
    "value";
              }
         }     
    //Qui chiudo il primo if, non alla fine.
    else 
         {
         echo 
    "form";
         } 
    Ah, dimenticavo il grazie!
    Mi avete risolto un problema...
    Ultima modifica di FioreFix; 25-09-2016 a 02:16 Motivo: Risolto, per non creare un nuovo post.

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.