Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [PHP] problem z funkcją
miooodek
post 6.04.2008, 18:40:13
Post #1





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Witam, ponizej przedstawiam kod calego skryptu. Problem pojawia się gdy chce wykonac funkcje drukuj i drukuj2 w punkcie o id=13, wszędzie wczesniej działa prawidłowo. Wkleilem te funkcje do id=13 i zmienilem ich nazwy, prubowalem w taki sposob, ale nic z tego nie wyszlo, szczerze mówiąc to nie wiem w czym tkwi problem.

Moze komus uda sie to rozszyfrowac biggrin.gif , pozdrawiam

Kod
<?php
session_start();

function drukuj($kontrahent_id)
{
mysql_select_db('transport');
$zapytanie = "select * from kontrahenci WHERE kontrahent_id=".$kontrahent_id."";
$wynik = mysql_query($zapytanie);

  @ $ile_znalezionych = mysql_numrows($wynik);

  for ($i=0; $i <$ile_znalezionych; $i++)

{
$wiersz=mysql_fetch_array($wynik);

  echo 'Nazwa: ';
  echo stripslashes($wiersz['nazwa']);
echo '<br />Miasto: ';
echo stripslashes($wiersz['miasto']);
echo '<br />NIP: ';
echo stripslashes($wiersz['nip']);
  }

}
function drukuj2($miejsce_id)
{
mysql_select_db('transport');
$zapytanie = "select * from miejsca WHERE miejsce_id=".$miejsce_id."";
$wynik = mysql_query($zapytanie);

  @ $ile_znalezionych = mysql_numrows($wynik);

  for ($i=0; $i <$ile_znalezionych; $i++)

{
$wiersz=mysql_fetch_array($wynik);

  echo 'Nazwa: ';
  echo stripslashes($wiersz['nazwa']);
  echo '<br />Symbol: ';
echo stripslashes($wiersz['symbol']);
echo '<br />Miasto: ';
echo stripslashes($wiersz['miasto']);
echo '<br />Ulica nr: ';
echo stripslashes($wiersz['ulica_nr']);
  }

}


echo "<table>";
echo "<tr>";
echo "<td WIDTH=33% VALIGN = TOP >";

