Avatar billede bahn Nybegynder
09. februar 2003 - 20:14 Der er 12 kommentarer og
1 løsning

Udtræk fra db i spalter

Hej Jeg har en bunke nummre der skal stå i nummer orden i 2 spalter det er MySQL og php jeg bruger. Jeg har bare brug for nogle forslag.
Avatar billede enragedbudda Nybegynder
09. februar 2003 - 20:20 #1
uddyb det lige lidt..!
Avatar billede bahn Nybegynder
09. februar 2003 - 20:29 #2
Jeg har en masse reservedels nummre og jeg kan godt få dem til at stå i to spalter men de er sorteret forkert ex:

19B 503 21 93-16 SKRUE 45A      503 22 00-01 FLANGEMØTRIK M8
20A 503 22 10-02 MØTRIK 76A      503 22 10-11 SVINGHJULSMØTRIK
76B 503 22 23-02 LÅSE MØTRIK 22A 503 22 62-01 MØTRIK
23B 503 22 65-04 MØTRIK 22B      503 22 72-01 SNABBLÅSMØTRIK

det er ikke overskueligt nok alstså de skal være sorteret:

1    5
2    6
3    7
4

hvordan gør man det?
Avatar billede enragedbudda Nybegynder
09. februar 2003 - 20:31 #3
hmm...

To sek, bikser lige noget sammen....
Avatar billede enragedbudda Nybegynder
09. februar 2003 - 20:31 #4
Hvilken colonne skal det sorteres efter?
Avatar billede bahn Nybegynder
09. februar 2003 - 22:10 #5
nummer; men bare kom med noget jeg kan få en ide af!!
Avatar billede bahn Nybegynder
09. februar 2003 - 23:11 #6
dette skriver jeg meste for at komme på forsiden så nogen kan se jeg har et lille uopklaret problem!!
Avatar billede olebole Juniormester
10. februar 2003 - 00:00 #7
<ole>

Må jeg se din SQL-sætning?

/mvh
</bole>
Avatar billede bahn Nybegynder
10. februar 2003 - 00:18 #8
SELECT reol,id,vis,beskrivelse,hosid FROM priser where reol != '' ORDER BY nummer:

<?
echo"<TABLE ALIGN=\"center\" STYLE=\"width:19cm;\" BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"3\">\n";
echo"<TR>\n\t";
echo"<TH>Reol</TH>\n";
echo"<TH>Nummer</TH>\n\t";
echo"<TH>Beskrivelse</TH>\n\t";
echo"<TH>Reol</TH>\n";
echo"<TH>Nummer</TH>\n\t";
echo"<TH>Beskrivelse</TH>\n\t";
echo"</TR>\n";
$f="0";
echo"<TR>\n\t";
while($data = mysql_fetch_array($result))
{
if($f%2==0){
$tdcol = "id=\"H\"";
}

if($f%2==1){
$tdcol = "id=\"G\"";
}

echo"<TD $tdcol>$data[reol]</TD>\n\t";
echo"<TD $tdcol>$data[vis]</TD>\n\t";
echo"<TD $tdcol>$data[beskrivelse]</TD>\n\t";
if($f%2==1){
echo"</TR>\n\t";
echo"<TR>\n\t";}
$f++;
}
echo"</TR>\n";
$fp=fopen("ledeskuf.dat","r");
$skuffer = fread($fp, filesize("ledeskuf.dat"));
fclose($fp);
echo"<TR>\n\t";
echo"<TD COLSPAN=\"2\">".nl2br($skuffer)."</TD>";
echo"</TR>\n\t";
echo"</TABLE>\n\n";
?>

men der er jo problemet at det står som følger:

1 2
3 4

og ikke som ønsket
1    5
2    6
3    7
4
Avatar billede olebole Juniormester
10. februar 2003 - 01:55 #9
Jeg fatter ikke rigtig, hvad du prøver at gøre med id'en på cellerne. En id skal jo være unik ... det får du vist ikke ud af det, du forsøger. Hvordan vil du gerne have id'erne til at forløbe?
Det her skulle gerne fordele udtrækket, som du gerne vil have - så må vi hitte ud af at sætte id'er på imorgen:

