Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] formularz + php
Forum PHP.pl > Forum > Przedszkole
98256
Witam wszystkich smile.gif,
mam trywialny problem, otóż potrzebuję przeneiść informację z formularza do bazy MySQL, a w zasadzie to zmienić dane w bazie przez wyslanie przes skrypt informacji, ale zacznijmy po koleji smile.gif

baza MySQL:
tabelka instalacje:
id
id_klienta
koszt
roz_faktura (tu sa zapisywane "1" dla nie rozliczonej faktury oraz "2" dla rozliczonej)

tabelka rfaktur:
id (1 , 2)
nazwa (faktura nierozliczona , faktura rozliczona)

teraz przejdzmy do skryptow:

plik 'klienci.php'
(..) fragment ktory wyswietla szczegoly o danym kliencie, przejdzmy do szczegolow rozliczonej faktury:

  1. <?php if($v['Koszt_instalacji']!=""){ ?>
  2.       <tr><th>Koszt instalacji:</th><td ><?=$v['koszt'];?> zł</td></tr>
  3. <?php } ?>
  4.                        
  5. <?php if($v['roz_faktura']!=""){ ?>
  6.    <tr><th>Faktura montażowa:</th>
  7.       <td > <?
  8.                 switch ($v['roz_faktura']) {
  9.                    case 1:
  10.                       echo "<form action='?id=klienci&a=updateRozFaktura' method='post'>
  11.                                   <input type='checkbox' name='roz_faktura' value='2' />Wystawiona FVAT
  12.                                   <input type='submit' value='Rozlicz'>
  13.                                </form> ";
  14.                     break;
  15.                     case 2:
  16.                       echo "Rozliczono";
  17.                     break;
  18.                 }
  19.               ?>
  20.      </td></tr>
  21. <?php } ?>


jak widac action jest do <form action='?id=klienci&a=updateRozFaktura' method='post'> wiec zagladnijmy tam:

  1. <?php
  2. if($_GET['a'] == 'updateRozFaktura'){
  3.    
  4.    if($klienci->updateRozFaktura($_POST)){
  5.        echo " <div>Faktura została rozliczona! </div>";
  6.    }
  7.    else
  8.        echo "<div>Nie można zapisac ... Blad bazy danych ... :|</div>";
  9. }
  10. ?>


tak jak pokazuje funkcja: $klienci->updateRozFaktura rowniez zagladniemy do pliku 'klienci.class.php'

  1. <?php
  2. function updateRozFaktura($kid){
  3.        
  4.        $sql = "update Instalacje set roz_faktura='2' where Id_Klienta='{$kid}'";
  5.        
  6.        if($this->db->sql_query($sql)) return true;
  7.        else return false;    
  8.    }
  9. ?>


nom i cos tu zle zrobilem, prawdopodobnie z przeniesieniem rozpoznawania klienta po 'kid'

i teraz pytanie jak to zrobic azeby:
jezeli w bazie jest w polu roz_faktura bedzie 1 to w szczegolach klienta powinien sie ukazac maly formularz w celu rozliczenia faktury, a jezeli bedzie 2 to poprostu bedzie wyswietlane 'rozliczono' - jak narazie to dziala
tylko tu jest gdzies blad przy przenoszeniu informacji miedzy formularzem a baza sql.
Prosze o sugestje i pomoc.

pozdrawiam Grzesiek...
webasek
W formularzu nigdzie nie przekazujesz zmiennej odpowiedzialnej za id klienta musi by po zatym w funkcji nie $_POST a $_POST['id_klienta']. Jesli dobrze zrozumiałem w czym tkwi błąd
98256
ok, rozumiem wiec czy moge to zrobic w ten sposob?
poniewaz caly formularz zawiera sie w takim if'ie:

  1. if($_GET['a']=='details'){
  2.  
  3.    ?>
  4.    <h2 style="text-align:center;">Dane Abonenta - SZCZEGÓŁY</h2>
  5.    <div><input type="button" onclick="document.location.href='?id=klienci&a=update&kid=<?=$_GET['kid'];?>'" value="EDIT"></div>
  6.  
  7.    <?php
  8.        if(is_array($v = $klienci->getDataDetails($_GET['kid']))){
  9.    ?>
  10.            <div style="margin:auto 20px;">
  11.                <fieldset style="border: 1px solid black;" >
  12.                    <legend> Dane osobowe </legend>
  13.                    <table class="tdane">
  14.  
  15.                    <?php if($v['Nazwisko']!=""){ ?>
  16.                    <tr><th>Nazwisko:</th><td colspan="3"><?=$v['Nazwisko'];?></td></tr>
  17.                    <?php } ?>
  18.  
  19.                    <?php if($v['Imie']!=""){ ?>
  20.                    <tr><th>Imię:</th><td colspan="3"><?=$v['Imie'];?></td></tr>
  21.                                        
  22.                                          (.....)
  23.                                        
  24.                                           <?php if($v['roz_faktura']!=""){ ?>
  25.                            <tr><th>Faktura montażowa:</th>
  26.                                <td > <?
  27.                                        
  28.                                        switch ($v['roz_faktura']) {
  29.                                        case 1:
  30.                                            echo "<form action='?id=klienci&a=updateRozFaktura&kid=".$_GET['kid']." method='post'>
  31.                                                        <input type='checkbox' name='roz_faktura' value='2' />Wystawiona FVAT
  32.                                                        <input type='submit' value='Rozlicz'>
  33.                                                    </form> ";
  34.                                            break;
  35.                                        case 2:
  36.                                            echo "Rozliczono";
  37.                                            break;
  38.                                        }
  39.                                        ?>
  40.                                 </td></tr>
  41.                        <?php } ?>


nie wiem czy dobrze mysle :/

nom, niby działa, ale czy nie ma w tym jakis bledow? ;/ czy to dobrze generalnie napisalem ?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.