[PHP+HTML] Podsumowanie wypełnionego formularza
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
Witam , mam takie zadanie z PHP , chyba stosunkowo proste dla kogoś kto się tym interesuje polegające na operacjach na plikach i tablicach... :
Dla skutecznego zarządzania treścią i kodem ważna jest funkcja importowania (wstawiania) zawartości innego pliku. Służy temu funkcja require(nazwaPliku).
1. Użyj ww. funkcji dla ujednolicenia np. górnego paska swoich stron. Projekt zawartości tych wstawianych dostosuj do dokładnego miejsca w strukturze strony, w którym chcesz je umieszczać.
2. [Sprawdź też wywołanie własnej funkcji napisanej w php a zadeklarowanej w osobnym pliku .inc.]
3. Przygotuj plik linki.txt, w którym umieścisz (w kolejnych wierszach) kilka wpisów w postaci: adres URL strony, tabulator, krótka nazwa strony mogąca zawierać spacje.
4. Niech przy każdym wczytaniu strony wykonywane będzie losowanie linku do wyświetlenia, czyli:
• załadowanie tego pliku do tablicy;
• wylosowanie indeksu w tej tablicy (funkcja rand(dolZakresu, goraZakresu) ).
• wygenerowanie znacznika A z odpowiednią wartością atrybutu HREF oraz odpowiednim tekstem wewnątrz znacznika.
5. [Utwórz jeszcze jeden plik, w którym wystąpią np. tytuły wiadomości wraz z ich datami. Zapoznaj się z funkcjami konwersji dat oraz sposobami sortowania, aby umożliwić wyświetlanie tej zawartości w tabeli, w kolejności według daty.]
6. Wzbogać pętlę wyświetlającą pobrane z pliku dane tak, aby ułożone były w tabeli HTML (tagi TABLE, TR, TH, TD).
Serdecznie dziękuję za pomoc .
Dla skutecznego zarządzania treścią i kodem ważna jest funkcja importowania (wstawiania) zawartości innego pliku. Służy temu funkcja require(nazwaPliku).
1. Użyj ww. funkcji dla ujednolicenia np. górnego paska swoich stron. Projekt zawartości tych wstawianych dostosuj do dokładnego miejsca w strukturze strony, w którym chcesz je umieszczać.
2. [Sprawdź też wywołanie własnej funkcji napisanej w php a zadeklarowanej w osobnym pliku .inc.]
3. Przygotuj plik linki.txt, w którym umieścisz (w kolejnych wierszach) kilka wpisów w postaci: adres URL strony, tabulator, krótka nazwa strony mogąca zawierać spacje.
4. Niech przy każdym wczytaniu strony wykonywane będzie losowanie linku do wyświetlenia, czyli:
• załadowanie tego pliku do tablicy;
• wylosowanie indeksu w tej tablicy (funkcja rand(dolZakresu, goraZakresu) ).
• wygenerowanie znacznika A z odpowiednią wartością atrybutu HREF oraz odpowiednim tekstem wewnątrz znacznika.
5. [Utwórz jeszcze jeden plik, w którym wystąpią np. tytuły wiadomości wraz z ich datami. Zapoznaj się z funkcjami konwersji dat oraz sposobami sortowania, aby umożliwić wyświetlanie tej zawartości w tabeli, w kolejności według daty.]
6. Wzbogać pętlę wyświetlającą pobrane z pliku dane tak, aby ułożone były w tabeli HTML (tagi TABLE, TR, TH, TD).
Serdecznie dziękuję za pomoc .
[PHP+HTML] Podsumowanie wypełnionego formularza
No ale pokaż co już zrobiłaś. Nie oczekujesz chyba, że ktoś zrobi za ciebie pracę domową?
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
problem polega na tym że nie wiem jak załadować ten plik txt z linkami do tablicy i później by przy wczytywaniu losowało któryś z tych linków:
próbowałam coś co znalazłam w internecie:
Kod: Zaznacz cały
4. Niech przy każdym wczytaniu strony wykonywane będzie losowanie linku do wyświetlenia, czyli:
• załadowanie tego pliku do tablicy;
• wylosowanie indeksu w tej tablicy (funkcja rand(dolZakresu, goraZakresu) ).
• wygenerowanie znacznika A z odpowiednią wartością atrybutu HREF oraz odpowiednim tekstem wewnątrz znacznika.
Kod: Zaznacz cały
<?php
$file = array('linki.txt');
?>
[PHP+HTML] Podsumowanie wypełnionego formularza
Musisz użyć odpowiedniej funkcji do wczytania tego pliku. Funkcja file() wczytuje kolejne linijki z pliku do tablicy. Teraz należy wylosować indeks tablicy. Możesz to zrobić np. tak
Oczywiście nie trzeba używać tylu zmiennych, żeby wszystko przechowywać. Rozpisałem tak, abyś mogła łatwiej zrozumieć co się po kolei dzieje.
Kod: Zaznacz cały
$linki = file('linki.txt');
if($linki === FALSE) {
echo 'Nie udało się odczytać pliku z linkami.';
exit(1);
}
$ile_linkow = count($linki);
$ktory_link = rand(0, $ile_linkow-1);
$czesci_linka = explode("\t", $linki[ $ktory_link ]);
$adres = $czesci_linka[0];
$opis = $czesci_linka[1];
echo '<a href="' . $adres . '">' . $opis . '</a>';
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
Super bardzo dziękuję, wrócę do domu to jeszcze będę to analizować , próbowałam jeszcze z tym ładowaniem tego pliku w ten sposób:
niestety to nie działało tak jak należy , oczywiście pominęłam ten random itd. chciałam jedynie sprawdzić czy wyciągnie z pliku txt ten link z opisem, niestety konstrukcja tej funkcji explode jest chyba niepoprawna....
Kod: Zaznacz cały
<?PHP
$file_handle = fopen("linki.txt", "r");
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
$parts = explode('\n', $line_of_text);
echo $parts[0];
}
fclose($file_handle);
?>
[PHP+HTML] Podsumowanie wypełnionego formularza
Zamiast
powinno być
bo przecież separatorem jest tabulator. Reszta wygląda ok.
Kod: Zaznacz cały
'\n'
Kod: Zaznacz cały
'\t'
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
I jest ok teraz Dziękuje...
ale jeszcze mam pytanie, gdybyśmy chcieli pójść dalej i rozszerzyć ten skrypt :
wczytanie pliku txt , w którym będą tytuły wiadomości wraz z ich datami , i teraz by wyświetlić te dane w formie tabeli html , posortowane według dat :/
ale jeszcze mam pytanie, gdybyśmy chcieli pójść dalej i rozszerzyć ten skrypt :
wczytanie pliku txt , w którym będą tytuły wiadomości wraz z ich datami , i teraz by wyświetlić te dane w formie tabeli html , posortowane według dat :/
[PHP+HTML] Podsumowanie wypełnionego formularza
Początek będzie podobny. Potem trzeba będzie napisać własną funkcję porównującą.
Powiedzmy, że schemat będzie taki sam jak poprzednio tzn.
Data musi mieć odpowiedni format, np. 15-05-2011 albo 17-10-1999 17:52 (trzeba uważać, bo data może zostać potraktowana tak jak np. w USA, czyli miesiąc dzień rok). Wykorzystamy funkcję strtotime() aby skonwertować tak zapisaną datę do znacznika czasu, wg którego będziemy sortować. Potrzebna też będzie funkcja usort().
Funkcja usort() przyjmuje tablicę oraz funkcję porównującą dwa elementy z tablicy. Musimy najpierw napisać tą funkcję
Teraz sortujemy
Wyświetlamy
Pomyśl co trzeba zmienić aby wyświetlić to jako tabela html.
Powiedzmy, że schemat będzie taki sam jak poprzednio tzn.
Kod: Zaznacz cały
DATA TABULATOR TEMAT
Kod: Zaznacz cały
$dane = file('drugi.txt'); //wczytujemy plik
$c=count($dane);
for($i=0;$i<$c;$i++) { //przeglądamy wszystkie linie z pliku
$linia = explode('\t', $dane[$i]); //dzielimy linię na datę i tytuł
$linia[2] = strtotime($linia[0]); //konwertujemy datę na znacznik czasu
$dane[$i] = $linia; //zapisujemy w miejsce linii tablicę (data, tytuł, znacznik czasu)
}
Kod: Zaznacz cały
function porownaj($a, $b) {
//$a i $b będą elementami naszej tablicy $dane
if($a[2] == $b[2]) return 0; //jeśli daty są takie same
if($a[2] < $b[2])
return -1;
else
return 1;
}
Kod: Zaznacz cały
usort($dane, "porownaj");
Kod: Zaznacz cały
for($i=0;$i<$c;$i++) { //$c obliczone wcześniej
echo $dane[$i][0]." - ".$dane[$i][1]."<br>";
}
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
szczerze to nie mam zielonego pojęcia... Domyślam się że nie poleceniem echo... czy trzebą tą tabelę najpierw zdefiniować w kodzie html ? :/ chyba nie , bo nie wiemy ile wierszy ma mieć...
edit:
do polecenia echo mogę zastososować tagi html ? czyli : echo "<table>.... </table>" ??
edit:
do polecenia echo mogę zastososować tagi html ? czyli : echo "<table>.... </table>" ??
[PHP+HTML] Podsumowanie wypełnionego formularza
Tak, o to właśnie chodzi. Nie potrzeba tutaj nic szczególnego.
-
- Użytkownik
- Posty: 172
- Rejestracja: 11 paź 2009, o 19:54
- Płeć: Kobieta
- Lokalizacja: Gdańsk
- Podziękował: 67 razy
[PHP+HTML] Podsumowanie wypełnionego formularza
Pozwolę sobie odkopać ten temat ponieważ wróciła do robienia tych zadań i czegoś tutaj nie rozumiem,abc666 pisze: WyświetlamyKod: Zaznacz cały
for($i=0;$i<$c;$i++) { //$c obliczone wcześniej echo $dane[$i][0]." - ".$dane[$i][1]."<br>"; }
instrukcja do wyświetlania
Kod: Zaznacz cały
echo $dane[$i][0]." - ".$dane[$i][1]."<br>";
wygląda na to jakby gdzieś był błąd... bo echo $dane[$i][1] nie zwraca nic... data i nagłówek jest w zmiennej $dane[0] .... Jak to rozdzielić... :/ bo nie mogę wychwycić gdzie leży błąd, ta funkcja explode chyba nie działa tak jak powinna ...
[PHP+HTML] Podsumowanie wypełnionego formularza
Sprawdź czy masz na pewno tabulatory jako separatory oraz czy wszystko jest ok w momencie przepisywania zmiennej $linia
Ewentualnie wklej cały skrypt jaki teraz masz, wtedy będę mógł go sprawdzić, bo teraz nie wiem jak poskładałaś te fragmenty itp.
Ewentualnie wklej cały skrypt jaki teraz masz, wtedy będę mógł go sprawdzić, bo teraz nie wiem jak poskładałaś te fragmenty itp.