<?
$sql = "SELECT reol,id,vis,beskrivelse,hosid FROM priser where reol != '' ORDER BY nummer";
$result = mysql_query( $sql );
$num_rows = mysql_num_rows( $result );
$half_num = ceil( $num_rows );
$inx = 0;
while( $data = mysql_fetch_array($result) ) {
    if ( $inx<$half_num ) {
        $str .= "    <TR>\n";
        $str .= "        <TD>".$data["reol"]."</TD>\n";
        $str .= "        <TD>".$data["vis"]."</TD>\n";
        $str .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $str .= "    </TR>\n";
    } else {
        $str2 .= "    <TR>\n";
        $str2 .= "        <TD>".$data["reol"]."</TD>\n";
        $str2 .= "        <TD>".$data["vis"]."</TD>\n";
        $str2 .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $str2 .= "    </TR>\n";
    }
    $inx++;
}
$fp = fopen( "ledeskuf.dat", "r" );
$skuffer = fread( $fp, filesize("ledeskuf.dat") );
fclose( $fp );
$str3 .= "<TR>\n";
$str3 .= "    <TD COLSPAN=\"3\">".nl2br($skuffer)."</TD>\n";
$str3 .= "</TR>\n";
?>
<TABLE ALIGN="center" STYLE="width:720px;" BORDER="0" CELLSPACING="0" CELLPADDING="3">
<TR>
    <TD style="width:350px;">
    <table style="width:100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>
        <TH>Reol</TH>
        <TH>Nummer</TH>
        <TH>Beskrivelse</TH>
    </tr>
    <?=$str?>
    </table>
    </TD>
   
    <TD style="width:20px;">&nbsp;</TD>
   
    <TD style="width:350px;">
    <table style="width:100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>
        <TH>Reol</TH>
        <TH>Nummer</TH>
        <TH>Beskrivelse</TH>
    </tr>
    <?=$str2?>
    </table>
    </TD>
</TR>
<?=$str3?>
</TABLE>

/mvh
Avatar billede bahn Nybegynder
10. februar 2003 - 09:54 #10
Mange tak for ideen der skulle lidt justeringer til:

<?
$sql = "SELECT reol,vis,beskrivelse FROM priser where reol != '' ORDER BY nummer";
$result = mysql_query( $sql );
$num_rows = mysql_num_rows( $result );
$half_num = ceil( $num_rows )/2;
$inx = 0;
while( $data = mysql_fetch_array($result) ) {
    if ( $inx<$half_num ) {
        $str .= "    <TR>\n";
        $str .= "        <TD>".$data["reol"]."</TD>\n";
        $str .= "        <TD>".$data["vis"]."</TD>\n";
        $str .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $str .= "    </TR>\n";
    }    else {
        $strb .= "    <TR>\n";
        $strb .= "        <TD>".$data["reol"]."</TD>\n";
        $strb .= "        <TD>".$data["vis"]."</TD>\n";
        $strb .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $strb .= "    </TR>\n";
    }
    $inx++;
}
$fp = fopen( "ledeskuf.dat", "r" );
$skuffer = fread( $fp, filesize("ledeskuf.dat") );
fclose( $fp );
$strc .= "<TR>\n";
$strc .= "    <TD COLSPAN=\"3\">".nl2br($skuffer)."</TD>\n";
$strc .= "</TR>\n";
?>
<TABLE ALIGN="center" STYLE="width:80%;" BORDER="0" CELLSPACING="0" CELLPADDING="3">
<TR>
    <TD style="width:48%;">
    <table style="width:100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>
        <TH>Reol</TH>
        <TH>Nummer</TH>
        <TH>Beskrivelse</TH>
    </tr>
    <?=$str?>
    </table>
    </TD>
   
    <TD style="width:4%;">&nbsp;</TD>
   
    <TD VALIGN="top" style="width:48%;">
    <table style="width:100%;" cellspacing="0" cellpadding="0" border="0">
    <tr>
        <TH>Reol</TH>
        <TH>Nummer</TH>
        <TH>Beskrivelse</TH>
    </tr>
    <?=$strb?>
    </table>
    </TD>
</TR>
<?=$strc?>
</TABLE>

Du havde ret id og hosid skulle ikke buges, det er den store cut/paste djævle der har hele skullen.
Kan du ikke forklare mig hvad det lige er der sker jeg synes der mangler noget echo værk  og hvad er det lige det der .=  betyder det noget i retningen af den nye $str = den forrige + den der står i "" tegn, eller hvad?
Avatar billede bahn Nybegynder
10. februar 2003 - 09:56 #11
jeg har to kollonner med id - id og hosid
alle id nummerne er unikke
hosid i det bruger jeg til at joine en tabel med firmanavnene og adresser osv.
Avatar billede bahn Nybegynder
10. februar 2003 - 10:40 #12
Kom med et svar olebole:

