Dodaj do ulubionych

Problem z mysql i php

IP: *.internetdsl.tpnet.pl 18.05.04, 11:30
Cy jest ktoś w stanie podac mi powód nieprawidłowego działania tego skryptu
php mającego za zadanie dodawanie nowych rekordów do bazy danych?
<?php
if ($send=='wykonaj')
{
mysql_connect ("","","");
mysql_select_db (oprogramowanie);
$zapytanie = "INSERT INTO program (nazwa_prog,opis,wersja_id) values
('$nazwa_prog','$opis','$wersja_id')";
$wykonaj = mysql_query ($zapytanie);
echo
"<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnienie formularza !";
}
else
{
echo
"<form method=\"get\" action=\"dodaj.php\">
<div align=\"center\">
<center>
<table border=\"1\" width=\"50%\" bordercolorlight=\"#000000\" cellspacing=\"0
\" cellpadding=\"0\">
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">nazwa programu</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input
type=\"text\" name=\"nazwa_prog\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">opis</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input
type=\"text\" name=\"opis\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"50%\"><font size=\"2\" face=\"Verdana\">numer wersji</font></td>
<td width=\"50%\" align=\"center\"><font size=\"2\" face=\"Verdana\"><input
type=\"text\" name=\"wersja_id\" size=\"20\"></font></td>
</tr>
<tr>
<td width=\"100%\" colspan=\"2\">
<p align=\"center\">
<input type=\"submit\" value=\"dodaj\" name=\"send\">
<input type=\"reset\" value=\"Kasuj\" name=\"B2\"></p>
</td>
</tr>
</table>
</center>
</div>
</form>";
}
?>
Obserwuj wątek
    • da.killa Re: Problem z mysql i php 18.05.04, 12:05
      Nie działał, bo $send nigdy nie przyjmowała wartości "wykonaj" - bo niby skąd?
      Teraz dostaje - z ukrytego pola formularza.

      Wprowadziłem przy okazji kilka zmian w reszcie. Przede wszystkim zrezygnuj z
      bezpośredniego odwoływania do zmiennych. Zamiast tego używaj tablic $_GET,
      $_POST, itd.

      Po drugie, za kod HTML w tym przykładzie powinieneć oberwać - śmietnik jakich
      mało! Troszeczkę go przeczyściłem, ale przydało by się bardziej - ale to da się
      zrobić oczywiście dopiero z cała stroną.

      Po trzecie, gdy masz większy blok HTML, to nie warto przepuszczać go przez PHP.
      Znacznie wydajniej jest wyjść z trybu PHP na chwilę a potem do niego wrócić. No
      i mniej roboty :)

      A następnym razem jak coś takiego Ci nie zadziała, to po prostu na początku
      skryptu wsadź sprawdzanie zawartości zmiennej. echo $_GET['send']; od razu
      powiedziałoby Ci, że nie nadajesz zmiennej wartości.

      <?php
      if ($_GET['send']=='wykonaj') {

      mysql_connect ("","","");
      mysql_select_db (oprogramowanie);

      $nazwa_prog = $_GET['nazwa_prog'];
      $opis = $_GET['opis'];
      $wersja_id = $_GET['wersja_id'];

      $zapytanie = "INSERT INTO program (nazwa_prog,opis,wersja_id) values
      ('$nazwa_prog','$opis','$wersja_id')";
      //$wykonaj = mysql_query ($zapytanie);
      echo $zapytanie."<BR>Dane dodane prawidłowo ! Dziękujemy za wypełnienie
      formularza !";

      } else {

      ?>

      <form method="get" action="<?php echo $PHP_SELF ?>">
      <table border="1" width="50%" cellspacing="0" cellpadding="0" align="center"
      style="font-family: verdana, sans-serif; font-size: 12px; text-align: center;">
      <tr>
      <td width="50%">
      nazwa programu
      </td>

      <td>
      <input type="text" name="nazwa_prog" size="20">
      </td>
      </tr>
      <tr>
      <td>
      opis
      </td>
      <td">
      <input type="text" name="opis" size="20">
      </td>
      </tr>
      <tr>
      <td>
      numer wersji
      </td>
      <td>
      <input type="text" name="wersja_id" size="20">
      </td>
      </tr>
      <tr>
      <td colspan="2">
      <input type="hidden" name="send" value="wykonaj">
      <input type="reset" value="Kasuj" name="B2">
      <input type="Submit" value="Wyślij">
      </td>
      </tr>
      </table>
      </form>

      <?php
      }
      ?>


      Pozdrawiam

      da.killa
      • da.killa Re: Problem z mysql i php 18.05.04, 12:12
        aha - się nie przejmuj tym zakomentowanym poleceniem wklejenia danych do bazy i
        doczepionym wyświetlaniem zapytania. To oczywiście w celu sprawdzenia
        poprawności działania.


        da.killa
        • Gość: markus Re: Problem z mysql i php IP: *.internetdsl.tpnet.pl 18.05.04, 13:03
          serdeczne dzięki w tej chwili właśnie udało mi się wszystko poskładac do kupy,
          i rzeczywiście działa bez najmniejszych zarzutów.
      • Gość: markus Re: Problem z mysql i php IP: *.internetdsl.tpnet.pl 18.05.04, 12:19
        zgadza się o porządku to w tym nie było mowy, tylko jeszcze jedno pytanko:
        w tej chwili po uruchomieniu skryptu dowiaduje sie że nie ma określonego pliku.
        dlaczego $wykonaj = mysql_query ($zapytanie); dałes jako komentaż?

Nie masz jeszcze konta? Zarejestruj się


Nakarm Pajacyka