Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów
Newsletter w php i MySQL - mysql_query - Wersja do druku

+- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl)
+-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www)
+--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych)
+--- Wątek: Newsletter w php i MySQL - mysql_query (/thread-newsletter-w-php-i-mysql-mysql-query)

Strony: 1 2


Newsletter w php i MySQL - mysql_query - Moody - 20-07-2012

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?


RE: Newsletter w php i MySQL - mysql_query - Pedro84 - 21-07-2012

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().


RE: Newsletter w php i MySQL - mysql_query - Moody - 21-07-2012

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?


RE: Newsletter w php i MySQL - mysql_query - Pedro84 - 21-07-2012

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


RE: Newsletter w php i MySQL - mysql_query - Moody - 21-07-2012

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.


RE: Newsletter w php i MySQL - mysql_query - Pedro84 - 21-07-2012

Poczytaj o typach zmiennych, bo ich nie łapiesz.

To tak jakbyś pytał dlaczego funkcja x() zwraca false, a nie null.


RE: Newsletter w php i MySQL - mysql_query - Moody - 22-07-2012

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 Wink Dzięki.


RE: Newsletter w php i MySQL - mysql_query - Pedro84 - 23-07-2012

No przestań, od tego jest forum Smile

Manual Twoim najlepszym przyjacielem, książki często są.. hmm.. przeterminowane.


RE: Newsletter w php i MySQL - mysql_query - Moody - 24-07-2012

Żeby już nie zakładać osobnego tematu. W takim razie jaką książkę byś polecił taka co jest aktualna Smile ?


RE: Newsletter w php i MySQL - mysql_query - Pedro84 - 24-07-2012

(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 Smile ?
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ę.