Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmienna nazwa zmiennej, Jak to zrobic ??
-MAYA-
post
Post #1





Goście







Witam wszystkich

Czy ktoś może wiek jak poradzić sobie z tym tematem:

Mam wyświetlanych X checkbox'ów. Liczba może być zmienna.
Każdy z nich nazywa się

  1. $Edit_<?echo $array[id];?> 
  2. // co daje w efekcie np:
  3. $Edit_134

i tak mam unikalną nazwę.

I teraz jeśli checkbox jest zaznaczony to potrzebuję zrobić UPDATE rekordu o numerze [id].

Wymyśliłem coś takiego....

  1. <?php
  2.  
  3. // zczytywanie wartości maksymalnej pola id
  4. $max_id = mysql_db_query($db_name,"SELECT max(osobowe.id) FROM osobowe");
  5. // ustawianie licznika na wartości 1
  6. $numerek==1;
  7. while ($numerek<=$max_id){
  8.  
  9. // Tu pewnie potrzeba pewnie zdefinjować dynamicznie zmienną
  10.  
  11. if (!empty(  $Zdefinjowana_dynamicznie_zmienna  )){
  12. $sql="UPDATE IGNORE osobowe SET cena=upper('".rtrim($cena)."') WHERE id='$numerek' LIMIT 1";
  13. $result = mysql_db_query($db_name,$sql) or die('Wtopa z uaktualnienia rekordu !');
  14. echo ' NIE ZAPESZAĆ - chyba działa !!!';
  15. }
  16.  
  17. $numerek++;
  18. }
  19.  
  20. ?>


Jeśli ktoś wie jak mam dynamicznie zdefinjować nazwę zmiennej prosze o pomoc.

Pozdrawiam
Marcin
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
luinnar
post
Post #2





Grupa: Zarejestrowani
Postów: 155
Pomógł: 0
Dołączył: 15.07.2004
Skąd: Bielsko-Biała

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


nie lepiej użyć tablicy?
Zamiast dużej ilości zmiennych dajesz tablice
Kod
$edit[34354] zamiast $edit_34354
a potem robisz implode na tą tablice (tak żeby zrobiło się ładne zapytanie) np:
  1. <?php
  2. $query = 'UPDATE ble ble WHERE id='.implode(' AND id = ', $edit);
  3. ?>

Oczywiście musisz do tego zrobić jakieś zabespieczenia
Go to the top of the page
+Quote Post
-Maya-
post
Post #3





Goście







Wszysko pieknie

Zamysł rozumiem...

Zamiast przyporządkować nazwie np:
  1. <?php
  2. $Edit_123
  3. ?>

wartość 123
tworzymy tabelę gdzie pole
  1. <?php
  2. $Edit[123]
  3. ?>

będzie miało wartość 123......

TYLKO

