infolearn
4.10.2007, 21:43:40
<?php
//krotkie zmienne
$DOCUMENT_ROOT = $_SERVER['DOCUMENT_ROOT'];
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<link href="external.css" rel="stylesheet" type="text/css" /> <!-- Body -->
<?php
//odczytanie calego pliku
//kazde zamowienie staje sie elementem tablicy
$zamowienia = file("$DOCUMENT_ROOT/php/orders/orders.txt");
//obliczanie ilosci elementow tablicy
$ilosc_zamowien = count($zamowienia);
if ($ilosc_zamowien == 0)
{
echo '<p><strong>No orders at the moment, try again later</strong></p>'; }
echo "<table border='1'>\n"; echo '<tr><th bgcolor="#cccccc">Order Date</td> <th bgcolor="#cccccc">Tires</td>
<th bgcolor="#cccccc">Oil</td>
<th bgcolor="#cccccc">Sparks</td>
<th bgcolor="#cccccc">Total</td>
<th bgcolor="#cccccc">Address</td>
</tr>';
for ($i=0; $i<$ilosc_zamowien; $i++)
{
//rozbicie kazdego wiersza
$wiersz = explode( "\t", $zamowienia[$i]); echo 'liczba wierszy:'.count($wiersz).'<br />';
//zapamietuje wylaczanie liczby zamowionych produktow (porzuca pozostale dane)
$wiersz[1
] = intval($wiersz[1
]); $wiersz[2
] = intval($wiersz[2
]); $wiersz[3
] = intval($wiersz[3
]);
//wyswietla kazde zamowienie
echo "<tr><td>$wiersz[0]</td> <td align='right'>$wiersz[1]</td>
<td align='right'>$wiersz[2]</td>
<td align='right'>$wiersz[3]</td>
<td align='right'>$wiersz[4]</td>
<td>$wiersz[5]</td>
</tr>";
}
?>
rozumiem ze dostaje offset erro z powodu nie zadeklarowania tablicy? czy moze cos innego robie zle
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-
5.10.2007, 13:37:15
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
7.10.2007, 02:56:38
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:)
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
7.10.2007, 10:16:56
Nie wiem czy to to, ale w 36 wierszu masz otwartą funkcję array.
infolearn
12.10.2007, 04:31:24
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
12.10.2007, 08:44:54
tu masz błąd:
<?php
if ($ilosc_zamowien == 0)
{
echo '<p><strong>No orders at the moment, try again later</strong></p>'; }
?>
reszta kodu albo powinna być w bloku
else albo w bloku
if powinien być return, np:
<?php
if ($ilosc_zamowien == 0)
{
echo '<p><strong>No orders at the moment, try again later</strong></p>'; }
else
{
//reszta kodu
}
//ALBO
if ($ilosc_zamowien == 0)
{
echo '<p><strong>No orders at the moment, try again later</strong></p>'; return;
}
?>
Pozdrawiam.
Gaiah
14.03.2013, 16:01:14
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.