• User Attivo

    problema estrazione dati tramite ricerca id

    Salve a tutti,

    Il mio problema è il seguente. Non riesco ad estrapolare tramitre la ricerca dell'id e visualizzare il numero id corrispondente alla persona. Ho provato svariati modi ma il risultato è semkpre lo stesso sono giorni che sto combattendop senza ottenere un risultato e la scadenza si avvicina. Vorrei consegnare il programma entro la settimana se fosse possibile. Posto qua la tabella creata è un programma semplicissmo ma mi sta dando delle grande.

    La tabella si chiama provadati

    [PHP]

    create table provadati (

    idnome INT(11) NOT NULL AUTO_INCREMENT,
    nome VARCHAR(80) NOT NULL,
    cognome VARCHAR(80) NOT NULL,
    username VARCHAR(80) NOT NULL,

    PRIMARY KEY (idnome)
    );
    [/PHP]

    invece la parte riguardante la ricerca si chiama:

    ricercadati.php

    [PHP]

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Ricerca dati prova</title>
    <style type="text/css">
    #intestazione{
    width:100%;
    height:100px;
    position:absolute;
    top:0px;left:0px;
    text-align: center;
    }

    #divhr {
    position:absolute;
    top: 100px;
    font-family:Comic Sans MS;
    }

    #messaggio, divhr{
    /position:absolute;/
    top:300px;
    font-family:Comic Sans MS;
    color:#ff0000;
    }
    </style>
    </head>
    <body>
    <div id = "intestazione">
    <h1>Gestione ricerca dati prova</h1>
    <hr> </hr>
    </div>

        <div id = "divhr">
            <form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
            <p> <p> <p> <p>
              
                <!--Ricerca nominativo x nome: <input type="text" name="nome"  maxlength="50" size ="51">-->
                
                Ricerca nominativo x id: <input type="text" name="idnome"  maxlength="3" size ="4">
                
            </p> </p></p> </p>
      
            <div align ="center">
                <input type="submit" name="reg" value="Avvio ricerca" />
            </div>
            </form>    
        </div>     
    </body>
    

    </html>

    <?php

    #require_once("connettimysqli.php");
    require_once("connetti.php");
    require_once("data.php");

    //qui leggi i dati dal db (se non sono già letti dai "require"//

    if(empty($_POST)){ 
    

    $idnome = trim ($_POST['idnome']);
    $cognome = trim ($_POST['cognome']);
    $nome = trim ($_POST['nome']);

    $username = trim ($_POST['username']);
    // ottengo i risultati dal database

    $query = "SELECT * FROM provadati WHERE idnome = ".$idnome.";

    while($read=mysql_fetch_array($query)){
    $num_rec = mysql_num_rows($query);
    if ($num_rec == 0) {

            echo "Nessun nominativo trovato in archivio";
        } else {
            
         echo  $read['idnome'];
    
           echo "<p> <p>";
             echo $read['nome'];
           echo "</p> </p>";
        
           echo "<p> <p>";
             echo $read['cognome'];
           echo "</p> </p>";
           
                      echo "<p> <p>";
             echo $read['username'];
           echo "</p> </p>";
    

    }

    }
    }

    ?>

    </body>
    </html>

    [/PHP]

    Qeusta è la parte che ho fatto. Mi sapreste qualcuno aiutare per favore ???? Grazie spero in una vostra risposta.


  • User Attivo

    A $query = "SELECT * FROM provadati WHERE idnome = ".$idnome."; manca un " finale oppure semplicemente ".$idnome; ```
    $query = "SELECT * FROM provadati WHERE idnome = ".$idnome."";

    L'estrazione te la riscrivo al volo, fai una prova
    
    

    $result = mysql_query ($query) or die ("Errore in $query: ".mysql_error());
    if(mysql_num_rows($result)>0){
    while ($row=mysql_fetch_array($result))
    {

       echo  $row['idnome'];
    
           echo "<p> <p>";
             echo $row['nome'];
           echo "</p> </p>";
        
           echo "<p> <p>";
             echo $row['cognome'];
           echo "</p> </p>";
           
                      echo "<p> <p>";
             echo $row['username'];
           echo "</p> </p>";
    

    }

    }

    
    Spero sia una pagina non aperta al pubblico, dato che prendere dati in POST o GET senza controllare il contenuto prima di eseguire la query è molto rischioso.

  • User Attivo

    Ciao samuelenet,

    Grazie delle dritte e di avermi risposto. I dati risiedono sul mio nas (synology e nessun altro ci può accedeere all'esterno). Ovviamente quello è un semplice programmino di prova "ricercadati" il mio vero progetto è quello di poter catalogare con un programmino tramite php che legga il contenuto dell'intero dvd e delle sue sottocartelle, memorizzarle in un db e poi applicarli un codice a barre in modo tale che sparando tale codice (che sarebbe l'id del dvd) mi dovrebbe dare l'intera scheda ossia l'intero contenuto delle cartelle e sottocartelle. Hai qualche suggerimento in merito alla lettura e memorizzazione dei dvd ???? Ogni aiuto è gradito. Grazie.


  • User Attivo

    Ciao samuelenet,

    Ho fatto le modifiche da te consigliatomi ma il risultato che ottengo è sempre lo stess. Non mi visualizza una cippa lippa. Invece se tolgo la clausola "WHERE idnome = ".$idnome."" mi visualizza tutti i redcord presnti. Sono disperato enon so come risolvere il problema. Questo quanto ho fatto.

    [PHP]

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Ricerca dati prova</title>
    <style type="text/css">
    #intestazione{
    width:100%;
    height:100px;
    position:absolute;
    top:0px;left:0px;
    text-align: center;
    }

    #divhr {
    position:absolute;
    top: 100px;
    font-family:Comic Sans MS;
    }

    #messaggio, divhr{
    /position:absolute;/
    top:300px;
    font-family:Comic Sans MS;
    color:#ff0000;
    }
    </style>
    </head>
    <body>
    <div id = "intestazione">
    <h1>Gestione ricerca dati prova</h1>
    <hr> </hr>
    </div>

        <div id = "divhr">
            <form method="POST" action="<?php $_SERVER['PHP_SELF'] ?>">
            <p> <p> <p> <p>
              
                <!--Ricerca nominativo x nome: <input type="text" name="nome"  maxlength="50" size ="51">-->
                
                Ricerca nominativo x id: <input type="text" name="idnome"  maxlength="3" size ="4">
                
            </p> </p></p> </p>
      
            <div align ="center">
                <input type="submit" name="reg" value="Avvio ricerca" />
            </div>
            </form>    
        </div>     
    </body>
    

    </html>

    <?php

    #require_once("connettimysqli.php");
    require_once("connetti.php");
    require_once("data.php");

    //qui leggi i dati dal db (se non sono già letti dai "require"//

    if(empty($_POST)){ 
    

    $idnome = trim ($_POST['idnome']);
    $cognome = trim ($_POST['cognome']);
    $nome = trim ($_POST['nome']);

    $username = trim ($_POST['username']);
    // ottengo i risultati dal database

    $query = "SELECT * FROM provadati WHERE idnome = ".$idnome."";
    echo '<div id = "messaggio>"';

    $result = mysql_query ($query) or die ("Errore in $query: ".mysql_error());
    if(mysql_num_rows($result)>0){
    while ($row=mysql_fetch_array($result))
    {

       echo  $row['idnome'];
    
           echo "<p> <p>";
             echo $row['nome'];
           echo "</p> </p>";
        
           echo "<p> <p>";
             echo $row['cognome'];
           echo "</p> </p>";
           
                      echo "<p> <p>";
             echo $row['username'];
           echo "</p> </p>";
    

    }

    }
    }
    echo "</div>";
    ?>

    </body>
    </html>

    [/PHP]

    ah una cosa eventualmente si può inserire un messaggio di esito negativo della ricerca effettuata ???? Grazie.


  • User Attivo

    Scusami ma non avevo notato

    if(empty($_POST)){ 
    
    

    devi mettere

    if(!empty($_POST)){ 
    
    

    Per inserire un messaggio se non trova nessun record

    
    if(mysql_num_rows($result)>0){
      while ($row=mysql_fetch_array($result))
      {
        ....
      }
    }else{
     print 'Nessun record trovato';
    }
    
    
    

  • User Attivo

    Ciao samuelenet,

    Ora provo e ti dico grazie della tua preziosa collaborazione. Hai skype ???? Grandioso, ora si che va come deve andare. Solo una cosa ma si può visualizzare l'id ??? Mi sembra che non visualizzi.....


  • User Attivo

    Ciao samuelenet,

    Risolto tutto anche la posizione della visualizzazione dati. Sono contentissimo. Grazie. Spero che mi puo9i dare una mano nella lettura e memorizzazione dati. Grazie.


  • User Attivo

    Puo aggiungerlo agli altri dati estratti ```
    echo $row['idnome'];

    Se hai bisogno skype:samuelenet

  • User Attivo

    Era già inserito ma mancava qualche Tag di chiusura e le doppie virgole. Dopo ti aggiungo grazie.