Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL][PHP]2 pytania
Forum PHP.pl > Forum > Przedszkole
login90
Witam.
Szukałem odpowiedzi na te pytania i nie mogłem nigdzie znależć. pierwsze pytanie to jak zrobić w htacess aby w url był napis np www.localhost/fajne-forum , a nie fajne%20forum. Chodzi mi o to by usunąć spacje %20 i zastąpić - myślnikiem.
Drigie pytanie to tworze strone ze śmiesznymi obrazkami i chciałbym aby każdy mógł dodać obrazek, filmik ale w odstępach czasu np mozesz dodaż obrazek 1 na godzine. Jak zrobić aby pojawił się taki kominikat
Dzięki
dublinka
Cytat(login90 @ 14.11.2020, 08:44:33 ) *
Drigie pytanie to tworze strone ze śmiesznymi obrazkami i chciałbym aby każdy mógł dodać obrazek, filmik ale w odstępach czasu np mozesz dodaż obrazek 1 na godzine. Jak zrobić aby pojawił się taki kominikat
Dzięki

Jesli robisz to na bazie to mozesz dodac rekord z datą plus godzina do przodu i sprawdzac aktualny czas (timestamp) Jesli aktualny bedzie juz wiekszy od tego w bazie, automatycznie aktualizuj tabele i usun wpis - te date dajac mozliwosc dodania obrazka
Tomplus
1.
Ja dopytam:
W jaki sposób tworzysz te odnośniki, gdzie jest znacznik spacji, że następnie koniecznie potrzebujesz to przerabiać na myslniki?
Jeżeli takie odnośniki masz w SQL albo w kodzie plików strony, to wystarczy zamienić choćby funkcją str_replace() dla php.

2.
Obraz dodawany do bazy przez użytkownika, ma także informację o czasie (tutaj polecam unixowy system) i użytkowniku.
Wystarczy:
a) zablokować stronę/guzik dodawania sprawdzając kiedy był ostatni wrzut. (można w JS to zrobić)
cool.gif po wrzuceniu sprawdzić kiedy był ostatni wrzut i wywalić komunikat.

login90
Próbowałem wstawić str_replace przy dodawaniu opisu do obrazka
  1. $name =str_replace(" ", "-",($_POST['name']));

i url jest taki localhost/image/fajny-obrazek tylko jak zrobić aby opis sam był bez tego myslnika. chodzi mi o to aby jak sie przeglada obrazek to opis na stronie był normalny ze spacją nie myślnikiem
viking
Zrób sobie w bazie 2 pola. Opis przekształcony raz podczas tworzenia który będzie tytułem i właściwy drugi.
dublinka
Cytat(login90 @ 14.11.2020, 13:25:32 ) *
Próbowałem wstawić str_replace przy dodawaniu opisu do obrazka
  1. $name =str_replace(" ", "-",($_POST['name']));

i url jest taki localhost/image/fajny-obrazek tylko jak zrobić aby opis sam był bez tego myslnika. chodzi mi o to aby jak sie przeglada obrazek to opis na stronie był normalny ze spacją nie myślnikiem

Zawsze mozesz zrobic to na odwrot. Myslnik zamienic na spacje
login90
Tworze możliwość dodawania po określonym czasie i mam taki przykładowy kod
  1. $query = "Select *from image";
  2. $results = mysqli_query($db, $query);
  3. while($row = mysqli_fetch_assoc($results)) {
  4. if($row['date'] < i tu nie wiem)
  5. {
  6. echo 'nie mozesz dodad';
  7. }else{
  8. echo 'mozesz dodac';
  9. }
  10.  
  11. }if(mysqli_num_rows($results) == '0'){
  12. echo 'brak rekordów';
  13. }
  14.  

Jak zrobić aby czytał date np godzina od ostatniego dodania obrazka $row['date'] < i tu nie wiem jak zrobić data od ostatniego dodania do godziny
dublinka
https://dev.mysql.com/doc/refman/8.0/en/dat...-functions.html

A sam warunek dodaj do zapytania.


SELECT *
FROM tabela
WHERE polezdata < NOW()

'polezdata' ma zawierac czas z dodana godzina. Polezdata to typ pola timestamp

