Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Za pętlony input
Forum PHP.pl > Forum > Przedszkole
pawel06281990
Witam,

Zapętliłem input do tłumaczenia tekstu ale nie zapisuje mi tego w każdej tabeli osobno.

Mój skrypt

  1. <table class="table table-bordered">
  2. <tr>
  3. <th width='50%'><?php echo $locale['943a'];?></th>
  4. <th><?php echo $locale['943b'];?></th>
  5. </tr>
  6. <?php
  7. echo"<input type='hidden' class='form-control' name='nazwa_kategorie' value='".$_GET['nazwa_mail']."' >";
  8. echo"<input type='hidden' class='form-control' name='expressionid' value='".$_GET['expressionid']."' >";
  9.  
  10. $res = dbquery($link,"SELECT * FROM ".$db_prefix."lang WHERE nazwa_mail='".$_GET['nazwa_mail']."' AND expressionid='".$_GET['expressionid']."'");
  11. while ($lang = dbarray($res)){
  12.  
  13.  
  14.  
  15. echo"<tr>";
  16. echo"<td width='50%'>".$lang['description']."</td>";
  17. echo" <td><div class='form-group'>";
  18. $rows = dbcount($link,"(lang_id)", "lang", "nazwa_mail='".$_GET['nazwa_mail']."' AND expressionid='".$_GET['expressionid']."'");
  19.  
  20.  
  21. echo"<input type='text' class='form-control' name='description' value='$description' style='width: 250px'></td>";
  22.  
  23. echo "</tr>";
  24. echo"</td>";
  25. echo"</tr>";
  26.  
  27. }
  28. ?>
  29. </table>


A tak chce zapisuje

  1. if (isset($_POST['zapisz_tlumaczenie'])) {
  2. $rows = dbcount($link,"(lang_id)", "lang", "nazwa_mail='".$_GET['nazwa_mail']."' AND expressionid='".$_GET['expressionid']."'");
  3. for($j=0;$j<count($rows);$j++){
  4. $expressionid=$_POST['expressionid'][$j];
  5. $languageCode=$_POST['languageCode'][$j];
  6. $description=$_POST['description'][$j];
  7. $nazwa_kategorie=$_POST['nazwa_kategorie'][$j];
  8. }
  9.  
  10. $result = dbquery($link,"SELECT * FROM ".$db_prefix."lang_jezyki WHERE expressionid='$expressionid'");
  11. $lang_jezyk_id = dbarray($result);
  12. if($_POST['description'] !=""){
  13. if($lang_jezyk_id['expressionid']){
  14. $result = dbquery($link,"UPDATE ".$db_prefix."lang_jezyki SET translation='$description', nazwa_kategorie='$nazwa_kategorie' WHERE expressionid='$expressionid'");
  15. redirect(BASEDIR."settings/mail_tlumaczenie?status=up");
  16.  
  17. }else{
  18.  
  19. $result = dbquery($link,"INSERT INTO ".$db_prefix."lang_jezyki SET expressionid='$expressionid', languageCode='$languageCode', translation='$description', nazwa_kategorie='$nazwa_kategorie' ");
  20.  
  21. }
  22. }else{
  23. redirect(BASEDIR."settings/modyfikuj?nazwa_mail=".$_POST['nazwa_kategorie']."&expressionid=".$_POST['expressionid']."&error=1");
  24. }
  25.  
  26. }


Skrypt który ma dodawać liczby [1][2][3][4] itp pokazuje mi 0 i tak zapętla.

W czym jest błąd ?
nospor
Po pierwsze spojrz co zawiera tablica $_POST
print_r($_POST);
bo tam nei masz zadnej tablicy pol.

Po drugie

for($j=0;$j<count($rows);$j++){
$expressionid=$_POST['expressionid'][$j];
$languageCode=$_POST['languageCode'][$j];
$description=$_POST['description'][$j];
$nazwa_kategorie=$_POST['nazwa_kategorie'][$j];
}

Nawet jakbys mial poprawna tablice w POST to przeciez w tej petli nadpisujesz po kolei wszystkie elementy wiec niby jakim cudem ma ci zapisac 4 rekordy do bazy?

