Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [sql] problem z UPDATE
klekot
post
Post #1





Grupa: Zarejestrowani
Postów: 78
Pomógł: 0
Dołączył: 16.08.2005

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


Mam problem z poleceniem update, nie chca sie nadpisac dane. Czy mam cos zle? Próbowałem na dwóch poleceniach.

  1. $aktualka = "UPDATE `teledyski` SET `czas`=$czas_trwania AND opis=$opis AND czas=$czas AND kategoria=$kategoria AND `tytul`=$tytul AND wykonawca=$wykonawca
  2. WHERE `tytul` = '$c[tytul]' LIMIT 1 ";

i
  1. $sql = "UPDATE `teledyski` SET `tytul` = ''$tytul'' AND `kategoria` = ''$kategoria'' AND `opis` = ''$opis'' AND `czas` = ''$czas_trwania'' AND `ocena` = ''$ocena'' AND `wykonawca` = ''$wykonawca''WHERE `adres` = ''$c[adres]'' LIMIT 1 ";

Zaden nie chce dzialac

Ten post edytował klekot 23.02.2008, 18:32:38
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
potreb
post
Post #2





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Pokazałeś nam swoje zapytanie, widać jak byk że zmienna tytuł nie jest przekazywana, podobnie jak czas. W zapytaniu stosujesz dwa pola czas! Wiec które jest za co odpowiedzialne? Próbujesz swoim skryptem znaleźć najpierw tytul i go z edytować, a co będzie jak będa dwa takie same tytuły?

  1. <?php
  2. if($db = mysql_connect("localhost", "root", "")) {
  3. mysql_select_db("test2");
  4.  
  5. echo('Znajdz plik który chcesz edytować
  6. <form action="?action=edycja" method="post">
  7.  Tytul: <input type="text" name="tyt"><br>
  8. <input type="submit" name="wyslij" value="Wyslij"><br>
  9. </form>');
  10. if(!empty($_POST['tyt'])){
  11. $tyt = $_POST['tyt'];
  12. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'"');
  13. $query = mysql_query($sql, $db);
  14. while($c = mysql_fetch_array($query)) {
  15.  
  16. print($c['adres'].'<br>');
  17. print('Tytul: '.$c['tytul'].'<br>');
  18. print('Wykonawca: '.$c['wykonawca'].'<br>');
  19. print('Czas: '.$c['czastrwania'].'<br>');
  20.  
  21. print('  <BR><BR><BR>  ');
  22. print('Zmień dane (musisz wpisać wszystkie informacje).<br><br>  ');
  23. print('<form action="?action=edycja" method="post"> ');
  24. print('Wykonawca: <input type="text" name="wykonawca" value='.$c['wykonawca'].'> Tytul: <input type="text" name="tytul" value='.$c['tytul'].'>');
  25.  
  26. print('<br>Kategoria: <select name="kategoria" value='.$c['kategoria'].'>');
  27. print(' <option>Country</option> ');
  28. print(' <option>Dance</option>  ');
  29. print(' <option>Disco_Polo</option>  ');
  30. print(' <option>Dla_Dzieci</option> ');
  31. print(' <option>Hip-Hop</option> ');
  32. print(' <option>Jazz</option> ');
  33. print(' <option>Metal</option> ');
  34. print(' <option>Pop</option>  ');
  35. print(' <option>Rock</option>  ');
  36. print(' <option>Techno</option> ');
  37. print('  ');
  38. print(' <option>Hip-Hop</option>  ');
  39. print('  </select><br> ');
  40. print('Opis: <br><textarea name="opis" rows="5" cols="40">'.$c['opis'].'</textarea><br> ');
  41. print('Czas trwania: <input type="text" name="czastrwania" size="4" value='.$c['czastrwania'].' ><input type="hidden" name="id" size="4" value='.$c['id'].' >');
  42. print('<br><input type="submit" name="zapisz" value="Zapisz">  ');
  43. print('</form>  ');
  44.  }
  45. }
  46.  
  47. if(isset($_POST['zapisz'])){
  48. $id = $_POST['id'];
  49. $czastrwania = $_POST['czastrwania'];
  50. $opis = $_POST['opis'];
  51. $czas = $_POST['czas'];
  52. $kategoria = $_POST['kategoria'];
  53. $tytul = $_POST['tytul'];
  54. $wykonawca = $_POST['wykonawca'];
  55. $aktualka = ('UPDATE teledyski SET czastrwania="'.$czastrwania.'", opis="'.$opis.'", czas="'.$czas.'", kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE id = "'.$id.'"');
  56. echo $aktualka;
  57. $nowe = mysql_query($aktualka, $db) or die(mysql_error());
  58. echo $nowe;
  59. echo 'Zmiany zostały zapisane';
  60. }
  61. }
  62. else echo('Blad podczas polaczenia z baza');
  63.  
  64. ?>


