Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    32

    Problemi con un ciclo while

    Ciao a tutti.Ho un problema con un ciclo while...
    La pagina mi fa un controllo sui dei dati inseriti in un form e li mette a confronto con dei dati inseriti in un database.L'unica cosa che mi dà problemi è che mi scrive "ordine accettato" per ogni dato del form...
    A me servirebbe che lo scrivesse solo una volta!
    Qualcuno mi può aiutare??
    Metto qui di seguito il codice che ho scritto:



    <body>



    <%
    Server.Execute("header.asp");
    %>

    <%
    var con = Server.CreateObject("ADODB.Connection");
    con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("informatica.mdb"));
    objRs = Server.CreateObject("ADODB.Recordset");
    objRs.Open ("select * from prodotti",con,3,3);
    %>
    <%
    var n = 0;
    var p=0;
    %>




    <%
    var cookie = String(Request.cookies("cookie"));
    var c = cookie.split(";");

    while (!objRs.EOF)
    {
    if (p==0)
    {
    Response.write("Ordine accettato");
    objRs("qty") = objRs("qty") - c[n];

    }
    if (c[n]>objRs("qty"))
    {
    Response.write("<h1>Ordine non accettato</h1>
    ");
    Response.write ("<h1>Hai ordinato ");
    Response.write (c[n]);
    Response.write (objRs("name"));
    Response.write (" ma noi ne disponiamo soltanto");
    Response.write (objRs("qty"));
    Response.write ("pezzi</h1>");
    p=p+1;
    }

    n++;
    objRs.Movenext ();
    }


    %>

    <%
    objRs.Close();
    con.Close();
    objRs = null;
    con = null;
    %>




    </body>

    </html>

  2. #2
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Lo devi scrivere fuori dal ciclo, prima o dopo.
    Roby

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    32
    Grazie per il tuo suggerimento...
    Ma ora ho un altro problema: mi scrive "ordine accettato" anche se in realtà nn può accettarlo e soto mi scrive che l'ordine nn può essere accettato!

    Ho modificato così il codice:

    <body>



    <%
    Server.Execute("header.asp");
    %>

    <%
    var con = Server.CreateObject("ADODB.Connection");
    con.Open("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" + Server.MapPath("informatica.mdb"));
    objRs = Server.CreateObject("ADODB.Recordset");
    objRs.Open ("select * from prodotti",con,3,3);
    %>

    <%
    var n = 0;
    var p=0;
    %>




    <%
    var cookie = String(Request.cookies("cookie"));
    var c = cookie.split(";");
    if (p==0)
    {
    Response.write("Ordine accettato");
    }
    while (!objRs.EOF)
    {

    if (c[n]>objRs("qty"))
    {
    Response.write("<h1>Ordine non accettato</h1>
    ");
    Response.write ("<h1>Hai ordinato ");
    Response.write (c[n]);
    Response.write (objRs("name"));
    Response.write (" ma noi ne disponiamo soltanto");
    Response.write (objRs("qty"));
    Response.write ("pezzi</h1>");
    p=p+1;
    }
    else{
    objRs("qty") = objRs("qty") - c[n];
    }
    n++;
    objRs.Movenext ();
    }
    %>
    <%
    objRs.Close();
    con.Close();
    objRs = null;
    con = null;
    %>

  4. #4
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Se lo scrivi prima del ciclo lo scriverà sempre, e lo stesso se lo scrivi dopo.
    Devi fare un test della variabile "p" ad esempio.
    Se vale più di 0 vuol dire che entrato almeno una volta nel ramo NON ACCETTATO e quindi scriverai quello ai piedi del riepilogo.

    Roby

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    32
    Ho provato...ma nn ho trovato niente che funzionasse...mi puoi dare qualche altro suggerimento?

  6. #6
    Moderatore di ASP e MS Server L'avatar di Roby_72
    Registrato dal
    Aug 2001
    Messaggi
    19,559
    Non ce ne sono.
    Cosa hai provato?

    Roby

  7. #7
    Utente di HTML.it
    Registrato dal
    May 2006
    Messaggi
    32
    Già...nn ho messo quello che ho provato:

    ho provato

    if(p>0)
    {
    Response.write("oridna accettato");
    }
    else
    {
    Response.write("ordine non accettato");
    }

    scritto sempre fuori dal ciclo.
    Ho provato anche con p<0, e diverso da zero ma mi scrive sempre ordine accettato oppure se l'ordine dovrebbe essere accettato non mi scrive niente!

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 © 2026 vBulletin Solutions, Inc. All rights reserved.