Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP] Ustawianie daty, sprawdzanie rekordów.
GoldeNx3
post 16.04.2011, 21:23:14
Post #1





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Witam. Mam do Was pytanie. Jak mogę sprawdzić, czy istnieje już rekord o ID = X. Oraz, czy w danym polu np "pole" jest litera "b". ?

Oraz Jak ustawiam datę, to jak do niej mogę dodać 30 dni?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
sadistic_son
post 16.04.2011, 21:54:30
Post #2





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM tabela WHERE id=123 AND pole LIKE '%b%'
Data w formacie unioxowym:
  1. $date=strtotime("+ 30 days"); //oraz przerobienie na normalny format
  2. $date=date("Y/m/d",$date);


Ten post edytował sadistic_son 16.04.2011, 21:56:22


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
GoldeNx3
post 16.04.2011, 22:07:18
Post #3





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


Czemu jest w tym zapytnaiu:

  1. '%b%'
Czyli chodzi mi o "%"
Go to the top of the page
+Quote Post
Ulysess
post 16.04.2011, 22:08:27
Post #4





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


a jesli chodzi o spr id to:
  1. SELECT * FROM `tabela` WHERE `id` = '.$id.'

następnie używasz funkcji mysql_num_rows ktora zwroci ci wartosc albo 0 albo 1 (0 nie ma rekordu o takim id , 1 jest)
Go to the top of the page
+Quote Post
konole
post 16.04.2011, 22:08:40
Post #5





Grupa: Zarejestrowani
Postów: 275
Pomógł: 32
Dołączył: 21.03.2006
Skąd: Warszawa

Ostrzeżenie: (20%)
X----


% oznacza, że przed (lub po) może pojawić się ciąg znaków.

LIKE %b - wyłapie ci tylko 345335436gdfgb
LIKE b% - wyłapie ci tylko B2345zczxvxcg
LIKE %b% - wyłapie ci wszystko, co zawiera b w sobie (534btyer)

Ten post edytował konole 16.04.2011, 22:10:04
Go to the top of the page
+Quote Post
Ulysess
post 16.04.2011, 22:09:24
Post #6





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


%b% czyli przed i po może być dowolny ciąg znaków
Go to the top of the page
+Quote Post
GoldeNx3
post 16.04.2011, 22:13:25
Post #7





Grupa: Zarejestrowani
Postów: 228
Pomógł: 1
Dołączył: 24.12.2010

Ostrzeżenie: (0%)
-----


  1. SELECT * FROM `tabela` WHERE `id` = '.$id.'


A nie moe po prostu:

  1. SELECT * FROM `tabela` WHERE `id` = '$id'


Bez kropek? ; dd

A jak np wyszukać, czy znajdują się liczby a i b?

  1. WHERE liczby LIKE '%b%z%'


?


@Edit:

I jak zrobić warunek, że jeżeli w bazie w polu nazwa znajduje się litera c to ma wyświetlić "Jest litera C" A jeżeli nie ma, to ma pisać "Brak". W polu może występować dowolny string.

Ten post edytował GoldeNx3 17.04.2011, 00:48:40
Go to the top of the page
+Quote Post
sadistic_son
post 17.04.2011, 06:29:30
Post #8





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(Ulysess @ 16.04.2011, 23:08:27 ) *
następnie używasz funkcji mysql_num_rows ktora zwroci ci wartosc albo 0 albo 1 (0 nie ma rekordu o takim id , 1 jest)
To nie do końca prawda. Zwróci 0 jeśli nie ma rekordu ale jeśli jest lub są to zwróci ich ilość.

Cytat(GoldeNx3 @ 16.04.2011, 23:13:25 ) *
  1. SELECT * FROM `tabela` WHERE `id` = '.$id.'


A nie moe po prostu:

  1. SELECT * FROM `tabela` WHERE `id` = '$id'


Bez kropek? ; dd
To zależy od tego jakich użyjesz cudzysłowów do zawarcia całego stringu. To są podstawy podstaw:
  1. $b='ccc';
  2. $a='string $b'; //echo $a - > wyswietli string $b
  3. $a="string $b"; //echo $a -> zwroci string ccc
  4. $a='string'.$b; //zwroci string ccc
  5. $a="string".$b; //zwroci string ccc - choć ten zapis jest bez sensu
  6.  
  7. //tak więc zapytanie może wyglądać tak:
  8. $query="SELECT * FROM tabela WHERE pole='$wartosc'";
  9. //lub
  10. $query="SELECT * FROM tabela WHERE pole='".$wartosc."'";
  11. //lub pozostałe powyżej wytłumaczone kombinacje.
