Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [sql] problem z UPDATE
Forum PHP.pl > Forum > Przedszkole
klekot
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
potreb
Nie wiem jak ww zapytanie wymyśliłeś, ale chyba w manualu takiego czegoś nie ma.

  1. <?php
  2. $aktualka = "UPDATE `teledyski` SET `czas`='$czas_trwania', opis='$opis', czas='$czas', kategoria='$kategoria', `tytul`='$tytul', wykonawca='$wykonawca'
  3. WHERE `tytul` = '$c[tytul]'" or die(mysql_error());
  4. ?>
marcio
  1. <?php
  2. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  3. ?>

Cos takiego??

Ok teraz jest good
klekot
No to chyba mam cos zle z czym innym, bo wasze zapytania tez nie dzialaja.
Jesli sie pprzyda to sprawdzcie jeszcze to:
  1. <?php
  2. if(isset($wyslij)){
  3. $db = mysql_connect("localhost", "root", "krasnal");
  4. $dbs = mysql_select_db("teledyski");
  5. $sql = "SELECT * FROM `teledyski` WHERE `tytul` LIKE '$tyt' LIMIT 0, 30";
  6. $c = mysql_fetch_array(mysql_query($sql )) ;
  7. ?>

Reszta kodu to same formularze
marcio
Forma nie widze ale na moje oko to:
  1. <?php
  2. if(isset($_POST['wyslij'])){
  3. $db = mysql_connect("localhost", "root", "krasnal");
  4. $dbs = mysql_select_db("teledyski");
  5. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'" LIMIT 0, 30');
  6. $query = mysql_query($sql, $db);
  7. $c = mysql_fetch_assoc($query);
  8. }
  9. ?>
slawny
  1. <?php
  2. $aktualka =mysql_query("UPDATE teledyski SET `czas`= '$czas_trwania', `opis`='opis', `czas`='$czas',  `kategoria`='$kategoria', `tytul`='tytul', `wykonawca`='$wykonawca'
  3. WHERE `tytul` = '$c[tytul]' LIMIT 1  ");
  4. ?>


a co to ma byc?
  1. <?php
  2. WHERE `tytul` = '$c[tytul]' LIMIT 1
  3. ?>

po co tam limit warunek po where powinien jednoznacznie okreslac ktory wiersz ma byc edytowany a nie jeszcze limit do tego co by oznaczalo ze masz wiecej rekorow gdzie `tytul` = '$c[tytul]'
klekot
Ehh... Poddaje sie. Podam kod i powiedzcie co mam zle. Jesli myslicie ze ide na latwizne to macie racje. Nie mam pojecia czemy nie chce dzialac.
  1. Znajdz plik który chcesz edytować
  2. <form action=?action=edycja method=POST>
  3.  Tytul: <input type=text name=tyt><br>
  4. <input type=submit name=wyslij value=Wyslij><br>
  5. <?
  6. if(isset($_POST['wyslij'])){
  7. $db = mysql_connect("localhost", "root", "krasnal");
  8. $dbs = mysql_select_db("teledyski");
  9. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'" LIMIT 0, 30');
  10. $query = mysql_query($sql, $db);
  11. $c = mysql_fetch_array($query);
  12.  
  13.  
  14.  
  15. print($c['adres'].'<br>');
  16. print('Tytul: '.$c['tytul'].'<br>');
  17. print('Wykonawca: '.$c['wykonawca'].'<br>');
  18. print('Czas: '.$c['czas'].'<br>');
  19.  
  20. print('  <BR><BR><BR>  ');
  21. print('Zmień dane (musisz wpisać wszystkie informacje).<br><br>  ');
  22. print('<form action=?action=edycja method=POST> ');
  23. print('Wykonawca: <input type=text name=wykonawca value='.$c[wykonawca].'> Tytul: <input type=text name=tytul value='.$c[tytul].'>');
  24.  
  25. print('<br>Kategoria: <select name=kategoria value='.$c[kategoria].'>');
  26. print(' <option>Country</option> ');
  27. print(' <option>Dance</option>  ');
  28. print(' <option>Disco_Polo</option>  ');
  29. print(' <option>Dla_Dzieci</option> ');
  30. print(' <option>Hip-Hop</option> ');
  31. print(' <option>Jazz</option> ');
  32. print(' <option>Metal</option> ');
  33. print(' <option>Pop</option>  ');
  34. print(' <option>Rock</option>  ');
  35. print(' <option>Techno</option> ');
  36. print('  ');
  37. print(' <option>Hip-Hop</option>  ');
  38. print('  </select><br> ');
  39. print('Opis: <br><textarea name=opis rows=5 cols=40></textarea><br> ');
  40. print('Czas trwania: <input type=text name=czas_trwania size=4 value='.$c['czas'].' >');
  41. print('<br><input type=submit name=zapisz value=Zapisz>  ');
  42. print('</form>  ');
  43. if(isset($zapisz)){
  44. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  45. mysql_query($aktualka);
  46. print('Zmiany zostały zapisane');
  47. }
  48. }
  49.  
  50. ?>