No i po nazwie funkcje dbcount() wnioskuje ze zwraca ci ona liczbe, wiec czemu robisz potem count($liczba) w FOR? count wykonuje sie na tablicach a nie na liczbach.
pawel06281990
Mam tablice

Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => ) Array ( [languageCode] => PL [nazwa_kategorie] => zamow_email [expressionid] => 1 [description] => Array ( [0] => Witam [1] => przesyłamy szczegóły zamówienia w sklepie [2] => Numer zlecenia [3] => Zamówiono: [4] => Format: [5] => Nakład: [6] => Język zamówienia: [7] => Kraj: [8] => Więcej informacji w Panelu Zarządzania
[9] => Uwaga !!
wiadomość została wysłana automatycznie nie odpowiadaj na nią. [10] => Wszelkie prawa zastrzeżone by SferaPolska ) [zapisz_tlumaczenie] => )


Tak to wygląda

A jak dodam tak to nadal mam 1 wartość zapisaną do bazy
  1. if (isset($_POST['zapisz_tlumaczenie'])) {
  2. $rows = dbcount($link,"(lang_id)", "lang", "nazwa_mail='".$_GET['nazwa_mail']."' AND expressionid='".$_GET['expressionid']."'");
  3. for($j=0;$j <$rows; $j++){
  4. $liczba=$j;
  5. }
  6. $expressionid=$_POST['expressionid'];
  7.  
  8. $languageCode=$_POST['languageCode'];
  9.  
  10. $description=trim(stripinput($_POST['description'][$liczba]));
  11.  
  12.  
  13. $nazwa_kategorie=$_POST['nazwa_kategorie'];
  14.  
  15.  
  16. $result = dbquery($link,"SELECT * FROM ".$db_prefix."lang_jezyki WHERE expressionid='$expressionid'");
  17. $lang_jezyk_id = dbarray($result);
  18. if($_POST['description'] !=""){
  19. if($lang_jezyk_id['expressionid']){
  20. $result = dbquery($link,"UPDATE ".$db_prefix."lang_jezyki SET translation='$description', nazwa_kategorie='$nazwa_kategorie' WHERE expressionid='$expressionid'");
  21. redirect(BASEDIR."settings/mail_tlumaczenie?status=up");
  22.  
  23. }else{
  24.  
  25. $result = dbquery($link,"INSERT INTO ".$db_prefix."lang_jezyki SET expressionid='$expressionid', languageCode='$languageCode', translation='$description', nazwa_kategorie='$nazwa_kategorie' ");
  26.  
  27. }
  28. }else{
  29. redirect(BASEDIR."settings/modyfikuj?nazwa_mail=".$_POST['nazwa_kategorie']."&expressionid=".$_POST['expressionid']."&error=1");
  30. }
  31.  
  32. }


To zastanawiam się jak to zrobić żeby zadziałało i zapisało mi 11 elementów po przetłumaczeniu do bazy.




nospor
To ze POST jest tablica to ja wiem. Ja ci mowie ze twoje pola ala expressionid nie sa tablica.

I tak juz z czystej ciekawosci bo noc idzie:
Co niby ten kod ma robic:
for($j=0;$j <$rows; $j++){
$liczba=$j;
}
?
pawel06281990
Cytat(nospor @ 2.04.2019, 22:02:09 ) *
I tak juz z czystej ciekawosci bo noc idzie:
Co niby ten kod ma robic:
for($j=0;$j <$rows; $j++){
$liczba=$j;
}
?


To już zaspokajam twoją ciekawość

Mam inputa w pętli aby pobrać pole do przetłumaczenia na inny język , ale z tego co wiem to nie zapisze pola o nazwie description do tabeli o nazwie translation i muszę nadać numerki aby dodać do tabelki tak przeczytałem w necie.

Ale pewnie źle napisali bo mięcze się z tym od rana i nic nie wychodzi.

bo też zrobiłem tak
  1. $liczba="";
  2. for($j=0;$j <$rows; $j++){
  3. $liczba .="<input type='text' class='form-control' name='description[$j]' value='$description' style='width: 250px'>";
  4. }


Ale nie mam takiego efektu jaki chce żeby był bo moje tłumaczenie wygląda tak
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.