A kropki służą do łączenia stringów.
  1. $a='asd';
  2. $b='fgh';
  3. $c='jkl';
  4. echo "$a$b$c"; //wyswietli to samo co
  5. echo $a.$b.$c;


Cytat(GoldeNx3 @ 16.04.2011, 23:13:25 ) *
I jak zrobić warunek, że jeżeli w bazie w polu nazwa znajduje się litera c to ma wyświetlić "Jest litera C" A jeżeli nie ma, to ma pisać "Brak". W polu może występować dowolny string.
  1. $sql="SELECT * FROM tabela WHERE nazwa ILIKE '%C%'"; // ILIKE jest case-sensitive więc znajdzie C a nie c
  2. $res=mysql_query($sql);
  3. $num=mysql_num_rows($res);
  4. if($num>0){ echo 'jest C'; }else{ echo 'Nie ma C'; }


Cytat(GoldeNx3 @ 16.04.2011, 23:13:25 ) *
A jak np wyszukać, czy znajdują się liczby a i b?
Kolego sprawdź sobie. Co Ty? Programujesz poprzez forum? Wpisujesz tutaj kod a my jako serwer zwracamy Ci wynik? Masz pewnie phpMyAdmina więc wpisz sobie te 4 zapytania, zobacz co zwrócą i wydedukuj.
  1. SELECT * FROM TABLE WHERE pole LIKE '%a%b%';
  2. SELECT * FROM TABLE WHERE pole LIKE '%b%a%';
  3. SELECT * FROM TABLE WHERE pole LIKE '%a%' AND pole LIKE '%b%';
  4. SELECT * FROM TABLE WHERE pole LIKE '%a%' OR pole LIKE '%b%';


Ten post edytował sadistic_son 17.04.2011, 07:45:35


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post
Ulysess
post 17.04.2011, 08:18:08
Post #9





Grupa: Zarejestrowani
Postów: 695
Pomógł: 65
Dołączył: 27.07.2009
Skąd: Y

Ostrzeżenie: (0%)
-----


Cytat(sadistic_son @ 17.04.2011, 07:29:30 ) *
To nie do końca prawda. Zwróci 0 jeśli nie ma rekordu ale jeśli jest lub są to zwróci ich ilość.


fakt mój błąd, żeby zwróciło 0 lub 1 musi zastosować LIMIT 1 smile.gif
Go to the top of the page
+Quote Post
auto-all
post 17.04.2011, 09:06:17
Post #10





Grupa: Zarejestrowani
Postów: 49
Pomógł: 7
Dołączył: 2.04.2011
Skąd: Wawa

Ostrzeżenie: (0%)
-----


Cytat(sadistic_son @ 17.04.2011, 07:29:30 ) *
  1. $a="string".$b; //zwroci string ccc - choć ten zapis jest bez sensu
  2.  
  3. (...)
  4.  
  5. //lub
  6. $query="SELECT * FROM tabela WHERE pole='".$wartosc."'";
A zapisanie tego powyższego zapytania SELECT nie jest bez sensu? Nie ma zmiennej w stringu to po co te cudzysłowy
  1. $query='SELECT * FROM tabela WHERE pole=\''.$wartosc.'\'';
Wrócę słowem jeszcze do:
Cytat(GoldeNx3 @ 16.04.2011, 22:23:14 ) *
Oraz Jak ustawiam datę, to jak do niej mogę dodać 30 dni?
Jesli chcesz dodac taka wartość do bierzącej daty i zapisać to do bazy danych lub inne podobne manipulacje to proponuje zainteresować się funkcjami daty i czasu mysql

Ten post edytował auto-all 17.04.2011, 09:06:43
Go to the top of the page
+Quote Post
sadistic_son
post 17.04.2011, 09:31:48
Post #11





Grupa: Zarejestrowani
Postów: 1 495
Pomógł: 245
Dołączył: 1.07.2009
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Cytat(auto-all @ 17.04.2011, 10:06:17 ) *
A zapisanie tego powyższego zapytania SELECT nie jest bez sensu? Nie ma zmiennej w stringu to po co te cudzysłowy
Owszem jest bez sensu, ale obrazuje łączenie stringów.


--------------------
Uśpieni przez system, wychowani przez media,
Karmieni zmysłami, próżnymi żądzami...

-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Jesteś zbyt leniwy, żeby się zarejestrować? Ja jestem zbyt leniwy aby Ci pomóc!
-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:41