jacus24
  1. <?php
  2. $aktualka = "UPDATE teledyski SET 
  3. czas = '" .$czas_trwania. "' , 
  4. opis = '" .$opis. "' , 
  5. czas = '" .$czas. "' ,
  6. kategoria = '" .$kategoria. "' , 
  7. tytul = '" .$tytul. "' , 
  8. wykonawca = '" .$wykonawca. "' 
  9. WHERE tytul = '" . $c['tytul'] . "' ";
  10.  
  11.  mysql_query($aktualka);
  12. ?>
marcio
  1. Znajdz plik który chcesz edytować
  2. <form action="?action=edycja" method="post">
  3.  Tytul: <input type="text" name="tyt"><br>
  4. <input type="submit" name="wyslij" value="Wyslij"><br>
  5. </form>
  6. <?
  7. if(!empty($_POST['tyt'])){
  8. $db = mysql_connect("localhost", "root", "krasnal");
  9. $dbs = mysql_select_db("teledyski");
  10. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'" LIMIT 0, 30');
  11. $query = mysql_query($sql, $db);
  12. while($c = mysql_fetch_array($query)) {
  13.  
  14. print($c['adres'].'<br>');
  15. print('Tytul: '.$c['tytul'].'<br>');
  16. print('Wykonawca: '.$c['wykonawca'].'<br>');
  17. print('Czas: '.$c['czas'].'<br>');
  18.  
  19. print('  <BR><BR><BR>  ');
  20. print('Zmień dane (musisz wpisać wszystkie informacje).<br><br>  ');
  21. print('<form action="?action=edycja" method="post"> ');
  22. print('Wykonawca: <input type=text name=wykonawca value='.$c['wykonawca'].'> Tytul: <input type="text" name="tytul" value='.$c['tytul'].'>');
  23.  
  24. print('<br>Kategoria: <select name="kategoria" value='.$c['kategoria'].'>');
  25. print(' <option>Country</option> ');
  26. print(' <option>Dance</option>  ');
  27. print(' <option>Disco_Polo</option>  ');
  28. print(' <option>Dla_Dzieci</option> ');
  29. print(' <option>Hip-Hop</option> ');
  30. print(' <option>Jazz</option> ');
  31. print(' <option>Metal</option> ');
  32. print(' <option>Pop</option>  ');
  33. print(' <option>Rock</option>  ');
  34. print(' <option>Techno</option> ');
  35. print('  ');
  36. print(' <option>Hip-Hop</option>  ');
  37. print('  </select><br> ');
  38. print('Opis: <br><textarea name="opis" rows="5" cols="40"></textarea><br> ');
  39. print('Czas trwania: <input type="text" name="czas_trwania" size="4" value='.$c['czas'].' >');
  40. print('<br><input type="submit" name="zapisz" value="Zapisz">  ');
  41. print('</form>  ');
  42. }
  43. if(isset($_POST['zapisz'])){
  44. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  45. mysql_query($aktualka) or die(mysql_error());
  46. print('Zmiany zostały zapisane');
  47. }
  48. }
  49.  
  50. ?>