if(isset($_POST['id'])==1)
{
$id=$_POST['id'];
}
if(!isset($id))
{

$id=1;
}
if($id==1)
{

    include("klient.php");
   if(isset($_POST['kontrahent_id']))
  
{
   $id=$id+1;
}
  
}
if($id==2)
{
    $klient=$_POST['kontrahent_id'];
  $id+=1;
  

   $_POST = array();
}
if($id==3)
{
    
     if(isset($klient))
     {    
       drukuj($klient);
     }
     else
     {
       $klient=$_POST['klient'];
       drukuj($klient);
     }

        include("platnik.php");
        

if(isset($_POST['kontrahent_id']))
  
{
   $id=$id+1;
}
    
}
if($id == 4)
{
   $platnik = $_POST['kontrahent_id'];
   echo '<h3>Klient</h3>';
   $_SESSION['klient']= $klient;
   drukuj($klient);
  
   echo '<h3>Platnik</h3>';
   $_SESSION['platnik']= $platnik;
   drukuj($platnik);
$_POST = array();
   $id=$id+1;
}
if($id == 5)
{
    include("zaladunek.php");
   if(isset($_POST['miejsce_id']))
  
{
   $id=$id+1;
}
  
}
if($id == 6)
{
   $zaladunek=$_POST['miejsce_id'];
  $id+=1;
  $_POST = array();  
}
if($id == 7)
{
     if(isset($zaladunek))
     {
        
       drukuj2($zaladunek);
     }
     else
     {
       $zaladunek=$_POST['zaladunek'];
      
       drukuj2($zaladunek);
     }
        include("rozladunek.php");

if(isset($_POST['miejsce_id']))
  
{
   $id=$id+1;
}
    
}
if($id == 8)
{
   $rozladunek = $_POST['miejsce_id'];
   echo '<h3>Klient</h3>';
   drukuj($_SESSION['klient']);
  
   echo '<h3>Platnik</h3>';
   drukuj($_SESSION['platnik']);
  
   echo '<h3>Miejsce zaladunku</h3>';
   $_SESSION['zaladunek']= $zaladunek;  
   drukuj2($_SESSION['zaladunek']);
  
   echo '<h3>Miejsce rozladunku</h3>';
   $_SESSION['rozladunek']= $rozladunek;
   drukuj2($_SESSION['rozladunek']);
   $id=$id+1;
$_POST = array();
}
if($id==9)
{
echo "<td WIDTH=33% VALIGN = TOP >";
    include("przewoznik.php");
   if(isset($_POST['kontrahent_id']))  
{
   $id=$id+1;
}
    echo "</td>";
echo "</tr>";
echo "</table>";
}
if($id==10)
{
    $przewoznik=$_POST['kontrahent_id'];
  $id+=1;
}
if($id==11)
{
echo "<table>";
echo "<tr>";
echo "<td WIDTH=33% VALIGN = TOP >";
   echo '<h3>Klient</h3>';
   drukuj($_SESSION['klient']);
  
   echo '<h3>Platnik</h3>';
   drukuj($_SESSION['platnik']);
  
   echo '<h3>Miejsce zaladunku</h3>';
   $_SESSION['zaladunek']= $zaladunek;  
   drukuj2($_SESSION['zaladunek']);
  
   echo '<h3>Miejsce rozladunku</h3>';
   $_SESSION['rozladunek']= $rozladunek;
   drukuj2($_SESSION['rozladunek']);  

echo "<td WIDTH=33% VALIGN=TOP>";

   echo '<h3>Przewoznik</h3>';
       $przewoznik=$_POST['klient'];
    $_SESSION['przewoznik']= $przewoznik;
    drukuj($_SESSION['przewoznik']);
  $_POST = array();
    
    $id=$id+1;  
}
if($id==12)
{
echo "<table>";
echo "<tr>";
echo "<td WIDTH=33% VALIGN = TOP >";
?>
<table>
<form action="index.php" method="post">
<br />
<h3>Kierowca</h3>
</td></tr>

<tr><td>Imie </td>

<td> <input type="text" name="imie"  maxlenght="20" size="20">

<br /></td></tr>

<tr><td>Nazwisko</td>

<td> <input type="text" name="nazwisko"  maxlenght="20" size="20">

<br /></td></tr>

<tr><td>nr Dowodu </td>

<td> <input type="text" name="dowod"  maxlenght="15" size="15">

<br /></td></tr>

<tr><td>nr Samochodu </td>

<td> <input type="text" name="nr_samochodu"  maxlenght="15" size="15">

<br /></td></tr>

<tr><td>nr Naczepy </td>

<td> <input type="text" name="nr_naczepy" maxlenght="15" size="15">

<br /></td></tr>

<tr><td>Telefon </td>

<td> <input type="text" name="telefon" maxlenght="15" size="15">

<br /></td></tr>
    <input type="hidden" value="13" name="id"/>
    <input type="hidden" value="<?php echo $_SESSION['klient']; ?>" name="klient"/>
    <input type="hidden" value="<?php echo $_SESSION['platnikt'];?>" name="platnik"/>
    <input type="hidden" value="<?php echo $_SESSION['zaladunek'];?>" name="zaladunek"/>
    <input type="hidden" value="<?php echo $_SESSION['rozladunek'];?>" name="rozladunek"/>
    <input type="hidden" value="<?php echo $_SESSION['przewoznik'];?>" name="przewoznik"/>

<tr><td colspan="2"><input type="submit" value="Zapisz"></td></tr>
</table>
</form>
<?php
  
echo "</td>";
echo "</tr>";
echo "</table>";  

}
if($id==13)
{
$klient=$_POST['klient'];  
  $_SESSION['klient']= $klient;
  
  echo '<h3>Klient</h3>';
  drukuj($_SESSION['klient']);
}
?>


Ten post edytował miooodek 6.04.2008, 18:41:20
Go to the top of the page
+Quote Post
Lejto
post 6.04.2008, 19:01:29
Post #2





Grupa: Zarejestrowani
Postów: 1 385
Pomógł: 48
Dołączył: 23.05.2007

Ostrzeżenie: (0%)
-----


o to co?
  1. <?php
  2. @ $ile_znalezionych = mysql_numrows($wynik);
  3. ?>

tak:
  1. <?php
  2. $ile_znalezionych = mysql_num_rows($wynik);
  3. ?>


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 20:03:42
Post #3





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


To było po to zeby mysql siedzial cicho przy wyswietlaniu wyniku, zmienilem tak jak powiedziales, ale nic to nie dalo, a z @ nie wyswietla niedorzecznych bledów
Go to the top of the page
+Quote Post
-oldfield-
post 6.04.2008, 22:03:13
Post #4





