Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Zmienna
Forum PHP.pl > Forum > PHP
Niepokonany13
Mam problem robię sobie taki mini cms i mam problem przy tworzeniu nowych tematów jesli nazwa jest taka sama to dopisuje to do pliku który był juz wiec chce zrobić numerowanie tematów
Np logowanie?1.php ?2 ?3 ?4 itd tylko nwm jak zapamiętać ostatni numer i dodać do niego 1 i zamiast tworzyć temat $_GET['temat'] to tworzy get temat?1
Neutral
Może sprawdź wszystkie pliki o nazwie tematx, gdzie "x" oznacza liczbę. Np. wyrażeniem regularnym sprawdź liczby, która jest największa i tę największą niech wyciągnie z nazwy pliku i zinkrementuje o jeden. W każdym bądź razie są chyba lepsze sposoby.
SmokAnalog
Możesz na przykład tak:

  1. $topic = $_GET['temat'];
  2.  
  3. $ids = array_map(function ($file) use ($topic) {
  4. preg_match("~$topic(\d+)\.txt$~", $file, $matches);
  5. return isset($matches[1]) ? (int) $matches[1] : null;
  6. }, glob('*.txt'));
  7. $id = max(array_filter($ids) ?: [0]) + 1;


Tylko uważaj, bo jak parametr ?temat będzie się kończył cyfrą, to wyjdą jakieś kwiatki.
LowiczakPL
Cytat(Niepokonany13 @ 3.05.2018, 22:00:15 ) *
Mam problem robię sobie taki mini cms i mam problem przy tworzeniu nowych tematów jesli nazwa jest taka sama to dopisuje to do pliku który był juz wiec chce zrobić numerowanie tematów
Np logowanie?1.php ?2 ?3 ?4 itd tylko nwm jak zapamiętać ostatni numer i dodać do niego 1 i zamiast tworzyć temat $_GET['temat'] to tworzy get temat?1


Ja rozwiązałem to w ten sposób,

zrobiłem sobie 2 pola w bazie

1. nazwa - nazwa jaką wpisał użytkownik, pozwala to na posiadanie wiele tych samych nazw
2. slug - nazwa wygenerowana przez klasę do slagowania, tworzy unikalna nazwę przyjazną Google,(aktualnie nie ma to znaczenia bo przeglądarki obsługują PL znaki w URLu)

przed zapisem slaguję dodawaną nazwę i sprawdzam czy slug istnieje w bazie danych jeśli tak to pobieram sobie unikalny ID z tabeli z autonumeracją i doklejam do slug, to gwarantuje mi unikalne slugi, które sa pokazywane w przeglądarce.
Niepokonany13
Dzięki za odpowiedzi juz sobie poradziłem zrobiłem $id=date() i potem dopisywałem zmienna id
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.