klekot
Dalej to samo. Nie wyskakuje zaden komunikat, wszystko jest tak jakby bylo ok, a jak sprawdzam wpisy to sie nic nie zmienia.
marcio
A dobrze ci wszystko wyswietla chodzi mi o info bo moze podajesz zla tabele lub kolumny to update a jak nie widzisz zadnych info to masz zle pasy albo zla baza podajesz
klekot
jak wyszukuje teledysk, to jest wszystko ok. A jak chce zmienic dane to pojawiaja sie problemy.
marcio
Zrob tak:
  1. <?php
  2. if(isset($_POST['zapisz'])){
  3. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  4. echo($aktualka);
  5. $nowe = mysql_query($aktualka, $db) or die(mysql_error());
  6. echo($nowe);
  7. print('Zmiany zostały zapisane');
  8. }
  9. ?>

Pokaz wynik
klekot
Nic sie nie zmienilo, dalej to samo
marcio
Nom ok ale echo nie wyswietla tresci zapytania??
Bo jak nie to tak jakby w ogole sie nie polaczylo z baza
klekot
Nie, nie pokazuje sie zaden tekst. nawet ten moj
  1. <?php
  2. print('Zmiany zostały zapisane');
  3. ?>
marcio
Masz to na jakiejs stronie??To daj link chodz widze ze baze masz na local'u wiec watpie luknij w zrodlo 2 form'a jak wyglada bo nie wiem taki latwy skrypt ale jakos nie wiem......smile.gif

Sproboj tak bo miales jeden warunek zagniezdzony w drugim
  1. Znajdz plik który chcesz edytować
  2. <form action="?action=edycja" method="post">
  3.  Tytul: <input type="text" name="tyt"><br>
  4. <input type="submit" name="wyslij" value="Wyslij"><br>
  5. </form>
  6. <?
  7. if(!empty($_POST['tyt'])){
  8. $db = mysql_connect("localhost", "root", "krasnal");
  9. $dbs = mysql_select_db("teledyski");
  10. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'" LIMIT 0, 30');
  11. $query = mysql_query($sql, $db);
  12. while($c = mysql_fetch_array($query)) {
  13.  
  14. print($c['adres'].'<br>');
  15. print('Tytul: '.$c['tytul'].'<br>');
  16. print('Wykonawca: '.$c['wykonawca'].'<br>');
  17. print('Czas: '.$c['czas'].'<br>');
  18.  
  19. print('  <BR><BR><BR>  ');
  20. print('Zmień dane (musisz wpisać wszystkie informacje).<br><br>  ');
  21. print('<form action="?action=edycja" method="post"> ');
  22. print('Wykonawca: <input type="text" name="wykonawca" value='.$c['wykonawca'].'> Tytul: <input type="text" name="tytul" value='.$c['tytul'].'>');
  23.  
  24. print('<br>Kategoria: <select name="kategoria" value='.$c['kategoria'].'>');
  25. print(' <option>Country</option> ');
  26. print(' <option>Dance</option>  ');
  27. print(' <option>Disco_Polo</option>  ');
  28. print(' <option>Dla_Dzieci</option> ');
  29. print(' <option>Hip-Hop</option> ');
  30. print(' <option>Jazz</option> ');
  31. print(' <option>Metal</option> ');
  32. print(' <option>Pop</option>  ');
  33. print(' <option>Rock</option>  ');
  34. print(' <option>Techno</option> ');
  35. print('  ');
  36. print(' <option>Hip-Hop</option>  ');
  37. print('  </select><br> ');
  38. print('Opis: <br><textarea name="opis" rows="5" cols="40"></textarea><br> ');
  39. print('Czas trwania: <input type="text" name="czas_trwania" size="4" value='.$c['czas'].' >');
  40. print('<br><input type="submit" name="zapisz" value="Zapisz">  ');
  41. print('</form>  ');
  42.  }
  43. }
  44.  
  45.  if(isset($_POST['zapisz'])){
  46. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  47. echo($aktualka);
  48. $nowe = mysql_query($aktualka, $db) or die(mysql_error());
  49. echo($nowe);
  50. print('Zmiany zostały zapisane');
  51. }
  52.  
  53. ?>
