Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> artykuly... problem z if
Pele
post 26.05.2004, 10:14:01
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Kraków

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


Witam, piszę scrypt artykułów na strone, ale mam problem (zresztą w większości przypadków jest on taki sam biggrin.gif) A więc mam kod:
[php:1:38408a2303]<?php
if ($action == add_art) {

add_art();

}

elseif ($action == pokaz) {

pokaz();

}

elseif ($action == edytuj_art) {

edytuj();

}

elseif ($action == edit_art) {

edit_art();

}
//itd...
else {
echo "ble!";
}
?>[/php:1:38408a2303]
a pod spodem mam zbiór funkcji:
[php:1:38408a2303]<?php
function add_art() {
//tutaj wszytsko to co dodaje artykuł
}

function edytuj_art()
{
echo("<div align='center'>
<form action='admin.php?action=edit_art&id=$id method='POST'>");

$zapytanie = "SELECT * FROM art WHERE id='$id'";
$result = mysql_query($zapytanie);
while($row = mysql_fetch_array($result)) {
echo("<input type='hidden' name='id' value='".$row['id']."'>
Temat: <input type='text' name='temat' value='".$row['temat']."'><BR>
Data dodania: <input type='text' name='add_data' value='".$row['add_data']."'><BR>
Treść: <textarea type='text' cols='40' rows='10' name='artykul' value='".$row['opis']."'>".$row['opis']."</textarea><BR>
<input type='submit' name='send' value='OK'>");
}
}
//--------------> Koniec funkcji edytującej (formularza)

function edit_art()
{
if($send=="OK") {
$zapytanie = "UPDATE art SET temat='$temat', add_data='$add_data', artykul='$artykul' WHERE id='$id'";
$wynik = mysql_query($zapytanie);
}
}

function pokaz()
{
$query = "SELECT * FROM art ORDER BY id";
$wynik = mysql_query($query);


while($row = mysql_fetch_array($wynik)) {

$row = str_replace("n", "n<br />", $row);

echo "<TR>n"
."<TD align=center class="pole"><B>".$row['id']."</B></TD><BR>"
."<TD align=center class="pole">".$row['temat']."</TD><BR>"
."<TD align=center class="pole">".$row['add_data']."</TD><BR>"
."<TD align=center class="pole">".$row['artykul']."</TD><BR>"
."<TD align=center class="pole">
<a href=admin.php?action=edytuj_art&id=".$row['id'].">Edytuj</a></TD><BR>"
."</TR>n";

}
echo "</TABLE>";
}
?>[/php:1:38408a2303]
I tu jest rpoblem gdy wpisze w przeglądarce:
http://adres.pl/artykuly/admin.php?action=pokaz
Wyświetla mi liste tych artykułów, ale gdy nacisne Edytuj to pojawia się biała strona. Przypuszczam że błąd jest gdzieś w konstrukcji linku lub gdzieś błąd jest przy if'ie ... Niestety nie mogę sobie poradzić...
Prosze o pomoc.
Pozdro.


--------------------
Http://Webdesign.li.pl - Projektowanie stron www :) - darmowe szablony
mail: pele1988@wp.pl | GG: 3493787 | Pozdrawiam!
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
kszychu
post 26.05.2004, 10:17:06
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Do funkcji edytuj_art() nie przekazujesz id artykulu. Musisz albo przekazac go jako parametr do funkcji: edytuj_art($id) albo ustawic globalną zmienna $id w ciele funkcji: global $id;


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
cichy
post 26.05.2004, 10:17:19
Post #3





Grupa: Przyjaciele php.pl
Postów: 197
Pomógł: 0
Dołączył: 9.09.2003
Skąd: z Marsa

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


[php:1:be02ca75f9]<?php
if ($_GET['action'] == 'add_art') {
add_art();
}
elseif ($_GET['action'] == 'pokaz') {
pokaz();
}
elseif ($_GET['action'] == 'edytuj_art') {
edytuj();
}
elseif ($_GET['action'] == 'edit_art') {
edit_art();
}
//itd...
else {
echo "ble!";
}
?>[/php:1:be02ca75f9]

Może teraz zadziała.
Pozdro
Go to the top of the page
+Quote Post
mike
post 26.05.2004, 10:20:49
Post #4





Grupa: Przyjaciele php.pl
Postów: 7 494
Pomógł: 302
Dołączył: 31.03.2004

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


  1. <?php
  2. //..
  3. elseif ($_GET['action'] == 'edytuj_art') { 
  4. edytuj(); // nie masz takiej metody !!!
  5. }
  6. //..
  7. ?>

Mie masz metody edytuj() tylko edytuj_art() dlatego nic się nie wyświetla.
Go to the top of the page
+Quote Post
Pele
post 26.05.2004, 10:38:26
Post #5





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Kraków

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


Dzięki kszychu!
Zadziałało! smile.gif
Teraz kolejny problem .. :/
Wyświetla się formularz a wnim informacj do edycji, ale gdy klikam "OK" to dokleja mi całą treśc z pół formularza i nic się nie dzieje :/


--------------------
Http://Webdesign.li.pl - Projektowanie stron www :) - darmowe szablony
mail: pele1988@wp.pl | GG: 3493787 | Pozdrawiam!
Go to the top of the page
+Quote Post
kszychu
post 26.05.2004, 10:41:27
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Sorry, weź no jaśniej.


--------------------
"Coś się kończy, coś się zaczyna." Andrzej Sapkowski
Go to the top of the page
+Quote Post
Pele
post 26.05.2004, 10:50:17
Post #7





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Kraków

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


Ok, no wiec.
Klikam edytuj, pojawia się formularz edycyjny z treścią do edycji, gdy zmienie ją (lub nie) to całą treść z formularza mi dokleja do paska adresu, a przecież metoda jest POST a nie GET :/
I w bazie nic się nie zmienia, text jest dalej ten sam co był ...


--------------------
Http://Webdesign.li.pl - Projektowanie stron www :) - darmowe szablony
mail: pele1988@wp.pl | GG: 3493787 | Pozdrawiam!
Go to the top of the page
+Quote Post
Blaster
post 26.05.2004, 16:24:23
Post #8





Grupa: Zarejestrowani
Postów: 28
Pomógł: 0
Dołączył: 2.03.2004

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


<form action="<? $PHP_SELF ?>" ............
Spróbuj tego, zamiast index.php?balbla=asd&costa=as.


--------------------
Plastic Cup Politics
Go to the top of the page
+Quote Post
Pele
post 26.05.2004, 16:51:39
Post #9





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Kraków

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


Blaster nic to nie dało.
Ale za to znalazłem błąd i wiem dlaczego mi doklejało to do paska adresu smile.gif
[php:1:a60dbe260e]<?php
<form action='admin.php?action=edit_art&id=$id method='POST'>"
?>[/php:1:a60dbe260e]
w action zapomniałem domknąć ' <- tego cudzysłowia.
No ale dalej mi nie modyfikuje wpisu sad.gif
HELP!


--------------------
Http://Webdesign.li.pl - Projektowanie stron www :) - darmowe szablony
mail: pele1988@wp.pl | GG: 3493787 | Pozdrawiam!
Go to the top of the page
+Quote Post
Liko
post 26.05.2004, 17:51:54
Post #10





Grupa: Zarejestrowani
Postów: 436
Pomógł: 6
Dołączył: 8.11.2003
Skąd: Szczecin

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


Bo musisz się odwoływać do tablic SuperGlobalnych czyli $_POST i $_GET Wtedy będzie działać napweno. Funkcja:
[php:1:3ff96f1978]<?php
function edit_art()
{
if($_POST['send']=="OK") {
$zapytanie = "UPDATE art SET temat='".$_POST['temat']."', add_data='".$_POST['add_data']."', artykul='".$_POST['artykul']."' WHERE id='".$_POST['id']."'";
$wynik = mysql_query($zapytanie);
}
}
?>[/php:1:3ff96f1978]
Go to the top of the page
+Quote Post
Pele
post 26.05.2004, 17:59:58
Post #11





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 11.09.2003
Skąd: Kraków

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


No tak ... Dzięki laugh.gif
Temat zamknięty


--------------------
Http://Webdesign.li.pl - Projektowanie stron www :) - darmowe szablony
mail: pele1988@wp.pl | GG: 3493787 | Pozdrawiam!
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: 19.07.2025 - 16:58