Avatar billede j_jorgensen Nybegynder
10. juni 2004 - 20:21 Der er 5 kommentarer og
1 løsning

Placere <hr> i while-løkke

Det er svært at angive en præcis overskrift - forklaring følger her:

jeg har et sql-kald som returnerer en masse rows hvori der er en værdi som enten er 0 eller 1, naturligvis sorteret efter den row så 0 kommer først. Når sidste row med 0 nåes (dvs lige før værdien skifter til 1) skal der indsættes en <hr> for at adskille dataene. Hvordan klares det nemmest uden at lave to separate kald?
Avatar billede technodance.dk Nybegynder
10. juni 2004 - 20:28 #1
kan du give noget kode så vil det være lidt menter at hjælpe til
Avatar billede technodance.dk Nybegynder
10. juni 2004 - 20:28 #2
nemere
Avatar billede jaw Nybegynder
10. juni 2004 - 20:33 #3
Måske: ?

$i = 0;
while($i < noget) {
  $i_ = $i - 1;
  if($array[$i] == "1" && $array[$i_] == "0") {
    echo"<hr>";
  }
  echo $array[$i];
}

Hvor god den er, ved jeg ikke... Sikkert nogen klogere, der kan en bedre :)
Avatar billede j_jorgensen Nybegynder
10. juni 2004 - 20:35 #4
eksempel:

while ($arry=mysql_fetch_array($sql_resultat) {

Her vises dataene i rækker, eg:

id    bøh    buh  stat

1      abc    def  1
2      ghi    jkl  1
3      mno    pqr  2
3      stu    vwx  2

}

efter det sidste 1 skal der vises en <hr>.
Avatar billede jgivoni Nybegynder
10. juni 2004 - 20:53 #5
$prev_arry_stat="";

while ($arry=mysql_fetch_array($sql_resultat)) {

if (($arry["stat"]!=$prev_arry_stat) and ($prev_arry_stat!=""))
  print("<hr>");

Her vises dataene i rækker, eg:

id    bøh    buh  stat

1      abc    def  1
2      ghi    jkl  1
3      mno    pqr  2
3      stu    vwx  2

$prev_arry_stat=$arry["stat"];

}

Du kan prøve med dette. Forklaring:
$prev_arry_stat holder på den foregående "stat"-værdi.
Hvis den foregående "stat"-værdi er forskellig fra den aktuelle, udskrives et <hr> inden rækken udskrives. Dvs. der vil udskrives et <hr> hver gang stat ændrer sig.
Det er ikke afprøvet, så jeg tager forbehold for trykfejl, m.v. ;-)
Avatar billede j_jorgensen Nybegynder
10. juni 2004 - 21:33 #6
Thank you - it works like a charm.

Min kode: (ja rodet!)

$prev_stat="";
while ($arr27 = mysql_fetch_array($res6)) {
    if ($arr27[3]!=$prev_stat&&$prev_stat!="")
      {

...data...

    $prev_stat=$arr27[3];
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester