Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]WHERE .. AND ...
Forum PHP.pl > Forum > Przedszkole
fallingone
Dlaczego w zapytaniach bezpośrednich do MySQL'a mozna stosowac WHERE ... AND ... a przez php tylko jak się oddzieli przecinkami?? Z tego, co pamiętam to w 4 nie było tego problemu.
mike
Podaj przykład bo nie mam zielonego pojęcia o co Ci chodzi.
Bo zarówno w PHP jak i w SQL zapytania składa się tak samo. W SQL po prostu je pisząc a w PHP składając ze stringów. Rezultat jest ten sam.
JoShiMa
Cytat(fallingone @ 20.06.2008, 10:03:00 ) *
a przez php tylko jak się oddzieli przecinkami??

Jak to przecinakmi questionmark.gif blinksmiley.gif
fallingone
z tymi przecnikami to przejęzyczenie:D Moze inaczej, co tutaj jest źle napisane:

$query = "SELECT * FROM `users` WHERE nick='$login' AND haslo='$haslo'";
$result2 = @mysql_query ($query);

if ($result2)
{ \\zalogowany
}
mike
Złe jest to że traktujesz zmienną $result2 jako zmienną logiczną a to zmienna typu resource.
Przez to, że tak robisz PHP rzutuje to na zmienną logiczną i zawsze wychodzi true przez co warunek logiczny w if jest zawsze spełniony.

Poczytaj sobie najpierw co zwraca funkcja mysql_query() i co się z tym robi.
JoShiMa
To nie przecinki tylko apostrofy i trzeba nimi otaczać dane jeśli wpisujesz je do pól w bazie, które mają format inny niż numeryczny. O ile się nie mylę nazwa tablicy nie musi być podawana w apostrofach.
mike
Aaa i wywal małpę z kodu. One tylko zaciemniają i ogłupiają tongue.gif

~JoShiMa nazwa tablicy nie jest ujęta w apostrofy tylko w odwrócone apostrofy i nie zawsze są one zbędne.
Dlatego warto z nich korzystać.
marcio
  1. <?php
  2. $query = "SELECT * FROM `users` WHERE nick='$login' AND haslo='$haslo'";
  3. $result2 = @mysql_query ($query);
  4.  
  5. if ($result2)
  6. { zalogowany
  7. }
  8. ?>

A moze cos w ten desen jak juz cos:
  1. <?php
  2. $query = ('SELECT * FROM users WHERE nick = "'.$login.'" AND haslo = "'.$haslo.'"');
  3. $result2 = mysql_query($query) or die(mysql_error());
  4.  
  5. if (mysql_num_rows($result2) > 0) {
  6.  zalogowany
  7. }
  8. ?>
JoShiMa
Cytat(mike @ 20.06.2008, 10:41:21 ) *
~JoShiMa nazwa tablicy nie jest ujęta w apostrofy tylko w odwrócone apostrofy i nie zawsze są one zbędne.
Dlatego warto z nich korzystać.


~mike co do odwróconych apostrofów (znaczy nazwy tego znaczka) to oczywiście masz rację. Co do reszty to małe sprostowanie. Pisząc nie musi miałam na myśli to, że ich brak nie jest błędem składniowym i sądzę, że tu przyznasz mi rację. Za to ich obecność jest przydatna jeśli nazwa tabeli nie jest statycznie wpisana w kod lecz jest dynamiczna. odwrócone apostrofy zwiększają wtedy bezpieczeństwo i co do tego nawet ja nie mam wątpliwości cool.gif

A piszą to wszystko nie po to, żeby dyskutować, bo nie ma o czym w zasadzie, ale po to, żeby autor wątku i inni czytający mieli w tej kwestii jasność.
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.