Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> warunek do wyk. w bazie /problem/
n3Mo
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.07.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował n3Mo 19.07.2005, 10:03:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
n3Mo
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 12.07.2005

Ostrzeżenie: (0%)
-----


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

Ten post edytował n3Mo 19.07.2005, 12:59:11
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:17