Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Ustawianie daty, sprawdzanie rekordów.
Forum PHP.pl > Forum > Przedszkole
GoldeNx3
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?
sadistic_son
  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);
GoldeNx3
Czemu jest w tym zapytnaiu:

  1. '%b%'
Czyli chodzi mi o "%"
Ulysess
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)
konole
% 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)
Ulysess
%b% czyli przed i po może być dowolny ciąg znaków
GoldeNx3
  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.
sadistic_son
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%';
Ulysess
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
auto-all
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
sadistic_son
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.
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.