Goście







Troche pogmatwany ten kod...

ale lepiej zostawcie te @ w spokoju tongue.gif
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 22:10:53
Post #5





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dopiero zaczynam z php, w sumie bez szczególnego zapalu, i praktycznie na kazdym kroku mam jakies problemy, i staram sie je rozwiązywac, jednak czasem jestem bezradny i prosze was o pomoc i wyrozumiałość biggrin.gif

Jakby ktos popatrzyl co jest zle...
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 22:16:08
Post #6





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


"... a wtedy Pan wymyślił moduły... i zobaczył, że są dobre..."

Po pierwsze i najwązniejsze... skrypt, który ma 300 linijek ciągłego kodu bez komentarzy to bardzo zły skrypt smile.gif nawet jak jest napisany w cudowny sposób smile.gif

Taka przypowiastka z wykładów mi sie przypomina... jedna z wiekszych operacji w czasie 2 wojny swiatowej zakończyła się fiaskiem, ponieważ program, który wykrywał rakiety wroga nie miał komentarzy, a kiedy załoga dowiedziała sie o tym błędzie to zaczeła szukać miejsca w programie, gdzie ten bład występuje... z powodu braku komentarzy nie zdążyli przed pierwszą rakietą smile.gif smile.gif smile.gif - wniosek: komentarze mogą uratować życie smile.gif

a tak własciwie, to nie wiem w której linicje błędu szukać:P:P:P za dużo tu ich ;-)


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 22:22:22
Post #7





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


wszystko smiga pięknie do id 12, w 13 są schody... zmienne pięknie sie przekazują do 13, jak kaze je wypisac, to wypisuje,
nie zmienilem niczego w sposobie drukowania danych z bazy, dla tego dziwi mnie ten błąd
Go to the top of the page
+Quote Post
marcio
post 6.04.2008, 22:45:02
Post #8





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Zrob to na switch to po 1 a po 2 nie wiem czy to ma znaczenie ale jak wszystkie id dzialja oprocz 13 to moze zmien warunek jesli dochodzi tylko do id nr 13 to daj takie cos
  1. <?php
  2. if($id > 12)
  3. {
  4. $klient=$_POST['klient'];
  5. $_SESSION['klient']= $klient;
  6.  
  7. echo '<h3>Klient</h3>';
  8. drukuj($_SESSION['klient']);
  9. }
  10. ?>


Po 3 raz masz tak
  1. <?php
  2. $id+=1;
  3. // a raz tak
  4. $id=$id+1;
  5. ?>

Zdecudoj sie i potem na koniec w if'ie prz id nr 12 nie widzie zwiekszenia zmiennej a wszedzie tak robisz

Widze ze w formie w hidden chcesz przekazywac id ale moze je zle przekazuje albo cos wyswietlaj sobie ta zmienna $id za kazdym razem

Ten post edytował marcio 6.04.2008, 22:47:32


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 22:59:58
Post #9





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


a sprawdziłeś jaką wartość zwraca Ci
  1. <?php
  2. $_SESSION['klient']
  3. ?>
i czy jest ona zgodna z wywołaniem funkcji ?


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 23:00:34
Post #10





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


tzn, hidden przekazuje od 13, to dziala, gdy robie wyswietlenie podanych danych do formularza, to wyswietla je dobrze,
kiedy dam echa tych zmiennych z hiddena tez je wyswietla, problem w tym ze funkcji drukuj odechcialo sie dzialac ;/

tak sprawdzalem i podaje ją poprawnie

Ten post edytował miooodek 6.04.2008, 23:01:52
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 23:08:01
Post #11





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


Czyli do funkcji drukuj przekazana jest zmienna = 13 tak?

sprawdziłes w bazie czy jest takowy kontrachent ? i czy jego dane są poprawne?

skoro działa dla zmienna = 1,2,3...10,11,12

to moze cos z baza jest nie tak, tzn z komórkami... moze spróbuj skopiować dane z 12 i wkleić do 13(w bazie) i wtedy zobacz co sie wyświetla...


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 23:10:58
Post #12





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


zmienna 13, jest przekazywana do indexu, zeby wiedzial od ktorego ifa wykonywac skrypt, ale w hiddenach są jeszcze zmienne sesyjne, które normalnie gubią się po przeładowaniu od początku pliku indexu, wiec musiealem je jakos przekazac, i o dziwo dane z tych zmiennych są poprawne, a funkcja drukuj na ich podstawie wyswietlala wczesniejsze wyniki we wczesniejszych krokach...
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 23:26:18
Post #13





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


