Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][HTML][MYSQL]pole select problem z aktualizacja rekordów
Forum PHP.pl > Forum > Przedszkole
bratpit
witam mam problem z aktualizowaniem wybrnaego rekordu z pola select oto kod

  1. <?php
  2.  
  3. require_once('funkcje_admin.php');
  4.  
  5. naglowek_html();
  6.  
  7. $lacz = lacz_baza();
  8.  
  9. if(!$lacz)
  10.  
  11.   { echo 'brak polaczenia';}
  12.  
  13. ?>
  14.  
  15. <tr><td width="200" height="100"><form method="post" action="edytuj_kategorie.php">
  16.  
  17. Wybierz nazwę kategorii do usunięcia:</p></td> <td align="left" ><select name="edytuj_kat">
  18.  
  19. <?php $zapytanie = "select id_kategori, nazwa from kategorie";
  20.  
  21. $wynik = mysql_query($zapytanie);
  22.  
  23. $ile_znalezionych =mysql_num_rows($wynik);
  24.  
  25. for($i=0; $i<$ile_znalezionych;$i++)
  26.  
  27. {$wiersz = mysql_fetch_array($wynik);
  28.  
  29. $id= $wiersz['id']; $nazwa=$wiersz['nazwa'];
  30.  
  31. echo "<option value=$nazwa>$nazwa</option>"; }?>
  32.  
  33. </td></tr>
  34.  
  35. <tr><td colspan="2" align="left"><input type="submit" value="edytuj katalog"></td></tr>  </form></table></td></tr></table></td></tr></table>
  36.  
  37. <?php  stopka_html();  ?>




teraz kod odpowiedzialny za aktualizacje który nie chce aktualziowac wybrengo rekordu z pola select
  1. <?php
  2.  
  3. $nazwa = $HTTP_POST_VARS['nazwa'];
  4.  
  5.  
  6. $opis = $HTTP_POST_VARS['opis'];
  7. move_uploaded_file($_FILES['obraz']['tmp_name'],"zdjecia/".$_FILES['obraz']['name']);
  8. $edytuj_kat =$HTTP_POST_VARS['edytuj_kat'];
  9. $name = 'zdjecia/'.$_FILES['obraz']['name'];
  10. $lacz = lacz_baza();
  11. if(!$lacz)
  12.     { echo 'brak polaczenia';}
  13.  
  14. $zapytanie = "select nazwa, opis, zdjecie from kategorie
  15.              where nazwa='$edytuj_kat'";
  16.    $wynik = @mysql_query($zapytanie);
  17.    $wiersz = mysql_fetch_array($wynik);
  18.  
  19. ?>
  20.   <form method="post" action="edytuj_kategorie_select.php" enctype="multipart/form-data">
  21.   <tr><td>Nazwa kategorii:</p></td><td align="left"><input type="text" name="nazwa" value="<?php echo $wiersz['nazwa']; ?>"></td></tr>
  22. <tr><td width="200" height="100">Opis Kategorii:</p></td><td align="left"><textarea name="opis"  rows="4" cols="40"><?php echo $wiersz['opis']; ?></textarea></td></tr>
  23. <tr><td width="200" height="100">Wybierz plik ktory chcesz umiescic:</p></td><td align="left"><input type="file" name="obraz" value="<?php echo $wiersz['zdjecie']; ?>" size="40"></td></tr><br />
  24. <tr><td colspan="2" align="center"><input type="submit" value="aktualizuj"></td></tr>
  25. </form></table></td></tr></table></td></tr></table> 
  26.  
  27.  <?php  
  28. $zapytanie = "update kategorie
  29.              set nazwa='$nazwa', opis='$opis', zdjecie='$name'
  30.              where nazwa='$edytuj_kat'";
  31.    $wynik = @mysql_query($zapytanie);
  32. ?>
golaod
HTTP_*_VARS - to na jakim ty starociu pracujesz ?

Tak przy okazji. Skąd bierzesz $_FILES ? Bo ja nie widziałem tego w fomularzu
batman
~bratpit dodaj tagi do tematu oraz poprawne bbcode do posta. Pisząc poprawne nie mam na myśli code.
bratpit
jak nacisne przycisk to pisze ze rekordy sie zaktualizowały.

Druga sprawa to taka ze jak nic nie wpisze w formularz to w bazie mi je aktualzuje na puste pola.

Probelm jest taki ze jak cos innego wpisze w pola formularza to nie aktualizuje mi tych pol i pozostaja takie same jak byly
erix
Cytat(golaod @ 3.06.2009, 11:06:59 ) *
HTTP_*_VARS - to na jakim ty starociu pracujesz ?

Nie bez powodu cytuję.
bratpit
Korzysatm z ksiazki heliona vademecum profesjonalisty. To zamiast HTTP_POST_VARS czego mam uzywac. z tym formualrzem juz sobie poradzilem.

mam inne pytanie