DATE_ADD(NOW() , INTERVAL 1 HOUR) ,
gino
Wszystko fajnie, tylko pobieraj jeszcze IP użytkownika, bo w tym przypadku to ktoś może mieć pecha i nigdy nic nie doda. Chyba, że to tak ma działać: co 1 godzinę kto sie wbije pierwszy to dodaje, co jest bez sensu.
edit: chyba, że trzeba założyć konto, ale zapytanie i tak jest bez sensu
Tomplus
Oczywiście tego sobie nie wyobrażam, ale ...

@login90
Zrób jak Dublinka przedstawił, ale również bazuj na ID użytkownika, a aby znaleźć czy ktoś może lub nie dodawać to:

  1. $query = "SELECT 1 FROM image WHERE pole_z_data < NOW() AND user_id = :userId LIMIT 0,1";
  2. $results = mysqli_query($db, $query);
  3. if(mysqli_num_rows($results) > 0) {
  4. echo "Nie możesz dodawać, między dodawanym obrazom musi minąć godzina";
  5. } else {
  6. echo "Dodaj obraz uzupełniając pola formularza";
  7. }
login90
Zrobiłem z tym dodawaniem i czasu i działa. Dzięki. Nie będę zakładać nowego wątku tylku tu napisze. Chodzi o strone błędu, 404 jak ktoś wpisze żle adres nie istniejący to ma mu się wyświtlić wiadomo page not found 404 i teraz pytanie co robie żle.
Mam plik htaccess wpisuje ErrorDocument 404/ error.php na xampie i stwarzam error.php i nie działa. Robiłem według tutoriali wszystko tak jak nalezy i nie działa. Mozecie mi napisać jak to powinno wygladac. Dzieki
gino
spróbuj z całym adresem:

Kod
RewriteEngine on
ErrorDocument 404   http://localhost/my_name_site/error.php


u mnie tak działało.
login90
Hej odnoścnie tego str_replace. Stworzyłem strone ze śmiesznymi obrazkami i chciałbym aby dodający wpisywał normalnie nazwe i czy można zrobić tak aby było jakiś ukryte pole i jedno było by z str_replace a dtugie do wyświtlania rekordku.
Chodzi mi o to , że jak wpisuje nazwe to chciałbym aby jedno było jakieś ukryte pole bez tego str_replace i żeby pobierać z bazy danych do wyśwtlania normalnie bez tego myślnika na stronie. Dzięki
gino
dublinka w #6 odpowiedział jak to zrobić, odwrotnie do tego jak zamieniasz spację na myślnik:

Kod
$name =str_replace("-", " ",($_POST['name']));


albo opisz dokładniej problem.
viking
Dokładnie to ci napisałem w poście nr 5.
login90
mam dwa pola i jak zrobić aby str_replace np. ktoś doda kilka spacji i chce aby te kilka spacji zamieniło się w jeden myślink, a nie kilka
$name2 = str_replace(" ", "-",($_POST['name2']));
dublinka
  1. $output = preg_replace('!\s+!', '-', $input);
login90
hej odnośnie tego rozwiązania z czasem. No chyba robie błąd. Jak zrobić aby pobierało ostatnie dodanie z określnego ip . Robiłem order by id desc limit 1 i nie dizała
  1. $ip =$_SERVER["REMOTE_ADDR"];
  2.  
  3. $query = "Select *from image where ip ='$ip' and date < DATE_ADD(NOW() ,INTERVAL 1 HOUR) limit 1";
  4. $result = mysqli_query($db, $query);
  5. $isvalid = mysqli_num_rows($result);
  6. if($isvalid)
  7. {
  8. $button = '<input type="submit" value="add" name="upload" >';
  9. }else{
  10. $button = ' <input type="submit" value="add" name="upload" disabled="disabled">';
  11.  
  12. }
  13.  
  14. potem
  15. if(isset($button)) {
  16. echo $button;
  17. }
nospor
nie
Select *from
a
Select * from

wypadaloby wyswietlac bledy jakie zwraca baza danych
login90
Poprawiłem i dalej nie działa. Zrobiłem mysqli_error ale nie wyświetla żadnych błędów. Błąd jest w zapytaniu. Czy ktoś wie jak powinno to wyglądać dzięki
Tomplus
Działają ci logi? Jeżeli błędy nie wyświetlają się na stronie, to powinny być zapisane w logach dla strony, podejrzyj i pokaż.
login90
Hej wyświtlają mi się błędy ale nie odnośnie samego zapytania.
Tomplus
ale jeżeli jest błąd, to sprawdź logi bazy danych,
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.