Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: łączenie z MySql przez skrypt php
Forum PHP.pl > Forum > Przedszkole
mcfly
  1. <?php
  2. function lacz_bd()
  3. {
  4.         $wynik = mysql_pconnect('localhost');
  5.         if (!$wynik)
  6.         return false;
  7.         if(!mysql_select_db('uzytkownik'))
  8.         return false;
  9.  
  10.         return $wynik;
  11. }
  12.  
  13. function rejestruj($uzytkownik, $haslo, $email, $dat, $miejscowosc)
  14.   {
  15.         $stan_points=0;
  16.         $stan_cash=200;
  17.         $lacz = lacz_bd();
  18.         if(!$lacz)
  19.         return 'Polaczenie z baza MYSQL nie moglo zostac nawiazanie - prosze sprobowac pozniej.';
  20.  
  21.         $wynik = mysql_query("select * from uzytkownicy where nick='$uzytkownik'");
  22.         if (!$wynik){
  23.         return 'Zapytanie nieudane';
  24.         }
  25.         if (mysql_num_rows($wynik)>0) {
  26.         $uzytkownik_zajety=true;
  27.         return 'Nazwa uzytkownika zajeta. Prosze wybrac inna';
  28.         }
  29.         $wynik=mysql_query("insert into uzytkownicy values
  30.                           ('$uzytkownik', password('$haslo'), '$miejscowosc', '$email', '$dat', '$stan_cash', '$stan_points')");
  31.                           if(!$wynik)
  32.                           return 'Rejestracja chwilowo niemozliwa. Prosze sprobowac pozniej.';
  33.  
  34.         return true;
  35.  
  36.  
  37. }
  38. ?>



  1. <?php
  2.  
  3. if ($warunek==true) {
  4.         echo "All ok";
  5.         $wynik_rej = rejestruj($uzytkownik, $haslo, $email, $dat, $miejscowosc);
  6.         if ($wynik_rej==true){
  7.                 $HTTP_SESSION_VARS['uzytk_ok'] = $uzytkownik;
  8.                 echo 'Rejestracja zakonczona pomyslnie';
  9.         }
  10.         }
  11. else{
  12.         echo "Zle<BR>";
  13. include('rejestracja.php');
  14. }
  15. ?>


Witam,
Druga czesc wywoluje funkcje z pierwszjec czesci... mniejsza o to co maja robic. Celem glownym jest polaczenie z baza danych i wpakowanie do niej nowego uzytkownika (lub nie). Mam Apache (win) php 4.3 i Mysql... i wszystko cacy serwej wyspiuje komunikat ze wszystko sie udalo itp... tylko ze problem jest taki ze w bazie danych przeze mnie wywolanej czyli "uzytkownik" w tabeli "uzytkownicy" nie pojawia sie nowy wpis...

Moje pytanie zatem brzmi jak sprawdzic z czym polaczyl sie php i gdzie te dane dodał , ostatecznie przeciez nie wyswietla komunikatu o bledzie. Durgie p[ytanie : jak to zrobic azeby laczyl sie z wlasciwa baza danych ? smile.gif
pozdrawiam
i dzieki za pomoc
revyag
Może połączenie nie jest dobrze nawiązywane.
Połącz się tak:
  1. <?php
  2. mysql_pconnect('localhost','uzytkownik','haslo');
  3. ?>

Daj na początku skryptu error_reporting(E_ALL);, i jak wywołujesz polecenia do obsługi mysql dawaj po nich mysql_error(), może w ten sposób coś się wyjaśni.
nospor
Funkcja rejestruj() zwraca ci komunikat o błędzie lub logiczne true. Ty jendak źle sprawdzasz potem warunek. uzywasz: $wynik_rej == true co powoduje, że za kazdym razem bedziesz mial warunke spelniony.
1) $wynik_rej='jakis tekst'. Jest to true gdy nie porownujesz typu.
2) $wynik_rej= true; to tez jest true.

musisz porónywac tez typ: ===

pozatym nawet jesli by ci zwrocilo blad to ty go nie wyswietlasz. poprawiam:

  1. <?php
  2.  
  3. //....
  4.  if ($wynik_rej === true){
  5.                 $HTTP_SESSION_VARS['uzytk_ok'] = $uzytkownik;
  6.                 echo 'Rejestracja zakonczona pomyslnie';
  7.         }
  8. else 
  9.    echo $wynik_rej;
  10. //....
  11.  
  12. ?>

pozatym dodawaj do komunikatów mysql_error() zeby zobaczyc co dokladnie nie tak

ps: jesli nie wiesz o co mi chodzilo z === i == to zrób se prosty test:
  1. <?php
  2.  
  3. $error = 'zle';
  4. if ($error == true)
  5.    echo " == ok";
  6. else 
  7.    echo ' == nie ok';
  8.  
  9. echo '<br />';
  10. if ($error === true)
  11.    echo " === ok";
  12. else 
  13.    echo ' === nie ok';
  14.  
  15.  
  16. ?>

i poczytaj se o tych porównaniach

ps2: i staraj nie zjadać się liter w temacie. poprawiam
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.