Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL]jak zadac zapytanie?
Forum PHP.pl > Forum > Przedszkole
zimekk
mam tak tabele w bazie danych...
nazwa|cena
hamburger| 6.00
frytki|3.00
itd...

i chce zamienic "hamburger|6.00" na "banan|3.00", "frytki|3.00" na "jablko|0.50"... itd
do tego mam trzy zmienne:
$nazwa = $HTTP_POST_VARS['nazwa'] <--- zapisane sa tu nowe nazwy czli "banan, jablko, ..."
$cena = $HTTP_POST_VARS['nazwa'] <-- a tu nowe ceny
$_SESSION['nazwa'] <--- tu sa stare nazwa czyli "hamburger, frytki, ..."( ta sesja tez jest tablica jak te powyzej)

myslalem o czyms takim:
  1. <?php
  2. foreach($nazwa as $lp => $zmiana)
  3.                  {
  4.                   foreach($cena as $lp2 => $wartosc)
  5.                    {
  6.                      foreach($_SESSION['nazwa'] as $lp3 => $nazwa)
  7.                         {
  8.                        $lacz = lacz_bd();
  9.                       $zmiana = mysql_query("update menu set nazwa = '$zmiana' and cena = '$wartosc'
  10.                               where nazwa = '$nazwa'");
  11.                          }
  12.                      }
  13.                    
  14.                   }
  15. unset($_SESSION['nazwa'];
  16. ?>


ale to nie dzala...
erix
  1. <?php
  2. $nazwa = $HTTP_POST_VARS['nazwa'] <--- zapisane sa tu nowe nazwy czli "banan, jablko, ..."
  3. $cena = $HTTP_POST_VARS['nazwa'] <-- a tu nowe ceny
  4. ?>

A o $_POST, to Waść słyszał?

Cytat
ale to nie dzala...

To znaczy?
zimekk
troche za malo szczegolow podalem...

mam formularz w ktorym urzytkownik zaznacza pozycjie ktore chce edytowac... po wybraniu kilku i wcisnieciu wyslij w zmiennej $HTTP_POST_VARS['edytuj'] zapisywane sa w niej nazwy zakladek ktore wybral, potem otwiera sie strona na ktorej ma formularz:
  1. ...
  2. $edytuj_mnie = $HTTP_POST_VARS['edytuj'];
  3. ...
  4.  
  5.                      <?php
  6.                      foreach($edytuj_mnie as $lp => $nazwa)
  7.                         {
  8.                         $lacz = lacz_bd();
  9.                        
  10.                         $zapytanie = mysql_query("select * from menu where nazwa = '$nazwa'");
  11.  
  12.                         while($pozycja = mysql_fetch_array($zapytanie))
  13.                         {
  14.                         echo '<tr>';
  15.                         echo '<td>';
  16.                         echo '<input type="text" name="nazwa[]" value="' .$pozycja['nazwa']. '" />';
  17.                         echo '</td>';
  18.                         echo '<td>';
  19.                         echo '<input type="text" name="cena[]" value="' .$pozycja['cena']. '"/>';
  20.                         echo '</td>';
  21.                         echo '</tr>';
  22.                         }
  23.                         }
  24.                      ?>
  25.                  <tr>
  26.                  <td colspan="2">
  27.                  <button type="submit">Edytuj</button>
  28.           ....

teraz uzytkownik moze sobie zmienic zawartosc... jak juz skonczy chce to podmienic z tym co jest w bazie danych....
erix
Zobacz sobie, czy masz cokolwiek w $HTTP_POST_VARS. Z tego się już nie korzysta.

Napisałem, na co trzeba to podmienić.
zimekk
zamienilem $HTTP_POST_VARS na $_POST to jest wprzadku....

bardziej chodzi mi o zapytanie do bazy danych...
po zapytaniu:
  1. $zmiana = mysql_query("update menu set nazwa = '$zmiana' and cena = '$wartosc'
  2. where nazwa = '$nazwa'");


Otrzumej bląd: ERROR 1062: Powtorne wystapienie '0' dla klucza 1
piotrooo89
nadpisujesz primary_key. pewnie masz tam ID i nie masz danego auto_increment.
zimekk
stworzylem nowa tabele, tak zeby nie nadpisywac primary key...

create table menu(
id int unsigned not null auto_increment primary key,
nazwa varchar(250) not null,
cena double(4,2) not null
);

stosuje to do tej tabeli to samo zapytanie i dalej nie dziala tzn. dziala tylko ze zamiast mi podmieniac wartosci w kolumnie nazwa zamienia dana pozycje na 0 np. mam tam "jablko" zamienia mi to na 0.

po paru godzina siedzenia nad tymi... raczej sobie to podaruje... spróbuje uprościć ten kod, wywalę tą edycje... dzięki 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.