Mam dwie tabele: kategorie i produkty.Moj formularz posiada pola z tabeli kategorii i produktów. Kategorie wybieram za pomocą <select> reszta inputów jest z tabeli produkty. 

Jakie wykonac zapytanie aby dodać do tabeli produkty(id_produktu, id_kategori,....) id_kategori z tabeli kategorii(id_kategorii wybieram za pomoca selecta (kod powyzej)

dzieki
erix
Cytat
Korzysatm z ksiazki heliona vademecum profesjonalisty. To zamiast HTTP_POST_VARS czego mam uzywac. z tym formualrzem juz sobie poradzilem.

Za stara książka. Wyrzuć, nie nauczysz się z niej niczego.

A poszukaj tzw. zmiennych predefiniowanych (predefined variables).
Roly
Zmień
  1. <?php
  2. $wynik = @mysql_query($zapytanie);
  3. ?>


na

  1. <?
  2.    $wynik = false;
  3.    $wynik = mysql_query($zapytanie);
  4.    if(!$wynik) {
  5.        echo mysql_error();
  6.    }
  7. ?>


I wstaw tutaj co Ci wyrzuca...

PS na pewno to
  1. <?php
  2. $zapytanie = "select nazwa, opis, zdjecie from kategorie
  3.             where nazwa='$edytuj_kat'";
  4. ?>


powinno wyglądać inaczej np tak:

  1. <?php
  2. $zapytanie = "SELECT `nazwa`, `opis`, `zdjecie` FROM `kategorie` WHERE `nazwa`='".$edytuj_kat."'";
  3. ?>
bratpit
dzieki mam teraz takie pytanie:

  1. <?php
  2.  
  3. $lacz = lacz_baza();
  4. if(!$lacz)
  5.     { echo 'brak polaczenia';}
  6.  
  7. ?>
  1. <tr><td width="200" height="100"><form method="post" action="dodaj_produkt.php" enctype="multipart/form-data"><input type="hidden" name="MAX_FILE_SIZE" value="20000"><input type="text" name="nazwa" size="40"></td>
  2. </tr><tr><td width="200">Wybierz nazwę kategorii produktu:</p></td> <td align="left" >
  1. <select name="dodaj_prod"><?php $zapytanie = "select id_kategori, nazwa from kategorie"; $wynik = mysql_query($zapytanie); $ile_znalezionych =mysql_num_rows($wynik); for($i=0; $i<$ile_znalezionych;$i++){$wiersz = mysql_fetch_array($wynik); $id= $wiersz['id_kategori']; $nazwa=$wiersz['nazwa']; echo "<option value=$id>$nazwa</option>"; }?>
  1. </td></tr><tr><td width="200">
  2. <p style="font:Arial, Helvetica, sans-serif; color:#FFFFFF;">Cena produktu:</p></td><td align="left" ><input type="text" name="cena" size="40"></td></tr>
  3. <tr><td width="200" height="100">Opis produktu:</p></td><td align="left"><textarea name="opis" rows="4" cols="40"></textarea></td></tr>
  4. <tr><td width="200" height="100">Wybierz zdjecie ktore chcesz umiescic:</p></td><td align="left"><input type="file" name="produkt" value="" size="40"></td></tr>
  5. <tr><td colspan="2" align="left"><input type="submit" value="Dodaj produkt do bazy"></td></tr>
  6. </form></table></td></tr></table></td></tr></table>




plik odbslugujcy formularz

  1. <?php
  2.  
  3. move_uploaded_file($_FILES['produkt']['tmp_name'],"zdjecia/".$_FILES['produkt']['name']);
  4. $nazwa = $HTTP_POST_VARS['nazwa'];
  5. $opis = $HTTP_POST_VARS['opis'];
  6. $cena = $HTTP_POST_VARS['cena'];
  7. $dodaj_prod = $http_POST_VARS['dodaj_prod'];
  8.  
  9.  
  10. $lacz = lacz_baza();
  11. if(!$lacz)
  12.     { echo 'brak polaczenia';}
  13.  
  14. $name = 'zdjecia/'.$_FILES['produkt']['name'];
  15.  
  16. $zapytanie = "INSERT INTO produkty (id_produktu,id_kategori,nazwa,cena,opis,zdjecie) values ('','$id','$nazwa','$cena','$opis','$zdejcie')";
  17. $wynik = mysql_query($zapytanie);
  18. if($wynik)
  19. {
  20. echo '<tr><td align="left">';
  21. echo '<p style="font:Arial, Helvetica, sans-serif; color:#FFFFFF;">'.mysql_affected_rows().'Nowy produkt zostal dodany do bazy</p>';
  22.  
  23. }
  24. else
  25. {
  26. die('blad:'.mysql_error());
  27. }
  28.  
  29. ?>


Zapytanie zosaje wykonane ale ale id_kategorii(klucz obcy) w tabeli "produkty" ma wartosc cały czas "0". Nie wiem jak zrobic aby to co zostały wybrane w polu <select>(tabela kategoria) dodawało sie do tabeli "produkty"
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.