• 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
814 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,060 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,060 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,060 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,167 wizyt
pytanie zadane 26 maja 2015 w PHP przez TomWaw.IT Użytkownik (920 p.)
0 głosów
3 odpowiedzi 445 wizyt
pytanie zadane 5 października 2015 w C i C++ przez Куба Янчевски Początkujący (390 p.)
0 głosów
1 odpowiedź 893 wizyt
pytanie zadane 14 września 2018 w Java przez Moras Obywatel (1,620 p.)

93,454 zapytań

142,448 odpowiedzi

322,717 komentarzy

62,832 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
...