Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql]Aktualizacja danych, problem
outlive
post 14.12.2007, 22:50:28
Post #1





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

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


Witam
Mam pytanie do was
Mam 3 dane w bazie $tytul, $katalog, $nazwa_zdjecia.
Zrobilem sobie formularz tylko z jednym inputem ktory ma edytowac Tytul.
Dlaczego jak edytuje tytul to automatycznie w bazie kasuje sie $katalog i $nazwa_pliku questionmark.gif
Powód edycji: dodalem tagi (cysiaczek)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
PolKolo
post 14.12.2007, 22:57:00
Post #2





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

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


Napisz jak wygląda kod SQL zapytania do bazy jakm realizujesz te zmiany.
Prawidłowo powinien być klucz główny tabeli np. pole ID typu auto_increment wtedy takie zapytanie powinno wyglądać:

Kod
mysql_query("UPDATE tabela SET tytul ='$_POST[tytul]' WHERE id='$_POST[id]' ");


NA bieę możesz posłuzyć się nazwą zdjęcia przy założeniu, że jest unikalna:
Kod
mysql_query("UPDATE tabela SET tytul ='$_POST[tytul]' WHERE nazwa_zdjecia='$_POST[nazwa_zdjecia]' ");


Ten post edytował PolKolo 14.12.2007, 23:03:23
Go to the top of the page
+Quote Post
outlive
post 14.12.2007, 23:55:27
Post #3





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

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


Kod
if
($nic=="w3"){
(mysql_query("UPDATE $baza SET `tytul`='$tytul', `file_name`='$file_name', `katalog`='$katalog' WHERE `id`='$id'"));
exit;
  }

oto kod

formularzu nie umieszczam bo to zwykly input

nie wiem co moze byc zle
Go to the top of the page
+Quote Post
PolKolo
post 15.12.2007, 00:05:29
Post #4





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

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


Kasuje, bo z tego co Napisałeś na początku wysyłasz tylko dane z 1pola pozostałe zmienne są puste - stąd to "kasowanie danych" smile.gif
W zapytaniu UPDATE daj tylko pole które jest faktycznie zmieniane innymi danymi:

Kod
mysql_query("UPDATE $baza SET `tytul`='$tytul' WHERE `id`='$id'");


Ten post edytował PolKolo 15.12.2007, 00:05:48
Go to the top of the page
+Quote Post
outlive
post 15.12.2007, 00:14:07
Post #5





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

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


Zmienilem, wyslalem i przetestowalem
Teoretycznie masz racje, nie powinno byc tych pol bo wysylaja puste info do bazy tak jak napisales
W praktyce tytul sie zmienia a w miejsce pliku jest nadal puste miejsce sad.gif

Czego to jeszcze moze byc wina questionmark.gif
Go to the top of the page
+Quote Post
PolKolo
post 15.12.2007, 00:30:43
Post #6





Grupa: Zarejestrowani
Postów: 10
Pomógł: 0
Dołączył: 14.12.2007

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


A wysyłasz w ogóle jakieś id do klauzuli WHERE biggrin.gif
Go to the top of the page
+Quote Post
outlive
post 15.12.2007, 00:37:51
Post #7





Grupa: Zarejestrowani
Postów: 14
Pomógł: 0
Dołączył: 4.12.2007

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


kurcze podam caly kod bo sobie nie daje rady smile.gif

elseIF ( ISSET($HTTP_GET_VARS['id']) && ISSET($HTTP_GET_VARS['dzial']) && $HTTP_GET_VARS['dzial'] == "edytuj")
{

$link=mysql_query("SELECT * FROM $baza WHERE `id`=".$HTTP_GET_VARS['id']." LIMIT 1");
$wiersz=mysql_fetch_array($link);

echo '<div id="tab_dane2">
<div id="tab_pusta3"></div>
<div id="tab_funkcje" class="zwykly">Edytuj dane:</div><br/><br/>';
echo '<form name="upload2" method="POST" enctype="multipart/form-data" action="'.$baza.'.php?dzial=wyedytuj&id='.$wiersz['id'].'">

<input type="hidden" name="MAX_FILE_SIZE" value="1500000">
<div id="tab_pusta3"></div>
<div id="tab_tytul1" class="zwykly">Tytuł: </div>
<div id="tab_tytul2"><input type="text" name="tytul" size="66" value="'.$wiersz['tytul'].'" class="input1"></input></div>
<div id="tab_pusta3"></div>
<div id="tab_zdjecie1" class="zwykly">Opcje zdjęcia: </div>
<div id="tab_zdjecie2" class="link_zwykly1">
<select id="wybor" onChange="podmiana(this.value);" class="input1">
<option>wybierz</option>
<option name="ok" value="w1">dodaj nowe zdjęcie, stare zostanie zastąpione</option>
<option name="no" value="w2">skasuj stare zdjęcie</option>
<option name="nic" value="w3">zmień tylko tytuł</option>
</select>
</div>
<div id="w1">
<div id="tab_pusta3"></div>
<div id="tab_zdjecie1" class="zwykly">Nowe zdjęcie: </div>
<div id="tab_zdjecie2" class="link_zwykly1"><input type="file" name="file" size="45" style="font-style: Tahoma, Verdana, sans-serif; ; font-size:11px; border-style: solid 1px #898989;"></input></div>
<div id="tab_pusta3"></div>
<div id="tab_dzial1" class="zwykly">Wybierz dział: </div>
<div id="tab_dzial2">
<select name="katalog" style="width: 350px; border-style: solid 1px #898989" class="input1">
<option value="../Grafika/'.$kat.'">'.$nazwa.'</option>
</select></div>
</div>
<div id="w2">
<div id="tab_pusta3"></div>
<div id="tab_zdjecie1" class="zwykly">Stare zdjęcie: </div>
<div id="tab_zdjecie2" class="link_zwykly"><a href="'.$wiersz['katalog'].'/'.$wiersz['file_name'].'" target="_blank" class="link1">'.$wiersz['file_name'].'</a> (zdjęcie zostanie usunięte)</div>
</div>
<div id="w3"></div>
<div id="w4"></div>
<div id="tab_pusta3"></div>
<div id="tab_guzik1"></div>
<div id="tab_guzik2"><input type="submit" value="edytuj" class="input1"></div>
</div>
</form>

}
elseif(isset($HTTP_GET_VARS['dzial']) && $HTTP_GET_VARS['dzial']=='dopisz')
{

$katalog = $_POST['katalog'];
if
($ok=="w1"){
@copy("$file", "$katalog/$file_name");
}
mysql_query("INSERT INTO $baza VALUES(0,'$tytul','$file_name', '$katalog')");

}
elseIF ( ISSET($HTTP_GET_VARS["dzial"]) && $HTTP_GET_VARS["dzial"] == "wyedytuj")

{
$id=$_GET['id'];

$link=mysql_query("SELECT * FROM $baza WHERE `id`=".$HTTP_GET_VARS['id']." LIMIT 1");
$wiersz=mysql_fetch_array($link);

if
($nic=="w3"){
mysql_query("UPDATE $baza SET `tytul`='$tytul'");

exit;
}

}

Ten post edytował outlive 15.12.2007, 12:24:05
Powód edycji: zmieniłem bbcode (cysiaczek)
Go to the top of the page
+Quote Post
Cysiaczek
post 15.12.2007, 07:28:39
Post #8





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Przenoszę na Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
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 - 19:40