Ocena wątku:
- 0 głosów - średnia: 0
- 1
- 2
- 3
- 4
- 5
Newsletter w php i MySQL - mysql_query
|
Liczba postów: 169
Liczba wątków: 25
Dołączył: 23-10-2011
Reputacja:
7
Kod PHP: <?php $host = "localhost"; $username = "root"; $password = "....."; $database = "test"; $connect = @mysql_connect($host, $username, $password) or die (@mysql_error()); $selectdb = @mysql_select_db($database, $connect) or die (@mysql_error());
if(isset($_POST['submit'])){ $email = $_POST['email']; if(mysql_query("SELECT email FROM newsletters WHERE email = '$email'")){ echo "Podany email ".$email." istnieje w newsleterze"; } else{ if(empty($email)){ echo "Podaj swój adres email!"; } else{ @mysql_query("INSERT INTO newsletters SET email='$email'"); echo "Dziękujemy za zapisanie się w newsletterze"; } } }
?>
Mam taki kodzik. Chciałem się dowiedzieć dokładnie jak działa mysql_query();
Przeszukałem manual itd. ,ale nadal nie wiem za bardzo.
Dokładnie chodzi o ten moment:
Kod PHP: if(mysql_query("SELECT email FROM newsletters WHERE email = '$email'")){ echo "Podany email ".$email." istnieje w newsleterze";
Wszystko ładnie działa, ale zacząłem sobie testować i zamieniłem to na taki kod:
Kod PHP: if(mysql_query("SELECT email FROM newsletters WHERE email = '$email'")){ echo mysql_query("SELECT email FROM newsletters WHERE email = '$email'"));
Jeśli tak zrobię to echo drukuje mi "Resource id #5"
Może mi ktoś wytłumaczyć dlaczego zwraca coś takiego i w takim razie jeśli to zwraca Resource id #5 to jak if na to reaguje, że zwraca true i wykonuje blok instrukcji?
Pomogłem? To daj plusa
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Słabo czytałeś ten manual:
Cytat: For SELECT, SHOW, DESCRIBE, EXPLAIN and other statements returning resultset, mysql_query() returns a resource on success, or FALSE on error.
For other type of SQL statements, INSERT, UPDATE, DELETE, DROP, etc, mysql_query() returns TRUE on success or FALSE on error.
The returned result resource should be passed to mysql_fetch_array(), and other functions for dealing with result tables, to access the returned data.
Use mysql_num_rows() to find out how many rows were returned for a SELECT statement or mysql_affected_rows() to find out how many rows were affected by a DELETE, INSERT, REPLACE, or UPDATE statement.
mysql_query() will also fail and return FALSE if the user does not have permission to access the table(s) referenced by the query.
Patrz zwłaszcza pierwszy i drugi akapit.
(20-07-2012, 19:50)Moody napisał(a): Jeśli tak zrobię to echo drukuje mi "Resource id #5" No a co ma drukować?
(20-07-2012, 19:50)Moody napisał(a): Może mi ktoś wytłumaczyć dlaczego zwraca coś takiego i w takim razie jeśli to zwraca Resource id #5 to jak if na to reaguje, że zwraca true i wykonuje blok instrukcji? Bo czytacie ten manual i nie rozumiecie. Funkcja ta zwróci Ci true w przypadku jeśli zapytanie zostanie WYKONANE, a false w innym razie. Rezultat nie ma najmniejszego znaczenia. Ona Ci, w przypadku wykonania zapytania, zwraca resource, po którym to musisz przejechać funkcją mysql_fetch_assoc() czy też mysql_fetch_array().
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 169
Liczba wątków: 25
Dołączył: 23-10-2011
Reputacja:
7
No dobra, a od czego zależy to co mi wyskoczyło. Czemu resource id #5 a nie np. 2? Chodzi mi o to skąd to się bierze?
Pomogłem? To daj plusa
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Nie rozumiem pytania.
Funkcja zwraca identyfikator zasobów (w tym przypadku SQL), a co ma wg Ciebie zwrócić?
Czytaj:
http://www.php.net/manual/pl/language.types.resource.php
http://www.php.net/manual/pl/function.get-resource-type.php
http://www.php.net/manual/pl/function.is-resource.php
http://php.net/manual/pl/resource.php
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 169
Liczba wątków: 25
Dołączył: 23-10-2011
Reputacja:
7
No dlaczego resource id# 5, a nie np. 3
I jak ten zasób wygląda, skoro inne funkcje potrafią go przetworzyć na to by w końcu wyświetlić właściwe dane.
Pomogłem? To daj plusa
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
Poczytaj o typach zmiennych, bo ich nie łapiesz.
To tak jakbyś pytał dlaczego funkcja x() zwraca false, a nie null.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 169
Liczba wątków: 25
Dołączył: 23-10-2011
Reputacja:
7
No planuje kupić książkę i się tego poduczyć, ale zastanawiałem się robiąc newsletter to poki nie mam ksiazki to chcialem tutaj zapytac.
Mam nadzieje, że to nie był problem  Dzięki.
Pomogłem? To daj plusa
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
No przestań, od tego jest forum
Manual Twoim najlepszym przyjacielem, książki często są.. hmm.. przeterminowane.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
Liczba postów: 169
Liczba wątków: 25
Dołączył: 23-10-2011
Reputacja:
7
Żeby już nie zakładać osobnego tematu. W takim razie jaką książkę byś polecił taka co jest aktualna  ?
Pomogłem? To daj plusa
Liczba postów: 2,587
Liczba wątków: 2
Dołączył: 03-04-2010
Reputacja:
58
(24-07-2012, 16:32)Moody napisał(a): Żeby już nie zakładać osobnego tematu. W takim razie jaką książkę byś polecił taka co jest aktualna ? A jakbyś określił swoją znajomość PHP? OOP? Wtedy Ci coś poszukam. Tylko, że mogę Ci polecić coś anglojęzycznego - polskich książek programistycznych nie czytuję.
Dobre samopoczucie w tym tygodniu sponsoruje cytat:
Cytat:Mogę tylko tylko na prawo i lewo ale na środek nie mogę.
|
Podobne wątki… |
Wątek: |
Autor |
Odpowiedzi: |
Wyświetleń: |
Ostatni post |
|
Jak sprawdzić czy adres www znajduje sie w bazie mysql? |
jarekcda |
8 |
9,062 |
13-05-2017, 01:02
Ostatni post: miketodson255
|
|
Optymalizacja MySQL-a |
tomek_00 |
1 |
3,933 |
01-09-2013, 13:31
Ostatni post: hieroshima
|
|
[MySQL] Struktura bazy dla słownika |
msx83 |
2 |
3,934 |
24-08-2013, 16:26
Ostatni post: msx83
|
|
Komunikacja PHP z MySQL na serwerze |
pawstrze |
5 |
6,461 |
16-07-2013, 15:58
Ostatni post: Engine
|
|
[MySQL] wyszukiwarka problem |
darlowiak |
3 |
3,566 |
13-06-2013, 12:58
Ostatni post: darlowiak
|
Użytkownicy przeglądający ten wątek: 1 gości
|
|
Sponsorzy i przyjaciele
|
|
|