Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> funkcja getit(), wywala błąd :(
roobik
post 25.01.2005, 22:59:24
Post #1





Grupa: Zarejestrowani
Postów: 407
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław / Szczytna

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


Witam!
Tworzę właśnie mały skrypcik głosowania. W bazie (MySQL) mam:
id, wykonawca, tytul, punkty. Czy może mi ktoś pomóc w takiej spraiwe?
Kod
{

function getit($id) {
    
   $query = "SELECT * FROM toplista WHERE id='$id'";
   $wynik = mysql_query($query);
   $row = mysql_fetch_array($wynik);
  
   Header("Location: ".$row['2.php']);
  
  $query = "UPDATE toplista SET punkty=punkty+1 WHERE id='$id'";
   $wynik = mysql_query($query);
   exit();
  }


echo "\n<table border=1 width=422>";
echo "\n<td width=170>".$id['wykonawca']."</td>";
echo "\n<td width=170>".$id['utwor']."</td>";
echo "\n<td width=60>".$id['punkty']."</td>";
echo "\n<td width=22><a href='1.php?op=getit&id=1'><img
src='OBRAZKI/glosuj_but.gif' border=0></a></td>";


podajękod od linii 9 , gdzie wywala błąd :
Cytat
Fatal error: Cannot redeclare getit() (previously declared in /home/KONTA/WWW/konto1/1.php:9) in /home/KONTA/WWW/konto1/1.php on line 9


Już kilka wieczorów nad tym siedzę .... HELP ;(
Go to the top of the page
+Quote Post
crash
post 25.01.2005, 23:03:56
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Dwa razy zadeklarowałeś tą funkcję, sprawdz w /home/KONTA/WWW/konto1/1.php linia: 9, więcej będę mógł powiedzieć jak wkleisz cały kod, i użyjesz BBCode...


--------------------
Go to the top of the page
+Quote Post
roobik
post 25.01.2005, 23:20:42
Post #3





Grupa: Zarejestrowani
Postów: 407
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław / Szczytna

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


cały kod
Kod
<?
mysql_connect(localhost, ***, ***);
mysql_select_db(***);
$wykonaj=mysql_query("SELECT * FROM toplista");
while($id=mysql_fetch_array($wykonaj))

{

function getit($id) {
    
   $query = "SELECT * FROM toplista WHERE id='$id'";
   $wynik = mysql_query($query);
   $row = mysql_fetch_array($wynik);
  
   Header("Location: ".$row['2.php']);
  
  $query = "UPDATE toplista SET punkty=punkty+1 WHERE id='$id'";
   $wynik = mysql_query($query);
   exit();
  }


echo "\n<table border=1 width=422>";
echo "\n<td width=170>".$id['wykonawca']."</td>";
echo "\n<td width=170>".$id['utwor']."</td>";
echo "\n<td width=60>".$id['punkty']."</td>";
echo "\n<td width=22><a href='1.php?op=getit&id=1'><img
src='OBRAZKI/glosuj_but.gif' border=0></a></td>";

}

switch($op) {
    case "getit":
    getit($id);
   break;
}  
?>

... ot cały kod smile.gif
... hmm... BBCode używam, ale może nie oto chodzi... winksmiley.jpg
Go to the top of the page
+Quote Post
dr_bonzo
post 25.01.2005, 23:28:12
Post #4





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


Wyrzuc deklaracje funkcji poza petle while!
W tym miejscu wystepuje ponowna deklaracja funkcji


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
crash
post 25.01.2005, 23:35:30
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


Nie możesz deklarować funkcji w pętli to raz, dwa to wywołanie header - czy masz w bazie kolumne o nazwie 2.php? Ponad to, jeśli ten header zadziała to zapytanie po nim już nie zostanie wykonane. Co do BBCode używaj [ php ]

Mam chwilkę to napiszę jak mniej więcej to powinno wyglądać...
  1. <?php
  2. function getit($id)
  3. {
  4.     $wynik = mysql_query('SELECT * FROM toplista WHERE id='.$id);
  5.     $row = mysql_fetch_array($wynik);
  6.     
  7.     mysql_query('UPDATE toplista SET punkty = punkty + 1 WHERE id='.$id);
  8.     
  9.     header('Location: '.$row['tytul'].'.php'); // nie wiem do czego ma iść, wydaje mi się, że to w ogóle zbędne...
  10. }
  11.  
  12. $baza = mysql_connect(localhost, ***, ***); 
  13.  
  14. $op = $_GET['op'];
  15. $id = $_GET['id'];
  16.  
  17. if($op == 'getit' and isset($id))
  18. {
  19.     getit($id);
  20. }
  21.  
  22. $wykonaj = mysql_query(&#092;"SELECT * FROM toplista\");
  23.  
  24. while($wiersz = mysql_fetch_array($wykonaj))
  25. {
  26.     echo '<table border=\"1\" width=\"422\">'
  27.         .'<td width=\"170\">'.$w['wykonawca'].'</td>'
  28.         .'<td width=\"170\">'.$w['utwor'].'</td>'
  29.         .'<td width=\"60\">'.$w['punkty'].'</td>'
  30.         .'<td width=\"22\"><a href=\"?op=getit&id='.$w['id'].'\"><img src=\"OBRAZKI/glosuj_but.gif\" border=\"0\"/></a></td>'
  31.         .'</table>';
  32. }
  33.  
  34. mysql_close($baza);
  35. ?>

Mogą być jakieś błędy ze składnią, ale to już chyba mały problem...

Ten post edytował crashu 25.01.2005, 23:36:52


--------------------
Go to the top of the page
+Quote Post
roobik
post 25.01.2005, 23:47:03
Post #6





Grupa: Zarejestrowani
Postów: 407
Pomógł: 5
Dołączył: 25.01.2005
Skąd: Wrocław / Szczytna

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


miałem bardzo podobnie na początku no i tak:
teraz po starcie (jeszcze nie głosuję) wyskakuje mi :
Cytat
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/KONTA/WWW/konto1/1new.php on line 35

...a po głosowaniu:
Cytat
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /home/KONTA/WWW/konto1/1new.php on line 5

Warning: Cannot modify header information - headers already sent by (output started at /home/KONTA/WWW/konto1/1new.php:5) in /home/KONTA/WWW/konto1/1new.php on line 9

oraz :
Cytat
Warning: mysql_close(): supplied argument is not a valid MySQL-Link resource in /home/KONTA/WWW/konto1/1new.php on line 35


UPDATE 26.01.2005 00:24
OK, już wszystko gra. Drobny błędzik z mojej strony smile.gif
THX! PZDR!!!

Można zamknąć.

Ten post edytował roobik 26.01.2005, 01:28:00
Go to the top of the page
+Quote Post

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: 25.04.2024 - 17:46