Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]if który nie działa
Forum PHP.pl > Forum > Przedszkole
klaku555
Witam otóż siedzę i głowię się i troję czemu ten że warunek jest zawsze spełniony:
  1. $e='e'.$d;
  2. $l=(int)$_POST[$e];
  3. if (($l!=0) || ($l!=1))
  4. {
  5. echo '<p>Wartości które podałeś są z poza zakresu 0 i 1</p>';
  6. break;
  7. $end=1;
  8. }


Formularz tworzyłem za pomocą pętli i miał on postać:
  1. $a=1;
  2. $c=1;
  3. echo '<form action="index.php?c='.$ot.'" method="post"><table>';
  4. for (;$a<=$wier;$a++)
  5. {
  6. echo '<tr>';
  7. $b=1;
  8. for (;$b<=$wier;$b++)
  9. {
  10. echo '<td><input type="text" name="e'.$c.'" /></td>';
  11. $c++;
  12. }
  13. echo '</tr>';
  14. }
  15. echo '<tr><td colspan="'.$kol.'"><input type="submit" name="Weryfikuj" value="Weryfikuj" /></td></tr></table></form>';


Niby kod jest banalny jak i problem ale jakoś nie potrafię zdiagnozować błędu. Ogólnie muszę po prostu sprawdzić czy podane przez użytkownika dane to 0 lub 1.

POMOCY!!!

(jest to część mojego programu przetwarzającego macierz sąsiedztwa w macierz incydencji- ale to tak nawiasem mówiąc:P)

gorden
niepotrzebne nawiasy? spróbuj
  1. if($l > 2 and $l < 0)
  2. if($l !== 0 or $l !== 1)
kalipek
  1. if (!($l==0 || $l==1))
kadlub
Cytat(gorden @ 6.05.2011, 19:42:06 ) *
niepotrzebne nawiasy? spróbuj
  1. if($l > 2 and $l < 0)
  2. if($l !== 0 or $l !== 1)

po co aż tak jak można tak
if(($l!=0) and ($l!=1))
i wystarczy
klaku555
no niestety z jakiego powodu nie chce zaskoczyć. Może będzie lepiej jak pokaże wam cały kod:
  1. <h2>podaj ile wierzchołków ma twój graf:</h2><br />
  2. <form action="index.php" method="post">
  3. <table>
  4. <tr>
  5. <td>Ilość kolumn: </td>
  6. <td><input type="text" name="wierz" size="3" maxlength="3" /></td>
  7. </tr>
  8. <tr>
  9. <td colspan="2"><input type="submit" name="wyslany" value="wyslany" />
  10. </table>
  11. </form>
  12. <?php
  13. if ($_POST['wyslany']=='wyslany')
  14. {
  15. $wier=$_POST['wierz'];
  16.  
  17. $ot=$wier*$wier;
  18. $a=1;
  19. $c=1;
  20. echo '<form action="index.php?c='.$ot.'" method="post"><table>';
  21. for (;$a<=$wier;$a++)
  22. {
  23. echo '<tr>';
  24. $b=1;
  25. for (;$b<=$wier;$b++)
  26. {
  27. echo '<td><input type="text" name="e'.$c.'" /></td>';
  28. $c++;
  29. }
  30. echo '</tr>';
  31. }
  32. echo '<tr><td colspan="'.$kol.'"><input type="submit" name="Weryfikuj" value="Weryfikuj" /></td></tr></table></form>';
  33. }
  34. if ($_POST['Weryfikuj']=='Weryfikuj')
  35. {
  36. $zero=0;
  37. $jeden=1;
  38. $c=addslashes($_GET['c']);
  39. $d=1;
  40. $end=0;
  41. for (;$d<=$c;$d++)
  42. {
  43. $e='e'.$d;
  44. $l=(int)$_POST[$e];
  45. echo '<h1>'.$l.'</h1>';
  46. if ($l!=0 || $l!=1)
  47. {
  48. echo '<p>Wartości które podałeś są z poza zakresu 0 i 1</p>';
  49. break;
  50. $end=1;
  51. }
  52. }
  53. if ($end=0)
  54. {
  55. $d=1;
  56. $k=sqrt($c);
  57. for (;$d<=$c;$d++)
  58. {
  59. $e='e'.$d;
  60. if ($_POST[$e]==1 and $tab[$d]==Null)
  61. {
  62. $e1=$_POST[$e];
  63. $nrk=$d%$k;
  64. $o=$d/$k;
  65. $nrw=(int)$o;
  66. $e2=$k*($nrk-1)+$nrw;
  67. $v='e'.$e2;
  68. if ($e1==$_POST[$v])
  69. {
  70. $tab[$d]=$e2;
  71. $tab[$e2]=$d;
  72. $z++;
  73. $v1[$z]=$nrw;
  74. $v2[$z]=$nrk;
  75. }
  76. else
  77. {echo '<p>Podana przez ciebie macierz nie jest zgodna z Lematem o uściskach dłoni</p>';
  78. break;
  79. }
  80. }
  81. }
  82. echo '<h2>Oto twoja macierz incydencji:</h2>';
  83. echo '<table><tr><td><br /></td>';
  84. for ($d=1;$d<=$z;$d++)
  85. {
  86. echo '<td><p>e'.$d.'</p></td>';
  87. }
  88. echo'</tr>';
  89. for ($d=1;$d<=$k;$d++)
  90. {
  91. echo '<tr><td><p>v'.$d.'</p></td>';
  92. for ($h=1;$h<=$z;$h++)
  93. {
  94. if ($v1[$h]==$d or $v2[$h]==$d)
  95. {
  96. echo '<td><p>1</p></td>';
  97. $tab2[$d]++;
  98. }
  99. else
  100. {
  101. echo '<td><p>0</p></td>';
  102. }
  103. }
  104. echo '</tr>';
  105. }
  106. echo '</table><br /><p><';
  107.  
  108. for ($d=1;$d<=$k;$d++)
  109. {
  110. for ($q=0;$q<=$k;$q++)
  111. {
  112. if ($tab2[$d]==$q)
  113. {
  114. $tab3[$q]++;
  115. }
  116. }
  117. }
  118. for ($d=0;$d<=$z;$d++)
  119. {
  120. if ($tab3[$d]!=NULL)
  121. {
  122. echo $tab3[$d];
  123. }
  124. else
  125. {echo '0';}
  126. }
  127. }
  128. }
  129.  
  130. ?>


dobra już mam źle postawiłem warunek tam miał byc and a nie or
kadlub
  1. $e='e'.$d;

spróbuj to zmienić na
  1. $e=$d.'e';

i w formularzu na to i zobaczymy teraz
  1. echo '<td><input type="text" name="'.$c.'e" /></td>';
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.