ugrás a tartalomhoz

while szamlalasi gondok

eaposztrof · 2007. Dec. 31. (H), 02.27
udv..
...
$x=0;
if ($error) {
 $wy=40;
 } else {
  $wy=10;
}
if ($google) {
 while ($x<$wy) {
  if (preg_match("'eaposztrof.com\/'i",$res[$x]) && !preg_match("'blog.eaposztrof.com\/'i",$res[$x])){
   $a1=array("...
...
  }
 $x++;
}
ha $error true, akkor a while 40x kellene lefusson, de csak 10x fut le, ha kevesebb kiirni valo tartalom van mint 10, akkor az utolso kiirasanal ugy viselkedik mintha kiadtam volna a break parancsot. nem ertem mi okozhatj mindezt!?
 
1

szntem

DsA · 2008. Jan. 1. (K), 04.21
Szia!
Szerintem azért fut le csak 10-szer akkor mert az error sose lesz true... nem?
2

biztos true?

Skalár · 2008. Jan. 1. (K), 04.32
Biztos, hogy TRUE az a $error? Közvetlenül a while fölött írasd ki $x, $wy, $error értékeit:
var_dump($x);
var_dump($wy);
var_dump($error);
3

while gondok

eaposztrof · 2008. Jan. 2. (Sze), 01.30
eredmeny:
asdint(0) int(10) bool(true)

megjegyzes: az $error-t az index.php-ben definialom, majd include-olom a programot.
ime a teljes program:
http://eaposztrof.com/?e_seach-source=true
4

Debugolj tovább!

Skalár · 2008. Jan. 2. (Sze), 12.30
Akkor annyi kiderült, hogy az else ágba megy bele valamiért. Ötleteim: nézd meg az $error értékét az if előtt is. Vedd ki ezt a programrészt az egészből és önmagában teszteld. Próbálkozz az
if ( $error == true ) {...}
szintaxissal.
A likedből pedig a forráskód nem látszik, csak a végeredmény.
5

szntem

DsA · 2008. Jan. 2. (Sze), 14.27
szerintem, bár nem akarok okoskodni
de ez nem így helyes:
if ( $error === true ) { ... }
? bocsi ha hülyeséget írtam :(
márcsak azért mert ezt szerintem itt kell használni (===) de ha nem akkor nemotm hol :\
6

==

Skalár · 2008. Jan. 2. (Sze), 18.34
Ahogy a topiknyitó jelezte ez az $error „messziről jön”, előfordulhat, hogy egy automatikus konverzió során 1 lett az értéke, így én kitartok a dupla egyenlőségjel mellett. Persze ha biztosan tudjuk, hogy boolean típusú, akkor jó a tripla.
7

helyes link a while-hoz

eaposztrof · 2008. Jan. 3. (Cs), 07.55
A likedből pedig a forráskód nem látszik, csak a végeredmény.

elnezest, ime ujra:
http://eaposztrof.com/e_seach/?e_seach-source=true

es ime ahogy meghivom:
<?php $error=true ?>
<?php include("e_seach/e_seach.php") ?>
8

A valós kód eltér attól amit írtál a kérdésedben

zila · 2008. Jan. 3. (Cs), 10.25
A linkelt kódodban ez van:
if ($error) { 
        $wy=10; 
    } else { 
        $wy=10; 
    } 
vagyis bármi legyen is az $error értéke, a $xy értéke 10, így nem csoda, ha csak 10-szer fut le a ciklusod... :)
9

while a linkelt kodban

eaposztrof · 2008. Jan. 3. (Cs), 16.43
bocsi.. figyelmetlen voltam ismet.. visszaallitottam 10-re, mert ha annal tobb, akkor mint mar emlitettem, a 10. kiiras utan leallitja a scriptet, tehat semmit nem futtat le ami utana van, igy az oldal tovabbi elemei hianyoznak, ezert redukaltam 10-re.
ha 10nel kevesebbet hatarozok meg akkor csak anyit ir ki, ha tobbet akor a 10 utan break;

kozben kiprobaltam egy masik szerveren, es ugyanugy nemmukoik :(
10

Debugolni kéne

zila · 2008. Jan. 3. (Cs), 17.31
Értem. Talán szimplán túlcímzed a tömbödet, mi lenne, ha bekapcsolnád a hibaüzenetek megjelenítését (netán try{} catch() blokkba tennéd a ciklusmagot és hiba esetén naplóznál pl.) akkor kiderülne min/miért hasal el a dolog...