Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Pętla foreach w pętlli foreach.
php__amator
post
Post #1





Grupa: Zarejestrowani
Postów: 217
Pomógł: 1
Dołączył: 26.05.2011
Skąd: Moon

Ostrzeżenie: (10%)
X----


Witajcie przedszkolacy,

Ostatnimi czasy napotykam na problemy z którymi próbuję sobie poradzić. I teoretycznie powinienem, ponieważ bawię się w to już kilka miesięcy ...
a po takim czasie nawet kowadło by się już nauczyło.
Ja jednak chyba jeszcze nie. ale do rzeczy.
Otóż mam taki skrypt:
  1. <?php foreach ($products as $product) { ?>
  2.  
  3. <tr>
  4. <?php if($invpicav2==1){ ?> <td width="50"><?php $imageproduct1 = base64_encode(file_get_contents($product['thumb'])); ?><img src="data:image/png;base64,<?php echo $imageproduct1;?>" alt=""><td><?php echo $product['name']; ?> <?php } else { ?>
  5. <td><?php echo $product['name']; ?> <?php } ?>
  6.  
  7.  
  8.  
  9. <?php foreach ($product['option'] as $option) { ?>
  10.  
  11. <br />
  12.  
  13. &nbsp;<small> - <?php echo $option['name']; ?>: <?php echo $option['value']; ?> <?php echo $option['sku']; $code .= $option['sku'];?></small>
  14.  
  15. <?php }
  16.  
  17. $ccode = ($product['sku'].$code);
  18.  
  19. ?></td>
  20.  
  21. <!-- <td><?php echo $product['model']; ?></td> -->
  22.  
  23. <?php if($inv_skuca2==1){ ?> <td><?php echo $product['sku']; ?></td> <?php } ?>
  24.  
  25. <td align="right"><?php echo $product['quantity']; ?></td>
  26.  
  27. <td align="right"><?php echo $product['price']; ?></td>
  28.  
  29. <td align="right"><?php echo $product['total']; ?></td>
  30.  
  31. </tr>
  32.  
  33. <?php } ?>
  34.  
  35. <?php foreach ($vouchers as $voucher) { ?>
  36.  
  37. <tr>
  38. <td align="center"></td>
  39. <td align="center"><?php echo $voucher['description']; ?></td>
  40. <td align="center"></td>
  41.  
  42. <td align="center"></td>
  43.  
  44. <td align="center">1</td>
  45. <td align="center"><?php echo $voucher['amount']; ?></td>
  46. <td align="center"><?php echo $voucher['amount']; ?></td>
  47. </tr>
  48.  
  49.  
  50. <?php } ?>
  51.  
  52. <?php foreach ($totals as $total) { ?>
  53.  
  54. <tr>
  55.  
  56. <?php if($invpicav2==1 && $inv_skuca2==1){ ?> <td align="right" colspan="6"> <?php } else {
  57. if($invpicav2==1 && $inv_skuca2==0) {?> <td align="right" colspan="5"> <?php } else {
  58. if($invpicav2==0 && $inv_skuca2==1) {?> <td align="right" colspan="5"> <?php } else {
  59. if($invpicav2==0 && $inv_skuca2==0) {?> <td align="right" colspan="4"> <?php } } } } ?>
  60.  
  61. <b><?php echo $total['title']; ?>:</b></td>
  62.  
  63. <td align="right"><?php echo $total['text']; ?>

i jak dotąd wszystko "gites".
Nieco niżej mam dalszą część:
  1. <div class="break"></div>
  2. <?php
  3. $PNG_TEMP_DIR = dirname(__FILE__).DIRECTORY_SEPARATOR.'temp'.DIRECTORY_SEPARATOR;
  4. $PNG_WEB_DIR = '../store/qrcode/temp/';
  5. include ('../store/qrcode/qrlib.php');
  6. if (!file_exists($PNG_TEMP_DIR))
  7. mkdir($PNG_TEMP_DIR);
  8. $filename = $PNG_TEMP_DIR.$ccode.'.png';
  9. $errorCorrectionLevel = 'H';
  10. if (isset($_REQUEST['level']) && in_array($_REQUEST['level'], array('L','M','Q','H')))
  11. $errorCorrectionLevel = $_REQUEST['level'];
  12. $matrixPointSize = 1;
  13. if (isset($_REQUEST['size']))
  14. $matrixPointSize = min(max((int)$_REQUEST['size'], 1), 5);
  15. if (isset($_REQUEST['data'])) {
  16. if (trim($_REQUEST['data']) == '')
  17. die('data cannot be empty!');
  18. $filename = $PNG_TEMP_DIR.$ccode.md5($_REQUEST['data'].'|'.$errorCorrectionLevel.'|'.$matrixPointSize).'.png';
  19. QRcode::png($_REQUEST['data'], $filename, 'H', 5, 1);
  20. } else {
  21. QRcode::png($ccode, $filename, 'H', 5, 1);
  22. }
  23. ?>
  24. <table width="454">
  25. <tr>
  26. <td width="100" rowspan="10" align="center" border="1">
  27. <img src="http://www.gngcomputers.com/store/catalog/view/theme/default/template/mail/temp/<?php echo $ccode;?>.png">
  28. </td>
  29. <td align="center" width="500">
  30. <h1>ORDER DETAILS</h1>
  31. </td>
  32. </tr>
  33. <tr>
  34. <td>Order number <?php echo $order_id;?>
  35.  
  36. </td>
  37. </tr>
  38. <td><h5>Item specification</h5>
  39. </td>
  40. </tr>
  41. <?php
  42.  
  43.  
  44. foreach ($product['option'] as $option) { ?>
  45.  
  46. <tr><td>
  47.  
  48. <small>- <?php echo $option['name']; ?>: <?php echo $option['value']; ?> <?php echo $option['sku'];?></small></td><td><small><?php $code .= $option['sku'];?><?php } ?></small></td></tr>
  49.  
  50.  
  51.  
  52. <tr>
  53. <td>
  54. <?php echo $product['name']; ?>
  55. </td>
  56. </tr>
  57. </table>

I dotąd też wszystko jest ok ale ... no właśnie jeśli w tablicy jest/są dane dotyczące jednego produktu działa jak złoto, natomiast jeśli w tablicy znajduje się więcej niż jeden produkt(dane dla kilku) dopstaję tylko te dotyczące ostatniego.

Domyślam się, że żeby wygenerowało mi dane dla wszystkich po kolei muszę dodać kolejną pętlę foreach ale nie bardzo wiem jak się do tego zabrać. Kiedyś przerabiałem taki przykład generujący z 3 składowych wszystkie możliwe zestawy.


Czy dobrą idę drogą ?
Go to the top of the page
+Quote Post

Posty w temacie


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 - 05:04