Jak dla mnie to poprostu gdzies coś zagmatwałeś:

Skoro podajesz do funkcji drukuj() id = 13 to znaczy, ze ma wyciagnac dane dla kontrachenta nr 13... myle sie?

poza tym... pogmatwane masz... tu id tam id... i tak własciwie nie wiadomo, które za co odpowiada...


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 23:27:00
Post #14





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Nawet gdy dam w kroku 13 cos takiego

  1. <?php
  2. echo drukuj(2);
  3. ?>


to funkcja drukuj nie chce wpypisac danych... a pole o id 2 napewno istnieje w bazie..

ehh nie wiem co jest nie tak ;/
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 23:35:12
Post #15





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


Czyli wszystko rozbija się o tą funkję smile.gif bo skoro nie ważne dla jakiego argumentu nie chce ona działać to znaczy, że coś w niej jest niepoprawnie...

  1. <?php
  2. function drukuj($kontrahent_id){
  3. mysql_select_db('transport'); 
  4. $zapytanie = "select * from kontrahenci WHERE kontrahent_id=".$kontrahent_id."";
  5. $wynik = mysql_query($zapytanie);
  6. @ $ile_znalezionych = mysql_numrows($wynik);
  7. for ($i=0; $i <$ile_znalezionych; $i++){
  8. $wiersz=mysql_fetch_array($wynik); echo 'Nazwa: ';
  9. echo stripslashes($wiersz['nazwa']);
  10. echo '<br />Miasto: ';
  11. echo stripslashes($wiersz['miasto']);
  12. echo '<br />NIP: ';
  13. echo stripslashes($wiersz['nip']);
  14. }}
  15. ?>



po pierwsze, jeśli używasz mysql w wersji 5 to SELECT powinien mieć: SELECT * FROM transport.kontrahenci WHERE ...

wielkość liter nie ma znaczenia, ale bądź KONSEKWENTNY!

poza tym, sprawdź co zwraca zmienna $ile_znalezionych ?

a tak w ogóle, to wyrzuca Ci jakiś bład? czy wcale nic sie nie dzieje?


--------------------
Go to the top of the page
+Quote Post
miooodek
post 6.04.2008, 23:41:31
Post #16





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


jak np wpisalem

  1. <?php
  2. echo drukuj(2);
  3. ?>


w kroku 4 to wyswietla wszystko swietnie, wiec z jakiego powodu mialbym zmieniac funkcje? wiem ze to glupie pytanie, ale nie rozumiem, a ile znalezionych to szczerze mówiac nie wiem do czego sluzy, przepisalem to z ksiazki o php, ale skoro dzialalo wczesniej zapisane tak to czemu teraz nagle robi problemy?

a w wyniku nie wyswietla niczego, chyba ze dam sobie echo z wyswietleniem zmiennych przekazanych postem z formularza...
Go to the top of the page
+Quote Post
isso
post 6.04.2008, 23:53:42
Post #17





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


łoł... czyli co ? na poczatku skryptu działa, a pod koniec już nie? czy ja dobrze Ciebie zrozumialem ?


--------------------
Go to the top of the page
+Quote Post
miooodek
post 7.04.2008, 08:08:54
Post #18





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Dokładnie tak tongue.gif, sam nie wiem o co chodzi biggrin.gif:D
Go to the top of the page
+Quote Post
isso
post 7.04.2008, 10:29:50
Post #19





Grupa: Zarejestrowani
Postów: 296
Pomógł: 32
Dołączył: 3.01.2005

Ostrzeżenie: (0%)
-----


W takim razie widze opcję jedną... któryś z Twoich plików wczytywanych przez include()" title="Zobacz w manualu PHP" target="_manual ma w sobie funkcje drukuj() i następuje jakiś konflikt... sprawdź to smile.gif


--------------------
Go to the top of the page
+Quote Post
miooodek
post 7.04.2008, 15:21:26
Post #20





Grupa: Zarejestrowani
Postów: 67
Pomógł: 1
Dołączył: 5.03.2008
Skąd: Kraków

Ostrzeżenie: (0%)
-----


w zadnym z plików includowanych nie ma funkcji drukuj, napisalem ją tylko w indexie winksmiley.jpg
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 24.06.2025 - 07:38