klekot
Przy testowaniu tego korzystam z dwóch plikow.
ogladanie.php
  1. <?php
  2. $connect = mysql_connect("localhost", "root", "krasnal");
  3. $db = mysql_select_db("teledyski");
  4. $mysql = mysql_query("SELECT * FROM `teledyski`")or die(mysql_error());
  5. while($fetch = mysql_fetch_array($mysql)) {
  6. print('<br><br><br> '.$fetch['wykonawca'].' - '.$fetch['tytul'] );
  7. print("<br>".$fetch['adres']);
  8. }
  9. ?>

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

Wedlug mnie, wszystko jest ok i polaczenie z baza jest na 100% bo wyszukiwanie jest tez w pliku edycja.php i to dziala, ale zmiana danych juz nie. Moze ktos inny widzi w tym jakis blad

Ooo... Nowość. Wreszcie sie cos dzieje nowego. Wyskoczyl blad jak wstawilem ten twoj kod
<i>UPDATE teledyski SET czas=3:00, opis="", czas=, kategoria="Country" , tytul="Garda", wykonawca="Bezimienni" WHERE tytul = "" LIMIT 1
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\usr\apache\httpd\html\teledyski\edycja.php on line 48</i>
marcio
A probowales kod wyzej tez kiedys mialem jeden if w drugim i mi sie plik nie edytowal

A nie mowilem drugi if nigdy sie nie wykonywal

Teraz powinno byc good
  1. <?php
  2. if($db = mysql_connect("localhost", "root", "krasnal")) {
  3. mysql_select_db("teledyski");
  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. $sql = ('SELECT * FROM teledyski WHERE tytul LIKE "'.$tyt.'" LIMIT 0, 30');
  12. $query = mysql_query($sql, $db);
  13. while($c = mysql_fetch_array($query)) {
  14.  
  15. print($c['adres'].'<br>');
  16. print('Tytul: '.$c['tytul'].'<br>');
  17. print('Wykonawca: '.$c['wykonawca'].'<br>');
  18. print('Czas: '.$c['czas'].'<br>');
  19.  
  20. print('  <BR><BR><BR>  ');
  21. print('Zmień dane (musisz wpisać wszystkie informacje).<br><br>  ');
  22. print('<form action="?action=edycja" method="post"> ');
  23. print('Wykonawca: <input type="text" name="wykonawca" value='.$c['wykonawca'].'> Tytul: <input type="text" name="tytul" value='.$c['tytul'].'>');
  24.  
  25. print('<br>Kategoria: <select name="kategoria" value='.$c['kategoria'].'>');
  26. print(' <option>Country</option> ');
  27. print(' <option>Dance</option>  ');
  28. print(' <option>Disco_Polo</option>  ');
  29. print(' <option>Dla_Dzieci</option> ');
  30. print(' <option>Hip-Hop</option> ');
  31. print(' <option>Jazz</option> ');
  32. print(' <option>Metal</option> ');
  33. print(' <option>Pop</option>  ');
  34. print(' <option>Rock</option>  ');
  35. print(' <option>Techno</option> ');
  36. print('  ');
  37. print(' <option>Hip-Hop</option>  ');
  38. print('  </select><br> ');
  39. print('Opis: <br><textarea name="opis" rows="5" cols="40"></textarea><br> ');
  40. print('Czas trwania: <input type="text" name="czas_trwania" size="4" value='.$c['czas'].' >');
  41. print('<br><input type="submit" name="zapisz" value="Zapisz">  ');
  42. print('</form>  ');
  43.  }
  44. }
  45.  
  46.  if(isset($_POST['zapisz'])){
  47. $aktualka = ('UPDATE teledyski SET czas='.$czas_trwania.', opis="'.$opis.'", czas='.$czas.', kategoria="'.$kategoria.'" , tytul="'.$tytul.'", wykonawca="'.$wykonawca.'" WHERE tytul = "'.$c['tytul'].'" LIMIT 1 ');
  48. echo($aktualka);
  49. $nowe = mysql_query($aktualka, $db) or die(mysql_error());
  50. echo($nowe);
  51. print('Zmiany zostały zapisane');
  52.  }
  53. }
  54. else echo('Blad podczas polaczenia z baza');
  55.  
  56. ?>
klekot
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource in c:\usr\apache\httpd\html\teledyski\edycja.php on line 12

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\teledyski\edycja.php on line 13

