Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]korzystanie z tych samych zmiennych w kilku miejscach
Forum PHP.pl > Forum > Przedszkole
Anthracis
Witam,
Dopiero zaczynam zabawę z PHP, próbowałem sam rozwiązać ten problem, ale niestety nie udało mi się.

Tworzę aplikację w Adobe Flash CS4 w AS2, są tam formularze, z których dane przesyłam do bazy MySql za pomocą PHP. Z wpisywaniem danych nie ma najmniejszego problemu, wszystko działa tak jak powinno. Mam natomiast problem z wyciąganiem danych z bazy. Chodzi docelowo o logowanie użytkownika i weryfikację hasła.

Dodając użytkownika do bazy jego imię umieszczane jest pod zmienną $imie2. Jeśli przesyłam zapytanie do bazy danych o podanie imienia i nazwiska dla użytkownika o imieniu $imie2, to nie dostaje odpowiedzi zwrotnej. Problemem jest zapewne źle sformułowane zapytanie.

  1. $tresc_zapytania = 'SELECT `imie`, `nazwisko` FROM `users`WHERE `imie`= '$imie2'';

jeśli wpiszę stałą a nie zmienną:
  1. $tresc_zapytania = 'SELECT `imie`, `nazwisko` FROM `users`WHERE `imie`= "Kasia"';

To dostaje dobrą odpowiedź. Poniżej zamieszczam cały kod:
  1. <?
  2. // serwer
  3. $mysql_server = "localhost";
  4. $mysql_admin = "root";
  5. $mysql_pass = "krasnal";
  6. $mysql_db = "sklep2";
  7. // nawiazujemy polaczenie z serwerem MySQL
  8. @mysql_connect($mysql_server, $mysql_admin, $mysql_pass)
  9. or die('Brak polaczenia z serwerem MySQL.');
  10. // tworzymy baze danych
  11. mysql_create_db($mysql_db);
  12. // laczymy sie z baza danych
  13. @mysql_select_db($mysql_db)
  14. or die('Blad wyboru bazy danych.');
  15. // Stowrzenie bazy, o ile jeszcze takiej nie ma
  16. $zapytanie = 'CREATE TABLE users (id int NOT NULL AUTO_INCREMENT,imie char(50),nazwisko char(50),mail char(50),telefon char(50),ulica char(50),kod char(50),miasto char(50),haslo char(50), PRIMARY KEY(id))';
  17. $idzapytania = mysql_query($zapytanie);
  18. if ($funkcja == 1) {
  19. $zapytanir = "INSERT INTO `users` (`id`, `imie`, `nazwisko`, `mail`, `telefon`, `ulica`, `kod`, `miasto`, `haslo` ) VALUES ('', '$imie2', '$nazwisko2', '$mail2', '$telefon2', '$ulica2', '$kod2', '$miasto2', '$haslo2')";
  20. $idzapytanig = mysql_query($zapytanir);
  21. }
  22. if ($funkcja == 2) {
  23. $tresc_zapytania = 'SELECT `imie`, `nazwisko` FROM `users`WHERE `imie`= '$imie2'';
  24. $zapytanie = mysql_query($tresc_zapytania);
  25. $ilewynikow =mysql_num_rows($zapytanie);
  26. $f=0;
  27. while ($wiersz = mysql_fetch_row($zapytanie)) {
  28.  
  29. $f+=1;
  30. $c.= "imie: $wiersz[0] nazwisko:$wiersz[1] <br>";
  31. print "&php_imie_$f= $wiersz[0]";
  32. print "&php_x_$f= $wiersz[1]";
  33. }
  34. print "&php_wyniki= $ilewynikow + $tresc_zapytania";
  35. print "&php_tekst= $c";
  36. }
  37. ?>
kamil_lk
A spróbuj tak smile.gif

  1. $tresc_zapytania = 'SELECT `imie`, `nazwisko` FROM `users` WHERE `imie`='.$imie2;
Wazniak96
  1. $tresc_zapytania = "SELECT `imie`, `nazwisko` FROM `users` WHERE `imie`='$imie2'";

Jezeli dajesz zmienne w zapytaniu to zapytanie umieszczaj w cudzyslowiu, a nie apostrofach. Tez kiedys się nad tym głowilem tongue.gif
Anthracis
Ten sposób działa:
  1. $tresc_zapytania = "SELECT `imie`, `nazwisko` FROM `users` WHERE `imie`='$imie2'";


Wiedziałem, że będzie jakiś problem ze składnią. Wielkie dzięki Wazniak96
Posio
@UP.
Tak ten sposób działa ale jest bardzo nieoptymalny ponieważ php sprawdza cały ciąg pod względem zmiennych które mają zostać w nim umieszczone.

Dobry sposób podał kolega kamil_lk

  1. $tresc_zapytania = 'SELECT `imie`, `nazwisko` FROM `users` WHERE `imie`='.$imie2;



btw. funkcje których używasz do obsługi bazy niedługo wyjdą z użycia, proponuje przerzucić się na PDO.
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.