• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Problem z wyświetlaniem zamówienia w pliku *.txt (PHP)

Cloud VPS
0 głosów
860 wizyt
pytanie zadane 22 lipca 2015 w PHP przez DL TD Nałogowiec (36,710 p.)
zamknięte 22 lipca 2015 przez DL TD

Mam taki problem. Robię włąśnie kolejny przykład z książki. Chcę wyświetlić zawartość pliku *.txt w tabeli. Mam jednak mały problem :(

Siedzę nad tym problemem 2h i nadal nie znalazłem sensownego rozwiązania. Zamówienie zapisuje się bez problemu, ale odczyt zapisany w ten sposób już nie.:

<meta charset="utf-8">

<?php
  //Odczytanie całego pliku
  //Każde zamówienie staje się elementem tablicy
  $zamowienia = file("zamowienia.txt");
  //Obliczanie ilości elementów tablicy
  $ilosc_zamowien = count($zamowienia);
  if ($ilosc_zamowien == 0) {
    echo "<p><strong>Brak zamówień. Proszę spróbować później.</strong></p>";
  }
  echo '<table border="1">';
  echo '<tr><th bgcolor="#CCCCFF">Data zamówienia</td>
            <th bgcolor="#CCCCFF">Opony</td>
            <th bgcolor="#CCCCFF">Olej</td>
            <th bgcolor="#CCCCFF">Świece</td>
            <th bgcolor="#CCCCFF">Suma</td>
            <th bgcolor="#CCCCFF">Adres</td></tr>';

  for ($i=0; $i<$ilosc_zamowien; $i++) {
    //Rozbicie każdej linii
    $linia = explode("\t".$zamowienia[$i]);

    //Zapamiętanie wyłączenie ilości zamówionych produktów
    $linia[1] = intval($linia[1]);
    $linia[2] = intval($linia[2]);
    $linia[3] = intval($linia[3]);

    //Wyświetlenie każdego zamówienia
    echo "  <tr>
              <td>$linia[0]</td>
              <td align=\"right\">".$linia[1]."</td>
              <td align=\"right\">".$linia[2]."</td>
              <td align=\"right\">".$linia[3]."</td>
              <td align=\"right\">".$linia[4]."</td>
              <td>".$linia[5]."</td>
            </tr>";
  }

  echo '</table>';
?>

Resztę kodu (całą stronę) zamieszczam tutaj -> https://mega.co.nz/#!VpwCxCZb!SPBkuQTj0-HbJKdQGBDZ5zZv96Os-a7kLgUGuk1D5Ik

komentarz zamknięcia: Problem rozwiązany.

2 odpowiedzi

+2 głosów
odpowiedź 22 lipca 2015 przez Comandeer Guru (607,100 p.)
wybrane 22 lipca 2015 przez DL TD
 
Najlepsza
A od kiedy parametry w funkcji rozdziela się kropką, nie przecinkiem (linia 22)?
komentarz 22 lipca 2015 przez DL TD Nałogowiec (36,710 p.)
o jaaa, taki błąd (już sprawdzam rezultat po zmianie)
komentarz 22 lipca 2015 przez DL TD Nałogowiec (36,710 p.)

Działa miszczu, hehe :)

0 głosów
odpowiedź 22 lipca 2015 przez Magicone Nałogowiec (45,100 p.)
Rozbicie linii to nie \t ale \n. Btw. zapoznaj się z funkcją file_get_contents :)
count($zamowienia); -> count to metoda do otrzymywania długości tablicy, $zamowienia to string.
 

EDIT: przy okazji poczytaj w manualu o funkcjach explode/implode i o tym, jakie parametry przyjmują :D
komentarz 22 lipca 2015 przez Magicone Nałogowiec (45,100 p.)
zmienna zmiennej nie równa :D
komentarz 22 lipca 2015 przez Comandeer Guru (607,100 p.)
http://ideone.com/RBtKkx  → jakoś do mnie ten "kompilator" bardziej przemawia
komentarz 22 lipca 2015 przez Boshi VIP (100,240 p.)
@Comandeer,  siłąc się, to przez file_get też się da to wykonać, dwie pętle foreach, jedna leci  i dzieli na wiersze a druga te wiersze  dzieli na tabulatory. Na jedno wyjdzie. Choć  nie wydaje się logicznym dzielić stringa na wiersze kiedy może to zrobić gotowa funkcja file.
komentarz 22 lipca 2015 przez Comandeer Guru (607,100 p.)

@Boshi po co Ci dwie pętle? Starczy jedna, bo na wiersze podzielisz przez explode

komentarz 22 lipca 2015 przez Boshi VIP (100,240 p.)
W sumie  racja.  2x explode wystarczy.

Podobne pytania

0 głosów
2 odpowiedzi 1,192 wizyt
pytanie zadane 26 maja 2015 w PHP przez TomWaw.IT Użytkownik (920 p.)
0 głosów
3 odpowiedzi 456 wizyt
pytanie zadane 5 października 2015 w C i C++ przez Куба Янчевски Początkujący (390 p.)
0 głosów
1 odpowiedź 908 wizyt
pytanie zadane 14 września 2018 w Java przez Moras Obywatel (1,620 p.)

93,488 zapytań

142,422 odpowiedzi

322,772 komentarzy

62,906 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...