Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Edycja rekordów w tabali mysql wyszukanych wczesniej rekordów
Forum PHP.pl > Forum > PHP
leo33
Potrzebuję edytowac wyszukane wcześniej rekordy w bazie danych - jednego pola wszystkich wyszukanych.

Tutaj mam formularz po którym szukam rekordów do zmiany:
Kod
<? include('menu_promocje_com.php'); ?>

<b>WYSZUKIWARKA PRODUKTU</b><br><br>

<form action="doznajdz_promocje_com.php" method="post">
Data od (>=):<br />
<input type="text" name="data_od" /><br />
Data do (<=):<br />
<input type="text" name="data_do" /><br />
Kwota od (>=):<br />
<input type="text" name="kwota_od" /><br />
Kwota do (<):<br />
<input type="text" name="kwota_do" /><br />

<input type="submit" value="szukaj" />
</form>

</center>
</html>



Tutaj mi pokazuje wszystkie wyszukane rekordy do zmiany i w polu promocja dodaję tekst który chcę aby pojawił się w jednym rekordzie tabeli we wszystkich wyszukanych danych.

Kod
<? include('menu_promocje_com.php');


mysql_select_db("nazwa_bazy");

$data_od = $_POST['data_od'];
$data_do = $_POST['data_do'];
$kwota_od = $_POST['kwota_od'];
$kwota_do = $_POST['kwota_do'];

$query = "select * from orders where (order_date >= '$data_od' and order_date <= '$data_do' and order_sum >= '$kwota_od' and order_sum < '$kwota_do') order by order_date asc";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);
    
print "<p>Ilo¶ć znalezionych klientów do promocji: ".$num_results."</p>";
        print ("<font size=2 color=yellow>Nr zam.| Nr Kl. | Imię | Nazwisko | Data zam. | Warto¶ć zam. | Notka | </font><BR>");

for ($i=0; $i <$num_results; $i++)  {
        $row = mysql_fetch_array($result);
        
        print ("<font size=2>| ");
        print stripslashes($row["order_id"]);
        print (" | ");
        print stripslashes($row["user_id"]);
        print (" | ");
        print stripslashes($row["bill_firstname"]);
        print (" | ");
        print stripslashes($row["bill_lastname"]);
        print (" | ");
        print stripslashes($row["order_date"]);
        print (" | ");
        print stripslashes($row["order_sum"]);
        print (" zł | ");
        print stripslashes($row["notes_pub"]);
        print " |</font></font><br>";

}
?>
<hr width="75%" align="CENTER" size="2" color="white">

<form action="promocja_dodana_com.php" method="post">
Tekst promocji dla wybranych wyżej klientów:<br />
<input type="text" name="promocja" size="100" /><br />
<input type="submit" value="DODAJ PROMOCJE" />
</form>

</center>
</html>



I tutaj mam problem ponieważ nie wiem jaki kod umieścić, aby wszystki wyszukanym rekordom w polu notes_pub='$promocja' wpisało tekst mojej promocji.
Bardzo proszę o podpowiedzi. Ja obecnie mam tak i to nie działa:

Kod
<? include('menu_promocje_com.php');

mysql_select_db("nazwa_bazy");

$promocja = $_POST['promocja'];

$query = "select * from orders where (order_date >= '$data_od' and order_date <= '$data_do' and order_sum >= '$kwota_od' and order_sum < '$kwota_do') order by order_date asc";
$result = mysql_query($query);
$num_results = mysql_num_rows($result);

for ($i=0; $i <$num_results; $i++)  {

$row = mysql_fetch_array($result);

$query2="update orders set notes_pub='$promocja' WHERE order_id='$row['order_id']'";
}
echo 'Promocja została dopisana';


?>

<hr width="75%" align="CENTER" size="2" color="white">

</center>
</html>
radziopoke
nie wiem czy nie prościej było by w update wcisnąć taki sam warunek jak masz w select
czyli wyglądało by to tak:
  1. $query2="update orders set notes_pub='$promocja' where (order_date >= '$data_od' and order_date <= '$data_do' and order_sum >= '$kwota_od' and order_sum < '$kwota_do')";
leo33
Dzięki za podpowiedź masz rację, natomiast jest jeden problem w ostatnim pliku nie pamięta mi parametrów z formularza z drugiego pliku czyli

Kod
$data_od = $_POST['data_od'];
$data_do = $_POST['data_do'];
$kwota_od = $_POST['kwota_od'];
$kwota_do = $_POST['kwota_do'];


pamięta tylko

Kod
$promocja = $_POST['promocja'];


hm ?

Czyli ostatni plik zmieniłem na :


Kod
<? include('menu_promocje_com.php');

mysql_select_db("baza1258_s_kont");

$data_od = $_POST['data_od'];
$data_do = $_POST['data_do'];
$kwota_od = $_POST['kwota_od'];
$kwota_do = $_POST['kwota_do'];
$promocja = $_POST['promocja'];

$query2="update orders set notes_pub='$promocja' where (order_date >= '$data_od' and order_date <= '$data_do' and order_sum >= '$kwota_od' and order_sum < '$kwota_do')";
echo 'Promocja została dopisana';


?>

<hr width="75%" align="CENTER" size="2" color="white">

</center>
</html>


Ale nie działa
lukaskolista
  1. $query = "select * from orders where (order_date >= '$data_od' and order_date <= '$data_do' and order_sum >= '$kwota_od' and order_sum < '$kwota_do') order by order_date asc";
daj adres stronki, to Ci ja rozloze. Polecam zapoznac sie z funkcja mysql_real_escape_string.
leo33
niestety nie mogę podać adresu stronki

wszystko jest jednak tak jak napisałem pierwszy kod to plik nr 1 który jest formularzem
plik nr 2 który odczytuje dane z tabeli względem wypełnionego formularza, na dole w tym pliku jest kolejny formularz w którym wpisujemy tekst promocji

plik nr 3 to ten w którym następuje edycja pola notes_pub tekstem promocji we wszystkich wyszukanych zamówieniach ID


nie wiem jak to zrobić zapętliłem się, chyba że w pliku nr 2 ponownie w formularzu podać dane z pliku nr 1 dodatkowo
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.