Wyciaglem warunek ze swojego kodu i pokazuje sie txt ze zmiany zostaly zapisane, ale tak naprawde to nic sie nie zmienilo
marcio
Wyedytowalem juz ten kod u gory

P.S nigdy nie mialem tyle problemow z tak prostym kodem dzis nie dzien na takie rzeczy biggrin.gif
klekot
napisalo mi ze: UPDATE teledyski SET czas=3:00, opis="", czas=, kategoria="Country" , tytul="Garda", wykonawca="Bezimienni" WHERE tytul = "" LIMIT 1 Something is wrong in your syntax obok ':00, opis="", czas=, kategoria="Country" , tytul="Garda", wykona' w linii 1
Ale sie nic nie zmienilo w bazie. Jak cos to jutro odpisze na posty, bo ide juz spac i dzieki wszystkim za pomoc. Z punktami (za pomoc) rozlicze sie jutro
potreb
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.
marcio
@POTREB co do tego post to masz racje pokazalem mu to w kodzie ale napisalem ze ma tak robic...smile.gif
potreb
@marcio tylko jeszcze google adsense brakuje to tego skryptu. Przedtem tytul przekazywał przez zmieną $c['tytul'], która była poza while i dlatego update nie było blink.gif
klekot
A teraz mam takie cos
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\teledyski\edycja.php on line 14
Wiem ze to napewno chodzi o linie 12, gdzie jest zapytanie, ale nie potrafie tego naprawic. Z mysql array zawsze mam problem z usuwaniem bledow. Probowalem nawet za pomoca phpmyadmin
  1. <?php
  2. IF($db = mysql_connect("localhost", "root", "krasnal")) {
  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. mysql_close($db);
  61. }
  62. }
  63. else echo('Blad podczas polaczenia z baza');
  64.  
  65. ?>
potreb
Cytat(klekot @ 25.02.2008, 16:29:02 ) *
A teraz mam takie cos
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\usr\apache\httpd\html\teledyski\edycja.php on line 14
Wiem ze to napewno chodzi o linie 12, gdzie jest zapytanie, ale nie potrafie tego naprawic. Z mysql array zawsze mam problem z usuwaniem bledow. Probowalem nawet za pomoca phpmyadmin


Jakim sposobem chcesz przez phpmyadmin usunąc taki błąd? Oprócz wklejania błędów naucz się podstawowych zagadnień z php i mysql. Napisałem ci rozwiązanie, działa na 100%. Nawet ci wkleiłem zmodyfikowaną bazę danych, nikt za ciebie nie będzie odwalał fuszerki bo coś tam ci nie gra. A jak możesz to wklej nam strukture swojej tabeli teledyski.
klekot
  1. --
  2. -- Struktura tabeli dla `teledyski`
  3. --
  4.  
  5. CREATE TABLE `teledyski` (
  6. `id` int(11) NOT NULL auto_increment,
  7. `tytul` text NOT NULL,
  8. `adres` text NOT NULL,
  9. `kategoria` text NOT NULL,
  10. `opis` text NOT NULL,
  11. `czas` text NOT NULL,
  12. `ocena` text NOT NULL,
  13. `wykonawca` text NOT NULL,
  14. KEY `id` (`id`)
  15. ) TYPE=MyISAM AUTO_INCREMENT=8 ;

To ze wszystkie(prawie) pola sa typu text to chyba malo wazne(tak mi sie wydaje).
No ok. jakos sobie poradze z tym bledem.
A z tym phpmyadmin to chodzilo mi o wywolanie kodu przez phpmyadmin i wklejenie go do mojego kodu(oczywiscie z podmiana wartosci)
potreb
No i się nie pytaj dlaczego coś tam mysql_fetch_array skoro nawet nie chcialo ci sie wgrac zedytowanej tabeli z postu poprzedniego
klekot
Ehhh. Wreszcie sie udalo, wszystko dziala. Problemem nie byla struktura bazy, tylko jedna niepotrzebna zmienna (czastrwania). Wiem ze w skrypcie ktory podalem, ona tam byla i wszystkich przez to wprowadzilem w blad. Dzieki za pomoc.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.