Duża liczba zmiennych generuje się mi sama poprzez nazwy checkbox'ów.
Jak mam zdefinjować nazwę w/w checkboxa jako rekord tabeli (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Było tak:
  1. <input type="checkbox" name="Edit_<?echo $array[id];?>" value="1">

A jak powinno być??

Czy tak będzie dobrze??
  1. <input type="checkbox" name="Edit" value="<?echo $array[id];?>">


Dodam tylko że nie moge zrezygnować ze słowa Edit bo obok mam drugi checkbox opisany jako Delete_


Marcin
Go to the top of the page
+Quote Post
crash
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 196
Pomógł: 2
Dołączył: 17.01.2004
Skąd: Sosnowiec

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


HTML też obsługuje tablice w formularzu... Ustaw nazwę na Edit[] i potem masz wszystkie te checkboxy w $_POST[ 'Edit' ].
Go to the top of the page
+Quote Post
kszychu
post
Post #5





Grupa: Przyjaciele php.pl
Postów: 2 712
Pomógł: 23
Dołączył: 27.10.2003
Skąd: z kontowni

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


Cytat(MAYA @ 2005-09-02 15:45:45)
Jeśli ktoś wie jak mam dynamicznie zdefinjować nazwę zmiennej prosze o pomoc.

  1. <?php
  2. $zmienna_5 = 'Hello World!';
  3. $nr_zmiennej = 5;
  4. echo ${'zmienna_'.$nr_zmiennej};
  5.  
  6. ?>
Go to the top of the page
+Quote Post
krz2006
post
Post #6





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 2.09.2005

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


Witam.

Kto zabronil w html przekazywac zmiennych w tablicach (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif)

Zaprezentuje kawalek kodu, ktory smiga az milo:
  1. <?php
  2.  
  3.  
  4. for($a=0;$a<950;$a++)
  5. {
  6. $string = '<input type="checkbox" name="temat['.$a.']" value="Start'.$a.'"></p>';
  7. }
  8.  
  9. /* W rezultacie powstanie kod HTML wygladajacy tak:
  10.  
  11. <input type="checkbox" name="temat[0]" value="Start0"></p>
  12. <input type="checkbox" name="temat[1]" value="Start1"></p>
  13. */
  14. ?>


I powiem Ci, ze bardzo dobrze sprawdza sie to w praktyce.... Sprawdz...

Pozdrawiam
Go to the top of the page
+Quote Post
-MAYA-
post
Post #7





Goście







Wszystko pięknie

Pojawił się tylko mały problemik.
A mianowicie ......

Żeby coś uaktualnić muszę grupę danych wczytać z bazy....

Tymi danymi wypełniane są pola textarea.
Zawęźmy rozumowanie do do aktualizacji ceny produktu.

Mam więc Nazwę, Cenę w polu textarea i przyporządkowanego do nich Ccheckbox.

Wynik przy użyciu skryptu przesłanego przez krz2006 daje efekt następujący:

Cena[] ---- Edit[] - id produktu
[0] => 10 [0] => 3
[1] => 20 [1] => 4
[2] => 30
[3] => 40
[4] => 50

W wyniku tego uaktualnione zostaną dwa pierwsze wpisy a nie pozycje 3 i 4 (te które zostały zaznaczone w checkboxie)

Oczekiwany przezemnie zapis w tabeli to:

Cena[] ---- Edit[] - id produktu
[1] => 10
[2] => 20
[3] => 30 [3] => 3
[4] => 40 [4] => 4
[5] => 50

Lub

Edit[]
[0] ( 30, 3 )
[1] ( 40, 4 )

A oto skrypy:

Plik 01:

  1. ...... kod html
  2. <td rowspan="3"><div align="center">
  3. <input type="checkbox" name="Edit['.<? echo $array[id];?>.']" value="<? echo $array[id];?>">
  4. </div>
  5. </td>
  6. <td rowspan="3"><div align="center">
  7. <input type="checkbox" name="Delete[]" value="<? echo $array[id];?>">
  8. </div>
  9. </td>
  10. </tr>
  11. <tr>
  12. <td height="20" class="tekst_form"><div align="right">cena:</div></td>
  13. <td height="20" class="tekst_form">
  14. <input name="Cena['.<? echo $array[id];?>.']" type="text" class="tekst_form" value="<? echo $array[cena];?>" size="18">
  15. </td>
  16.  
  17. ...... kod html


Plik 2 ( do wyświetlania - testowy):

  1. <?php
  2.  
  3. print_r(array_values($_POST['Edit']));
  4. $n_edit = count($_POST['Edit']);
  5.  echo "<br><br><br><br><br><br>";
  6. print_r(array_values($_POST['Cena']));
  7. echo "<br><br><br><br><br>";
  8. $n_edit = count($_POST['Cena']);
  9.  
  10. ?>


Proszę o pomoc czy w ogóle da się tak zdefiniować nazwy pól żeby z pola cena wartość wskakiwała do pierwszej kolumny a z checkboxa do drugiej ....

A może zostają mi tylko poeracje na tabelach lub proste lecz działające przekazywanie dużej ilości zmiennych.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.08.2025 - 04:22