php - while in while [megoldva]

friss: megoldottam.

a dátumot 1970-re vette, strotime kellett az első while hoz.

amiért kell: A lényeg, hogy meghátazott napokat kiolvas adatbázisból és ebből készít egy táblázatot. bejárja x és y kordinátába a táblát és html táblává varázsolja az adatokat

while on belüli while al szeretnék elérni egy változot, hiába írtam már globals-al
ötlet?

betettem a var dumpot ahol nem akarja az igazat

//ideiglenes valtozok
$elozocikkszam="";
$elozocikkszamkg=0;
$naplepegeto=$gyartkidatumuj;
$olvasott_gyartasdatum="";
while($kilistazom3=mysqli_fetch_array($mennyisegek)) {
$olvasott_cikkszam=$kilistazom3['cikkszam'];
$olvasott_termekmegnevezes=$kilistazom3['termekmegnevezes'];
$olvasott_gyartasdatum=$kilistazom3['gyartasdatum'];
$olvasott_gyartasdatum=date('Ymd',$olvasott_gyartasdatum);
$olvasott_mennyisegkg=$kilistazom3['mennyisegkg'];

//sor zarasa
if($elozocikkszam!="" and $elozocikkszam!=$olvasott_cikkszam) {
echo '

'.$elozocikkszamkg.'

';
$elozocikkszamkg=0;
}

//sor nyitasa
if($elozocikkszam!=$olvasott_cikkszam) {
//sor eleje beir
echo '

'.$olvasott_cikkszam.' '.$olvasott_termekmegnevezes.'

';
$naplepegeto=$gyartkidatumuj;
$elozocikkszam=$olvasott_cikkszam;
}
//visszuk bentebb a cellakat mig van datum
while($naplepegeto<$olvasott_gyartasdatum) {
var_dump($naplepegeto);
echo '

'.$naplepegeto.'

';
$naplepegeto=strtotime ( '+ 1 day' , strtotime ($naplepegeto) ) ;
$naplepegeto=date('Ymd',$naplepegeto);
}
echo '

'.$olvasott_mennyisegkg.'

';
$elozocikkszamkg=$elozocikkszamkg+$olvasott_mennyisegkg;
}

Hozzászólások

Ez a kód így helytelen, hiányzik az első while -hoz tartozó }
Elmondanád, hogy pontosan melyik változót, és hol nem éred el? Mi a hibaüzenet?

bocs a végét lehagytam

//ideiglenes valtozok
$elozocikkszam="";
$elozocikkszamkg=0;
//$naplepegeto=$gyartkidatumuj;
$olvasott_gyartasdatum="";
while($kilistazom3=mysqli_fetch_array($mennyisegek)) {
$olvasott_cikkszam=$kilistazom3['cikkszam'];
$olvasott_termekmegnevezes=$kilistazom3['termekmegnevezes'];
$olvasott_gyartasdatum=$kilistazom3['gyartasdatum'];
$olvasott_gyartasdatum=date('Ymd',$olvasott_gyartasdatum);
$olvasott_mennyisegkg=$kilistazom3['mennyisegkg'];

//sor zarasa
if($elozocikkszam!="" and $elozocikkszam!=$olvasott_cikkszam) {
echo '

'.$elozocikkszamkg.'

';
$elozocikkszamkg=0;
}

//sor nyitasa
if($elozocikkszam!=$olvasott_cikkszam) {
//sor eleje beir
echo '

'.$olvasott_cikkszam.' '.$olvasott_termekmegnevezes.'

';
$naplepegeto=$gyartkidatumuj;
$elozocikkszam=$olvasott_cikkszam;
}

//visszuk bentebb a cellakat mig van datum // ITT NEM MEGY lent a while
while($naplepegeto<$olvasott_gyartasdatum) {
echo '

'.$naplepegeto.'

';
$naplepegeto=strtotime ( '+ 1 day' , strtotime ($naplepegeto) ) ;
$naplepegeto=date('Ymd',$naplepegeto);
}
echo '

'.$olvasott_mennyisegkg.'

';
$elozocikkszamkg=$elozocikkszamkg+$olvasott_mennyisegkg;
}

Nem akarok beleszólni, de a nyitóban javítani egy záró kapcsos zárójelet egyszerűbb lett volna, itt meg válaszolhattál volna a kérdésre. Hogyan segítsenek neked, ha el sem olvasod, amit írnak?

- hibaüzenet?
- melyik változó?

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

húúú, kusza :)

Melyik változót "nem éred el"? Mit értesz az alatt hogy "nem éred el"? (Látszólag) nincs értéke?
kizárásos alapon $naplepegeto vagy $olvasott_gyartasdatum.
var_dump($valtozó) második while előtt közvetlenül és belül is mindkét változóra, és kiderül hogy mi a típusa és az értéke.

Ha jól számolom egy záró } hiányzik innen.
A második while első sorában (echo) nem értem azt a két üres '' -t.

KoviX

szogleteszarojel code szogleteszarojel bezarva

szogleteszarojel perjel code sozgleteszarojel bezarva

"\t" vagy replace " " ésjel nbsp pontosvesszo        please

off :)

#!/bin/bash

AWK_SCRIPT='
BEGIN {
    spaces="        ";
    sp=length(spaces);
    FS="";
    print "<code>";
}

{
    linestr="";
    for (i=1; i<=NF; i++) {
        if ($i=="\t") {
            splen=length(linestr)%sp;
            linestr=linestr substr(spaces, ++splen);
        } else {
            linestr=linestr $i;
        }
    }
    gsub(/\&/, "\\&amp;", linestr);
    gsub(/ /, "\\&nbsp;", linestr);
    gsub(/</, "\\&lt;", linestr);
    gsub(/>/, "\\&gt;", linestr);
    print linestr;
}

END {
    print "</code>";
}
'

if [ $# -gt 1 ]; then
    echo 'Too many input parameters' >&2
    exit 1
fi
{
    if [ $# -eq 1 ]; then
        if [ -r "$1" ]; then
            awk "$AWK_SCRIPT" "$1"
        else
            echo "File '$1' not readable" >&2
            exit 1
        fi
    else
        xsel -pol /dev/null | awk "$AWK_SCRIPT"
    fi
} | xsel -bil /dev/null
exit 0

tr '[:lower:]' '[:upper:]' <<<locsemege
LOCSEMEGE

"betettem a var dumpot ahol nem akarja az igazat"

Ja, csak rossz helyre. Mert a feltétel elé [is] kellett volna. Tehát ha a

$naplepegeto<$olvasott_gyartasdatum

feltétel sosem teljesül, akkor nem fog a vezérlés a var_dumpra kerülni.

Elég kevés infót adtál. Első blikkre a $naplepegeto nagyobb, mint az $olvasott_gyartasdatum. Nézd meg, hogy ennek a két változónak mi az értéke.