Na krasnalu tego nie widać ale pierwszy lepszy serwer i nie wysłałbyś danych i później wróciłbyś z następnym problemem, dlaczego bo nie zastosowałeś zmiennych globalnych POST! Przypatrz sie dokładnie zapytaniu. Masz pole które nazywa się czastrwania a nie tak jak przedtem czas! Jak umiesz dodawać i edytować kolumny z poziomu phpmyadmin to zmienisz nazwe sobie.

A tak powinna wyglądać tabela.
  1. CREATE TABLE `teledyski` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `adres` varchar(255) NOT NULL,
  4. `czastrwania` varchar(255) NOT NULL,
  5. `opis` text NOT NULL,
  6. `czas` varchar(255) NOT NULL,
  7. `kategoria` varchar(255) NOT NULL,
  8. `tytul` varchar(255) NOT NULL,
  9. `wykonawca` varchar(255) NOT NULL,
  10. PRIMARY KEY (`id`)
  11. ) ENGINE=MyISAM;


Tzn może bez tych varcharów wszędzie.

Ten post edytował potreb 24.02.2008, 00:55:32
Go to the top of the page
+Quote Post

Posty w temacie
- klekot   [sql] problem z UPDATE   23.02.2008, 18:30:44
- - potreb   Nie wiem jak ww zapytanie wymyśliłe...   23.02.2008, 18:34:52
- - marcio   [PHP] pobierz, plaintext <?php$aktualka = ...   23.02.2008, 18:35:32
- - klekot   No to chyba mam cos zle z czym innym, bo wasze zap...   23.02.2008, 19:01:50
- - marcio   Forma nie widze ale na moje oko to: [PHP] pobierz,...   23.02.2008, 19:13:29
- - slawny   [PHP] pobierz, plaintext <?php$aktualka =mysql_...   23.02.2008, 19:22:59
- - klekot   Ehh... Poddaje sie. Podam kod i powiedzcie co mam ...   23.02.2008, 21:58:27
- - jacus24   [PHP] pobierz, plaintext <?php$aktualka = ...   23.02.2008, 22:10:56
- - marcio   [PHP] pobierz, plaintext Znajdz plik który chcesz ...   23.02.2008, 22:17:23
- - klekot   Dalej to samo. Nie wyskakuje zaden komunikat, wszy...   23.02.2008, 22:22:08
- - marcio   A dobrze ci wszystko wyswietla chodzi mi o info bo...   23.02.2008, 22:25:44
- - klekot   jak wyszukuje teledysk, to jest wszystko ok. A jak...   23.02.2008, 22:28:23
- - marcio   Zrob tak: [PHP] pobierz, plaintext <?phpif...   23.02.2008, 22:30:51
- - klekot   Nic sie nie zmienilo, dalej to samo   23.02.2008, 22:34:41
- - marcio   Nom ok ale echo nie wyswietla tresci zapytania?? B...   23.02.2008, 22:37:22
- - klekot   Nie, nie pokazuje sie zaden tekst. nawet ten moj [...   23.02.2008, 22:39:08
- - marcio   Masz to na jakiejs stronie??To daj link chodz widz...   23.02.2008, 22:48:07
- - klekot   Przy testowaniu tego korzystam z dwóch plikow. ogl...   23.02.2008, 22:50:11
- - marcio   A probowales kod wyzej tez kiedys mialem jeden if ...   23.02.2008, 22:55:40
- - klekot   Warning: mysql_query(): supplied argument is not a...   23.02.2008, 22:58:36
- - marcio   Wyedytowalem juz ten kod u gory P.S nigdy nie mi...   23.02.2008, 23:01:57
- - klekot   napisalo mi ze: UPDATE teledyski SET czas=3:00, op...   23.02.2008, 23:07:35
- - potreb   Pokazałeś nam swoje zapytanie, wida...   24.02.2008, 00:09:42
- - marcio   @POTREB co do tego post to masz racje pokazalem mu...   24.02.2008, 00:44:19
- - potreb   @marcio tylko jeszcze google adsense brakuje to te...   24.02.2008, 00:50:17
- - klekot   A teraz mam takie cos Warning: mysql_fetch_array()...   25.02.2008, 16:29:02
|- - potreb   Cytat(klekot @ 25.02.2008, 16:29:02 )...   25.02.2008, 17:16:09
- - klekot   [HTML] pobierz, plaintext -- -- Struktura tabeli d...   25.02.2008, 22:12:52
- - potreb   No i się nie pytaj dlaczego coś tam mysql_fetch_ar...   25.02.2008, 23:35:27
- - klekot   Ehhh. Wreszcie sie udalo, wszystko dziala. Problem...   26.02.2008, 14:15:47


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 Aktualny czas: 11.10.2025 - 10:11