Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: warunek do wyk. w bazie /problem/
Forum PHP.pl > Forum > Przedszkole
n3Mo
mam cuś takiego w pliczku php:
  1. <?php
  2.         if (strlen($kbezp_nr_fakt)<1)
  3.         { 
  4.          $blad++;
  5.          echo &#092;"<span style=\"color:red;\">Brak nazwy firmy lub podana jest błędnie</span><br />\";
  6.         } 
  7.         else 
  8.         {
  9.          if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  10.           {
  11.            if (mysql_select_db($mysql_baza)) 
  12.             {
  13.              $wynik=mysql_query(&#092;"SELECT * FROM $mysql_tabela WHERE kbezp_nz_fir Like '%$kbezp_nz_fir%' AND kbezp_nz_fakt Like '%$kbezp_nr_fakt%' AND kbezp_lp_fakt Like '%$kbezp_lp_fakt%'\");
  14.             } 
  15.            else echo &#092;"Nie można połączyć się z bazą\";
  16.            mysql_close($baza);
  17.           }
  18.          else 
  19.           echo &#092;"Nie można połączyć się z serwerem MySQL\";
  20.           if (mysql_num_rows($wynik)<>0) 
  21.            { 
  22.             $blad++;
  23.             echo &#092;"<span style=\"color:red;\">Podany numer faktury oraz lp faktury występuje już w bazie </span><br />\";
  24.            }
  25.         }
  26. ?>

nie mam pewności że warunek jest spełniony prawidłowo...
założenie: gdy pola formularza o zmiennych $kbezp_nz_fir, $kbezp_nr_fakt, $kbezp_lp_fakt występują w bazie ma po prostu wywalić błąd "Podany numer faktury oraz lp faktury występuje już w bazie"

w takiej wersj jak mam teraz dodaje wpis do bazy danych ale niestety nie spełnia warunku :/ mało tego wywala komunikat:
Kod
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in c:\usr\krasnal\www\koszty\add.kbezp.php on line 88


jakieś sugestie ?! snitch.gif

pozdrawiam
n3Mo
nospor
ty te :if (mysql_num_rows($wynik)<>0) powinieneś dać po tym jak wykonasz zapytanie, anie tam gdzie $wynik nie jest inicjowane;

pozatym skoro dostajesz ten error to nawet do bazy ci się nie polączył, gdyż wywalasz to gdy nie ma połączenia
n3Mo
no to tak dla uzupełnienia... na początku całego skryptu jest:
  1. <?php
  2.  
  3. include(&#092;"cfg.ini.php\");
  4. include(&#092;"inc.tit.php\");
  5.  
  6. $mysql_tabela = &#092;"kbezp\";
  7. ?>


zawartość pliku cfg.ini.php to:
  1. <?php
  2.  // host bazy mysql
  3. $mysql_host = &#092;"localhost\";
  4.  // login do bazy mysql
  5. $mysql_login = &#092;"root\";
  6.  // haslo do bazy mysql
  7. $mysql_haslo = &#092;"krasnal\";
  8.  // nazwa bazy
  9. $mysql_baza = &#092;"pbr\";
  10. ?>

czyt wszystkie domyśle wartości w Krasnalu


Kod
--
-- Baza danych: `pbr`
--
--
-- Struktura tabeli dla  `kbezp`
--

CREATE TABLE `kbezp` (
 `kbezp_lp` int(11) NOT NULL auto_increment,
 `kbezp_nz_fir` varchar(50) NOT NULL default '',
 `kbezp_nr_fakt` varchar(20) NOT NULL default '',
 `kbezp_lp_fakt` int(5) NOT NULL default '0',
 `kbezp_nazwa_prod` varchar(50) NOT NULL default '',
 `kbezp_il` int(5) NOT NULL default '0',
 `kbezp_jm` varchar(10) NOT NULL default '',
 `kbezp_jedn_netto` int(5) NOT NULL default '0',
 `kbezp_kw_netto` int(10) NOT NULL default '0',
 `kbezp_kod` varchar(15) NOT NULL default '',
 `kbezp_data` date NOT NULL default '0000-00-00',
 PRIMARY KEY  (`kbezp_lp`)
)


a i nie patrzeć na typy danych bo nie tutaj problem jest winksmiley.jpg

EDIT
a zresztą... bardzo mi zależy na odpwoiedzi więc udostępniam cały kod tego pliku
  1. <? 
  2. include(&#092;"cfg.ini.php\");
  3. include(&#092;"inc.tit.php\");
  4.  
  5. $mysql_tabela = &#092;"kbezp\";
  6. ?>
  7.  
  8. <body><center>
  9. <table width=\"750\" align=\"center\" height=\"100%\">
  10.  <tr><td>
  11.  
  12.     <table width=\"100%\">
  13.      <tr><td class=\"naglowek\">
  14.        <? 
  15.         include(&#092;"inc.nag.php\");
  16.        ?>
  17.       </td></tr>
  18.     </table>
  19.     
  20.   <table width=\"100%\">
  21.    <tr>
  22.     <td width=\"20%\" class=\"td\">
  23.     </td>
  24.  
  25.  
  26.   <table width=\"100%\">
  27.    <tr><td class=\"menu\">
  28.     <?
  29.      include(&#092;"inc.men.php\");
  30.     ?>
  31.    </td></tr>
  32.   </table>
  33.  
  34.  
  35.      <table width=\"100%\">
  36.      <?
  37.       echo <<<KONIEC
  38.       <tr width=\"100%\">
  39.        <td class=\"tytul\">Koszty >> Dodaj</td>
  40.       </tr>
  41.       <tr>
  42.        <td class=\"komorka2\">
  43. KONIEC;      $opcja = trim($_REQUEST[&#092;"opcja\"]);
  44.       
  45.       if ($opcja==\"test\"
  46.        {
  47.        
  48. // sprawdzenie danych i dodanie ich do bazy
  49.        
  50.         $kbezp_nz_fir = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_nz_fir\"])), ENT_QUOTES);
  51.         $kbezp_nz_fakt = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_nz_fakt\"])), ENT_QUOTES);
  52.         $kbezp_lp_fakt = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_lp_fakt\"])), ENT_QUOTES);
  53.         $kbezp_nazwa_prod = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_nazwa_prod\"])), ENT_QUOTES);
  54.         $kbezp_il = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_il\"])), ENT_QUOTES);
  55.         $kbezp_jm = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_jm\"])), ENT_QUOTES);
  56.         $kbezp_jedn_netto = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_jedn_netto\"])), ENT_QUOTES);
  57.         $kbezp_kw_netto = htmlspecialchars(stripslashes(trim($_POST[\"kbezp_kw_netto\"])), ENT_QUOTES);
  58.         
  59. // sprawdzanie pola nazwa firmy
  60.         if (!eregi(\"^[a-zA-Z0-9_.ąćęłńóśźżĄĆŁŃÓŚŹŻ]\",$kbezp_nz_fir))
  61.         { 
  62.          $blad++;
  63.          echo \"<span style=\"color:red;\">Nazwa firmy podana nieprawidłowo</span><br />\";
  64.         }
  65.  
  66. // sprawdzanie numeru faktury i lp faktury
  67.         if (strlen($kbezp_nr_fakt)<1)
  68.         { 
  69.          $blad++;
  70.          echo \"<span style=\"color:red;\">Brak nazwy firmy lub podana jest błędnie</span><br />\";
  71.         } 
  72.         else 
  73.         {
  74.          if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  75.           {
  76.            if (mysql_select_db($mysql_baza)) 
  77.             {
  78.              $wynik=mysql_query(\"SELECT * FROM $mysql_tabela WHERE kbezp_nz_fir Like '%$kbezp_nz_fir%' AND kbezp_nz_fakt Like '%$kbezp_nr_fakt%' AND kbezp_lp_fakt Like '%$kbezp_lp_fakt%'\");
  79.              if (mysql_num_rows($wynik)<>0) 
  80.               { 
  81.                $blad++;
  82.                echo \"<span style=\"color:red;\">Podany numer faktury oraz lp faktury występuje już w bazie </span><br />\";
  83.               }
  84.             } 
  85.            else echo \"Nie można połączyć się z bazą\";
  86.            mysql_close($baza);
  87.           }
  88.          else 
  89.           echo \"Nie można połączyć się z serwerem MySQL\";
  90.         }
  91. // sprawdzanie pola lp faktury
  92.         if (!eregi(\"^[0-9]\",$kbezp_lp_fakt))
  93.         { 
  94.          $blad++;
  95.          echo \"<span style=\"color:red;\">Liczba porządkowa podana nieprawidłowo</span><br />\";
  96.         }
  97.  
  98. // sprawdzanie pola nazwa produktu
  99.         if (!eregi(\"^[a-zA-Z0-9_.ąćęłńóśźżĄĆŁŃÓŚŹŻ]\",$kbezp_nazwa_prod))
  100.         { 
  101.          $blad++;
  102.          echo \"<span style=\"color:red;\">Nazwa produktu podana nieprawidłowo</span><br />\";
  103.         }
  104. // sprawdzanie pola ilość
  105.         if (!eregi(\"^[0-9]\",$kbezp_il))
  106.         { 
  107.          $blad++;
  108.          echo \"<span style=\"color:red;\">Ilość podana nieprawidłowo lub użyto nieprawidłowych znaków</span><br />\";
  109.         }
  110.  
  111. // sprawdzanie pola jednostka miary
  112.         if (!eregi(\"^[a-z.ąćęłńóśźżĄĆŁŃÓŚŹŻ]\",$kbezp_jm))
  113.         { 
  114.          $blad++;
  115.          echo \"<span style=\"color:red;\">Jednostka miary podana nieprawidłowo</span><br />\";
  116.         }
  117.  
  118. // sprawdzanie pola cena jednostkowa netto
  119.         if (!eregi(\"^[0-9_.]\",$kbezp_jedn_netto))
  120.         { 
  121.          $blad++;
  122.          echo \"<span style=\"color:red;\">Cena jednostkowa NETTO podana nieprawidłowo</span><br />\";
  123.         }
  124.  
  125. // sprawdzanie pola kwota netto
  126. //        if (!eregi(\"^[0-9_.]\",$kbezp_kw_netto))
  127. //        { 
  128. //         $blad++;
  129. //         echo \"<span style=\"color:red;\">Kwota NETTO podana nieprawidłowo</span><br />\";
  130. //        }
  131.  
  132. // sprawdzanie pola kod
  133.         if (!eregi(\"^[a-z.ąćęłńóśźżĄĆŁŃÓŚŹŻ]\",$kbezp_kod))
  134.         { 
  135.          $blad++;
  136.          echo \"<span style=\"color:red;\">Kod podany nieprawidłowo</span><br />\";
  137.         }
  138.  
  139.         if ($blad==0) 
  140.         {
  141.          $kbezp_data = date(\"Y-m-d\");
  142.          $kbezp_kw_netto = ($kbezp_il*$kbezp_jedn_netto);
  143.          
  144.          if ($baza = mysql_connect($mysql_host, $mysql_login, $mysql_haslo)) 
  145.          {
  146.           if (mysql_select_db($mysql_baza)) 
  147.           {
  148.            $wynik = mysql_query(\"INSERT INTO $mysql_tabela VALUES('$kbezp_lp', '$kbezp_nz_fir', '$kbezp_nr_fakt', '$kbezp_lp_fakt', '$kbezp_nazwa_prod', '$kbezp_il', '$kbezp_jm', '$kbezp_jedn_netto', '$kbezp_kw_netto', '$kbezp_kod', '$kbezp_data')\");
  149.           }
  150.           else
  151.            echo \"Nie można połączyć się z bazą\";
  152.            mysql_close($baza);
  153.          }
  154.          else
  155.           echo \"Nie można połączyć się z serwerem MySQL\";
  156.         }
  157.        } 
  158.        else $opcja=\"\";
  159.       
  160.        
  161. if ($opcja==\"\"
  162. {
  163.        
  164. // dodawanie danych do bazy
  165.  
  166.  echo \"<form action=\"add.kbezp.php\" method=\"post\" name=\"add.kbezp\" />\";
  167.  echo \"<input type=\"hidden\" name=\"opcja\" value=\"test\" />\";
  168.  echo \"<table>\";
  169.  echo \"<tr>\";
  170.  echo \"<td colspan=\"2\" class=\"tytul\"><b>Koszt jednostkowy budów >> Dodaj</b></td>\";
  171.  echo \"</tr>\";
  172.  echo \"<tr>\";
  173.  echo \"<td>Nazwa firmy:*</td>\";
  174.  echo \"<td><input type=\"text\" size=\"30\" name=\"kbezp_nz_fir\" value=\"$kbezp_nz_fir\" /></td>\";
  175.  echo \"</tr>\";
  176.  echo \"<tr>\";
  177.  echo \"<td>Numer faktury:*</td>\";
  178.  echo \"<td><input type=\"text\" size=\"20\" name=\"kbezp_nr_fakt\" value=\"$kbezp_nr_fakt\" /></td>\";
  179.  echo \"</tr>\";
  180.  echo \"<tr>\";
  181.  echo \"<td>LP faktury:*</td>\";
  182.  echo \"<td><input type=\"text\" size=\"10\" name=\"kbezp_lp_fakt\" value=\"$kbezp_lp_fakt\" /></td>\";
  183.  echo \"</tr>\";
  184.  echo \"<tr>\";
  185.  echo \"<td>Nazwa produktu:*</td>\";
  186.  echo \"<td><input type=\"text\" name=\"kbezp_nazwa_prod\" value=\"$kbezp_nazwa_prod\" /></td>\";
  187.  echo \"</tr>\";
  188.  echo \"<tr>\";
  189.  echo \"<td>Ilość:*</td>\";
  190.  echo \"<td><input type=\"text\" name=\"kbezp_il\" value=\"$kbezp_il\" /></td>\";
  191.  echo \"</tr>\";
  192.  echo \"<tr>\";
  193.  
  194.  echo \"<tr>\";
  195.  echo \"<td>Jednostka miary:*</td>\";
  196.  
  197. mysql_connect(\"$mysql_host\"\"$mysql_login\"\"$mysql_haslo\") or
  198.    die(\"Could not connect: \" . mysql_error());
  199. mysql_select_db(\"$mysql_baza\");
  200. $table = mysql_query(\"SELECT kjm_nazwa FROM kjm\");
  201.  echo \"<td>\";
  202.  echo \"<select name=\"kbezp_jm\" value=\"$kbezp_jm\" />\";
  203.  while ($row = mysql_fetch_array($table)) {
  204.  echo (\"<option>\".$row[0].\"</option />\");
  205. }
  206.  echo \"</select>\";
  207.  echo \"</td>\";
  208.  echo \"</tr>\";
  209.  
  210.  echo \"<tr>\";
  211.  echo \"<td>Cena jednostkowa Netto:*</td>\";
  212.  echo \"<td><input type=\"text\" name=\"kbezp_jedn_netto\" value=\"$kbezp_jedn_netto\" /></td>\";
  213.  echo \"</tr>\";
  214. // echo \"<tr>\";
  215. // echo \"<td>Kwota Netto:*</td>\";
  216. // echo \"<td><input type=\"text\" name=\"kbezp_kw_netto\" value=\"$kbezp_kw_netto\" /></td>\";
  217. // echo \"</tr>\";
  218.  echo \"<tr>\";
  219.  echo \"<td>Kod:*</td>\";
  220.  echo \"<td><input type=\"text\" name=\"kbezp_kod\" value=\"$kbezp_kod\" /></td>\";
  221.  echo \"</tr>\";
  222.  echo \"<tr>\";
  223.  echo \"<td>&nbsp;</td>\";
  224.  echo \"<td>\";
  225.  echo \"<input type=\"submit\" value=\" Dodaj wpis!\" /></td>\";
  226.  echo \"</tr>\";
  227.  echo \"</table>\";
  228.  echo \"</form>\";
  229. }
  230.  
  231.         ?>
  232.       </td>
  233.      </tr>
  234.      <tr>
  235.       <td class=\"stopka\">
  236.        <?
  237.         include(\"inc.stp.php\");
  238.        ?>
  239.       </td>
  240.      </tr>
  241.     </table>
  242.    </td>
  243.   </tr>
  244.  </table>
  245. </center>
  246. </body>
  247. </html>


pozdrawiam
n3Mo

Dodane:
no to piszę od razu... mój błąd smile.gif tak to jest już jak się pisze wsio na szybciocha biggrin.gif biggrin.gif

błąd odwołuje się do lini 13 oraz 14.
Jest:
Cytat
<?php
$wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE kbezp_nz_fir Like '%$kbezp_nz_fir%' AND kbezp_nz_fakt Like '%$kbezp_nr_fakt%' AND kbezp_lp_fakt Like '%$kbezp_lp_fakt%'");
?>


a powinno być:
Cytat
<?php
$wynik=mysql_query("SELECT * FROM $mysql_tabela WHERE kbezp_nz_fir Like '$kbezp_nz_fir' AND kbezp_nr_fakt Like '$kbezp_nr_fakt' AND kbezp_lp_fakt Like '$kbezp_lp_fakt'");
?>


innych błędów nie ma... tylko typowa literówka... zostawiam dla potomnych biggrin.gif
a dla jasności błąd Warning: mysql_num_rows(): odwoływał się tylko i wyłącznie do tej literówki w powyższym kodzie...

usunięte przy okazji zostały znaki "%" bo jak każdy wie odnoszą się one do uzupełnienia danego ciągu, np: ciąg znaków
- "%akt" wyszukuje w bazie, np. fakt, pakt, cośakt
- "%akt%" wyszukuje w bazie, np. faktura, itp.
mam nadzieję że wsio wiadome o co chodzi smile.gif

pozdrawiam
n3Mo

BTW: temat uważam za zamknięty smile.gif
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.