det skal bruges til at udskrive en liste over hvad der ligger i hvilke skuffer på et lager så der er en del ændringer, men du må gerne lige forklarer hvad det det med <?=$strb?> og $strc .= "<TR>\n";
går ud på.

her er resultatet:

<?
$sql = "SELECT reol,vis,beskrivelse FROM priser where reol != '' ORDER BY nummer";
$result = mysql_query( $sql );
$lin_per_spalte = 63;
$inx = 0;
while($data = mysql_fetch_array($result) ) {

    if ( $inx<$lin_per_spalte ) {
        $str .= "    <TR>\n";
        $str .= "        <TD>".$data["reol"]."</TD>\n";
        $str .= "        <TD>".$data["vis"]."</TD>\n";
        $str .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $str .= "    </TR>\n";
    }    elseif( $inx<$lin_per_spalte*2 ) {
        $strb .= "    <TR>\n";
        $strb .= "        <TD>".$data["reol"]."</TD>\n";
        $strb .= "        <TD>".$data["vis"]."</TD>\n";
        $strb .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $strb .= "    </TR>\n";
    }    elseif( $inx<$lin_per_spalte*3 ) {
        $strc .= "    <TR>\n";
        $strc .= "        <TD>".$data["reol"]."</TD>\n";
        $strc.= "        <TD>".$data["vis"]."</TD>\n";
        $strc .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $strc .= "    </TR>\n";
    }    elseif( $inx<$lin_per_spalte*4 ) {
        $strd .= "    <TR>\n";
        $strd .= "        <TD>".$data["reol"]."</TD>\n";
        $strd .= "        <TD>".$data["vis"]."</TD>\n";
        $strd .= "        <TD>".$data["beskrivelse"]."</TD>\n";
        $strd .= "    </TR>\n";
    }
    $inx++;
}
$tabel = "\t<TABLE BORDER=\"0\" CELLSPACING=\"0\" CELLPADDING=\"2\" STYLE=\"width:100%;\">\n<tr>\n\t<TH>Reol</TH>\n\t<TH>Nummer</TH>\n\t<TH>Beskrivelse</TH>\n</tr>";
?>
<TABLE ALIGN="center" STYLE="width:80%;" BORDER="0" CELLSPACING="0" CELLPADDING="0">
<TR>
    <TD style="width:48%;">
<?echo"$tabel";?>
    <?=$str?>
    </table>
    </TD>
   
    <TD style="width:4%;">&nbsp;</TD>
   
    <TD VALIGN="top" style="width:48%;">
<?echo"$tabel";?>
    <?=$strb?>
    </table>
    </TD>
</TR>
<TR>
<TD COLSPAN="3">&nbsp;</TD>
</TR>
<TR>
    <TD style="width:48%;">
<?echo"$tabel";?>
    <?=$strc?>
    </table>
    </TD>
   
    <TD style="width:4%;">&nbsp;</TD>
   
    <TD VALIGN="top" style="width:48%;">
<?echo"$tabel";?>
    <?=$strd?>
<?
$fp = fopen( "ledeskuf.dat", "r" );
$skuffer = fread( $fp, filesize("ledeskuf.dat") );
fclose( $fp );
echo"<TR>\n";
echo"\t<TD COLSPAN=\"3\">".nl2br($skuffer)."</TD>\n";
echo"</TR>\n";
?>
    </table>
    </TD>
</TR>
</TABLE>
<INPUT TYPE="button" VALUE="Print" STYLE="width:300;font-size:large;font-weight:bold;position:absolute;left:280;top:180;" onclick="window.print();return false"></P>
Avatar billede olebole Juniormester
10. februar 2003 - 18:46 #13
$strc .= "<TR>\n";
er det samme som (men lidt hurtigere):
$strc = $strc."<TR>\n";

<?=$strc?>
er det samme som:
<? echo $strc ?>

I stedet for at definere din $tabel kunne du lige før di while-løkke skrive:
$str = $strb = $strc = $strd = "\t<TABLE BORDER=\"0\" CELLSPACING=\"0\" ... osv ...";

Så ligger den allerede i begyndelsen af hver streng og bliver skrevet ud, når du skriver strengene ud  ;o)
/mvh
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