Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Undefined offset
Forum PHP.pl > Forum > Przedszkole
infolearn
  1. <?php
  2. //krotkie zmienne
  3. $DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
  4. ?>

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  2. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  3. <html xmlns="http://www.w3.org/1999/xhtml">
  4.  
  5. <title>strona 110 vIEW ORDERS2 list 3.3</title>
  6. <link href="external.css" rel="stylesheet" type="text/css" />
  7. </head>
  8. <!-- Body -->
  9. <div>
  10. <h1>AUTO PARTS</h1>
  11. <h2>Orders</h2>

  1. <?php
  2. //odczytanie calego pliku
  3. //kazde zamowienie staje sie elementem tablicy
  4.  
  5. $zamowienia = file("$DOCUMENT_ROOT/php/orders/orders.txt");
  6.  
  7. //obliczanie ilosci elementow tablicy
  8.  
  9. $ilosc_zamowien = count($zamowienia);
  10.  
  11. if ($ilosc_zamowien == 0)
  12. {
  13. echo '<p><strong>No orders at the moment, try again later</strong></p>';
  14. }
  15.  
  16. echo "<table border='1'>\n";
  17. echo '<tr><th bgcolor="#cccccc">Order Date</td>
  18.  <th bgcolor="#cccccc">Tires</td>
  19.  <th bgcolor="#cccccc">Oil</td>
  20.  <th bgcolor="#cccccc">Sparks</td>
  21.  <th bgcolor="#cccccc">Total</td>
  22.  <th bgcolor="#cccccc">Address</td>
  23.  </tr>';
  24.  
  25. for ($i=0; $i<$ilosc_zamowien; $i++)
  26. {
  27. //rozbicie kazdego wiersza
  28.  
  29. $wiersz = explode( "\t", $zamowienia[$i]);
  30. echo 'liczba wierszy:'.count($wiersz).'<br />';
  31.  
  32. //zapamietuje wylaczanie liczby zamowionych produktow (porzuca pozostale dane)
  33.  
  34.  
  35.  
  36. $wiersz[1] = intval($wiersz[1]);
  37. $wiersz[2] = intval($wiersz[2]);
  38. $wiersz[3] = intval($wiersz[3]);
  39.  
  40. //wyswietla kazde zamowienie
  41.  
  42. echo "<tr><td>$wiersz[0]</td>
  43. <td align='right'>$wiersz[1]</td>
  44. <td align='right'>$wiersz[2]</td>
  45. <td align='right'>$wiersz[3]</td>
  46. <td align='right'>$wiersz[4]</td>
  47.  
  48. <td>$wiersz[5]</td>
  49.  
  50. </tr>";
  51.  }
  52.  echo '</table>';
  53.  
  54. ?>


rozumiem ze dostaje offset erro z powodu nie zadeklarowania tablicy? czy moze cos innego robie zle
nevt
no przecież do tablicy $wiersz zapisujesz tylko 3 wiersze, o kluczach 1, 2 i 3, a później próbujesz odczytać 5 wierszy => klucze 0 i 4 nie istnieją...

pozdrawiam.
-infolearn-
Cytat(nevt @ 5.10.2007, 06:58:02 ) *
no przecież do tablicy $wiersz zapisujesz tylko 3 wiersze, o kluczach 1, 2 i 3, a później próbujesz odczytać 5 wierszy => klucze 0 i 4 nie istnieją...

pozdrawiam.
infolearn
Cytat(-infolearn- @ 5.10.2007, 13:37:15 ) *


usunalem co trzeba z echo ciagle mam offset w tych samych liniach, mi sie wydaje ze jakos zle definjuje tablice. Tylko nie wiem co zle robie.

Ale wiadomo nowicjusz ze mnie moge sie mylic

Moze ktos na to zerknac jeszcze raz:)

Hej Moze ktos rozwiaze ten problem:)
nevt
po linijce:
$wiersz = explode( "\t", $zamowienia[$i]);
dopisz:
echo 'Liczba wierszy: '.count($wiersz).'<br />';

Być może w $ zamówienia wcale nie ma danych dla 3 wierszy....

Pozdrawiam.
Istalacar
Nie wiem czy to to, ale w 36 wierszu masz otwartą funkcję array.
infolearn
Cytat(nevt @ 7.10.2007, 10:09:46 ) *
po linijce:
$wiersz = explode( "\t", $zamowienia[$i]);
dopisz:
echo 'Liczba wierszy: '.count($wiersz).'<br />';

Być może w $ zamówienia wcale nie ma danych dla 3 wierszy....

Pozdrawiam.


hej wywala mi teraz to ale rowniez daj mi tabele z wynikami ale cos jeszcze nie pasuje w skrypcie

Notice: Undefined offset: 1 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 54

Notice: Undefined offset: 2 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 55

Notice: Undefined offset: 3 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 56

Notice: Undefined offset: 4 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 64

Notice: Undefined offset: 5 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 66
liczba wierszy:1

Notice: Undefined offset: 1 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 54

Notice: Undefined offset: 2 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 55

Notice: Undefined offset: 3 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 56

Notice: Undefined offset: 4 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 64

Notice: Undefined offset: 5 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\vieworders2.php on line 66
liczba wierszy:6
liczba wierszy:6
liczba wierszy:6
liczba wierszy:6
liczba wierszy:6
liczba wierszy:1
nevt
tu masz błąd:
  1. <?php
  2. if ($ilosc_zamowien == 0)
  3. {
  4. echo '<p><strong>No orders at the moment, try again later</strong></p>';
  5. }
  6. ?>


reszta kodu albo powinna być w bloku else albo w bloku if powinien być return, np:
  1. <?php
  2. if ($ilosc_zamowien == 0)
  3.  {
  4.  echo '<p><strong>No orders at the moment, try again later</strong></p>';
  5.  }
  6. else
  7. {
  8. //reszta kodu
  9. }
  10. //ALBO
  11. if ($ilosc_zamowien == 0)
  12. {
  13. echo '<p><strong>No orders at the moment, try again later</strong></p>';
  14.  return;
  15. }
  16. ?>

Pozdrawiam.
Gaiah
Witam, proszę o pomoc. Jestem laikiem w kwestii PHP. Po dodaniu trzech nowych produktów do sklepu zaczęło mi wywalać kilka linijek błędu na głównej stronie. Usunięcie produktów nie przyniosło poprawy. Treść jest następująca: Notice: Undefined offset: 2 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Notice: Undefined offset: 3 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Notice: Undefined offset: 4 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Notice: Undefined offset: 5 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Notice: Undefined offset: 6 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Notice: Undefined offset: 7 in /home/swsmasz1/public_html/sklep/db/_products_files.def.php on line 5

Zaś treść pliku, którego to dotyczy jest taka:
<?php
$aFieldsNames=array('iFile'=>0,'iProduct'=>1,'sFileName'=>2,'iPhoto'=>3,'iPosition'=>4,'iType'=>5,'iSize1'=>6,'iSize2'=>7,'sDescription'=>8);
$aFieldsSort=array('iPosition','sFileName','iProduct','sDescription','iFile','iPhoto','iType','iSize1','iSize2');
function products_files($aExp){
return array('iFile'=>$aExp[0],'iProduct'=>$aExp[1],'sFileName'=>$aExp[2],'iPhoto'=>$aExp[3],'iPosition'=>$aExp[4],'iType'=>$aExp[5],'iSize1'=>$aExp[6],'iSize2'=>$aExp[7],'sDescription'=>$aExp[8]);
}
?>

Czy da się to jakoś łatwo rozwiązać? Z góry dziękuję za pomoc.
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.