Pagina 2 di 7 primaprima 1 2 3 4 ... ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 61

Hybrid View

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    BUONGIORNO, premesso che sono sicuro di aver scritto una marea di assurdità e per tale ragione sei autorizzato a ridere :-D,
    cmq, FATTO IL FORM e un abbozzo di pagina php

    <form action="http://xxx.xx/listino_spedizioni.php" class="auto-style186" method="post">
    <div class="auto-style197" style="height: 0px">
    <input name="peso" type="number">
    <input name="larghezza" type="number">
    <input name="lunghezza" type="number">
    <input name="altezza" type="number">
    <input name="Cerca" style="width: 112px" type="submit">
    </div>
    </form>


    e questo è il codice della pagina richiamata nella action

    <?php
    $con=mysqli_connect("xxxxx","xxxxx","xxxx","xxxxxx ");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }


    $peso = $_POST['peso']
    $altezza = $_POST['altezza'] ;
    $lunghezza = $_POST['lunghezza'] ;
    $larghezza = $_POST['larghezza']
    $volume = ($altezza * $lunghezza * $larghezza) / 4000 ;


    if (($peso) >= ($volume))




    $result = mysqli_query($con,"SELECT * FROM Listino WHERE Peso='" . $_POST['peso'] . "'");


    echo "<table border='1' bgcolor='#DEDEDE' border-radius='10' align='center' cellspacing='5' cellpadding='5' style='border-collapse: collapse' bordercolor='#053883' width='300' height='23'>";


    while($row = mysqli_fetch_array($result))
    {
    echo "<tr>";
    echo "<th align='right'width='35%'>Costo </th>";
    echo "<td align='left' width='65%'>" . $row['Costo'] . "</td>";
    echo "</tr>";
    }
    echo "</table>";


    else


    $result = mysqli_query($con,"SELECT * FROM Listino WHERE Volume='$volume'");


    echo "<table border='1' bgcolor='#DEDEDE' border-radius='10' align='center' cellspacing='5' cellpadding='5' style='border-collapse: collapse' bordercolor='#053883' width='300' height='23'>";


    while($row = mysqli_fetch_array($result))
    {
    echo "<tr>";
    echo "<th align='right'width='35%'>Costo </th>";
    echo "<td align='left' width='65%'>" . $row['Costo'] . "</td>";
    echo "</tr>";
    }
    echo "</table>";

    mysqli_close($con);
    ?>

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non serve replicare due volte lo stesso codice, se cambia solo il parametro del where della query puoi semplificare così:
    Codice PHP:
    <?php
    $con
    =mysqli_connect("xxxxx","xxxxx","xxxx","xxxxxx ");
    // Check connection
    if (mysqli_connect_errno())
    {
    echo 
    "Failed to connect to MySQL: " mysqli_connect_error();
    }


    $peso $_POST['peso']
    $altezza $_POST['altezza'] ; 
    $lunghezza $_POST['lunghezza'] ; 
    $larghezza $_POST['larghezza']
    $volume = ($altezza $lunghezza $larghezza) / 4000 


    if ((
    $peso) >= ($volume)) {
        
    $result mysqli_query($con,"SELECT * FROM Listino WHERE Peso='" $_POST['peso'] . "'");    
    }
    else {
        
    $result mysqli_query($con,"SELECT * FROM Listino WHERE Volume='$volume'");
    }




    echo 
    "<table border='1' bgcolor='#DEDEDE' border-radius='10' align='center' cellspacing='5' cellpadding='5' style='border-collapse: collapse' bordercolor='#053883' width='300' height='23'>";


    while(
    $row mysqli_fetch_array($result)) {
        echo 
    "<tr>";
        echo 
    "<th align='right'width='35%'>Costo </th>";
        echo 
    "<td align='left' width='65%'>" $row['Costo'] . "</td>";
        echo 
    "</tr>";
    }
    echo 
    "</table>";


    mysqli_close($con);
    ?>
    Dovresti anche controllare di ricevere sempre dei numeri dal form, giusto per sicurezza e per evitare errori non gestiti

    PS: la discussione forse andava in programmazione > php

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    ho messo aperto la discussione in qui perche speravo di programmare il tutto in asp...ora proverò con il codice da te modificato e vediamo un po..per il momento grazie infinite

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    ho creato in un server che permette di inserire db, due tabelle nominate Listino e Listino_volume..Nella prima ho inserito due colonne nominate Peso e Costo e nella seconda tabella ho inserito due colonne nominate Volume e Costo.

    ho modificato le righe
    if (($peso) >= ($volume)) {
    $result = mysqli_query($con,"SELECT * FROM Listino WHERE Peso='" . $_POST['peso'] . "'");
    }
    else {
    $result = mysqli_query($con,"SELECT * FROM Listino_volume WHERE Volume='$volume'");
    }

    ma non mi restituisce valori
    sai dirmi come mai?

  5. #5
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    se Volume e Peso nel DB sono numeri, devi togliere gli apici da intorno alle variabili
    Codice PHP:
    if (($peso) >= ($volume)) {
    $result mysqli_query($con,"SELECT * FROM Listino WHERE Peso=$peso") or die("impossibile eseguire la query: " .mysqli_error($con)); 
    }
    else {
    $result mysqli_query($con,"SELECT * FROM Listino_volume WHERE Volume=$volume") or die("impossibile eseguire la query: " .mysqli_error($con));

    ho aggiunto le segnalazioni di errore se la query fallisce

    Pensiero a voce alta: forse nella select per Peso e Volume devi usare un maggiore uguale, limitando ad un solo risultato la query ordinata per il valore di Peso o Volume. Non credo che il risultato di una moltiplicazione possa essere esattamente uguale a quanto hai nel DB

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    ottimo il pensiero a voce alta...ho modificato il codice della select mettendo un maggiore o uguale

    if (($peso) >= ($volume)) {
    $result = mysqli_query($con,"SELECT * FROM Listino WHERE Peso >=$peso") or die("impossibile eseguire la query: " .mysqli_error($con));
    }
    else {
    $result = mysqli_query($con,"SELECT * FROM Listino_volume WHERE Volume >=$volume") or die("impossibile eseguire la query: " .mysqli_error($con));
    }

    solo che ora mi da questo messaggio di errore


    impossibile eseguire la query: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

  7. #7
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    Qual'è il nome della tabella ? Listino o Listino_volume ?
    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

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    due tabelle nominate Listino e Listino_volume..Nella prima ho inserito due colonne nominate Peso e Costo e nella seconda tabella ho inserito due colonne nominate Volume e Costo in modo da recuperare il valore Costo nella tabella Listino nel caso in cui il peso è maggiore del volume o recuperare il valore Costo nella tabella Listino_volume nel caso in cui il peso è minore del volume

  9. #9
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    E' strano avere un syntax error con cosi poco. Quale query va in errore ?
    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

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2013
    Messaggi
    38
    la prima
    $result = mysqli_query($con,"SELECT * FROM Listino WHERE Peso =$peso") or die("impossibile eseguire la query: " .mysqli_error($con));

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.