Avatar billede bigtime Nybegynder
03. februar 2012 - 16:51 Der er 17 kommentarer og
1 løsning

udtræk fra db i tabel

har rodet lidt med det man kan ikke få den til det-
det skulle være sådan at den skriver 3 ned af og hvis der er flere så laver den en ny rekke ved siden af alså hvis der er 3 til eller mindre

if($b == '0'&&$c == '0') {
$sqdl = mysql_query("select * from kat where a ='$a' AND b<>'0'");
$kontroler = mysql_num_rows($sqdl);
?>
<table border="0" width="100%" cellspacing="0" cellpadding="0">
  <tr>
  <?PHP
$i = '1';
while($i < 4){
$roww3 = mysql_fetch_array($sqdl);
?>
<td width="33%"><font face="verdana" size="1"><a href='index.php?go=kategori&id=<?PHP echo "".$roww3['id'].""; ?>'><?PHP echo "".$roww3['navn'].""; ?></a></td>
  <?PHP
    echo "</tr><tr>";
$i++;
}
?>

  </tr>
</table>

<?PHP
}
Avatar billede Havelaage Nybegynder
03. februar 2012 - 16:54 #1
Du skal bruge while() løkke.

while($roww3 = mysql_fetch_array($sqdl)){

//indhold

} //luk din while
Avatar billede bigtime Nybegynder
03. februar 2012 - 17:04 #2
ja så skriver den dem alle ud i en række og det skal den ikke den skal skrive 3 ned så skal den lave en ny række med 3 og sådan skal den forsætte ind til der ikke er flere
Avatar billede madslundholm Novice
03. februar 2012 - 17:20 #3
Ville lade være med at lave det i en tabel så. Vil derimod bruge div'tags.

<?php
$sql = mysql_query("SELECT * FROM dinTabel WHERE a ='$a' AND b<>'0'");
while($tekst = mysql_fetch_array($sql)){
print '<div style="width: 33%; height: 100px; font-family: verdana; font-size: 1em;"><a href="index.php?go=kategori&id=' . $tekst['id'] . '">' . $tekst['navn'] . '</a>
</div>';
}
?>

Mvh. MadsLundholmDk
Avatar billede bigtime Nybegynder
03. februar 2012 - 17:30 #4
der skriver dem stadig ned af alle sammen den skulle jo kun lave 3 udtræk ned af og hvis der var flere skulle den lave en række ved siden af med 3 ned af osv osv til der ikke var flere
Avatar billede olebole Juniormester
03. februar 2012 - 17:37 #5
<ole>

For det første: Undlad i videst muligt omfang at blande PHP-kode ind i din HTML-kode - og undlad altid at udskrive i løkker. Andet er dårlig/uhensigtsmæssig kodestil.

I stedet bør du lægge din PHP-kode i funktioner i toppen af dokumentet og kalde dem, når du har brug for dem i HTML-koden. Dit aktuelle problem kan løses med følgende funktion:

<?php
function getTable($tdsPrRow) {
    $sqdl = mysql_query("select * from kat where a ='$a' AND b<>'0'");
    $arrHtml = array();
    $inx = 0;
    while ($roww3 = mysql_fetch_assoc($sqdl)) {
        if ($inx>0 && $inx%$tdsPrRow===0) {
            $arrHtml[] = '</tr><tr>';
        }
        $arrHtml[] = '<td width="33%"><font face="verdana" size="1"><a href="index.php?go=kategori&id='.$roww3['id'].'">'.$roww3['navn'].'</a></td>';
        $inx++;
    }
    $rest = $tdsPrRow-($inx%$tdsPrRow);
    for ($i=0; $i<$rest; $i++) {
        $arrHtml[] = '<td width="33%">&nbsp;</td>';
    }
    return '<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>'.implode('', $arrHtml).'</tr></table>';
}
?>

- og nede i HTML-koden kan du skrive:

<div>
<?php echo getTable(3) ?>
</div>

/mvh
</bole>
Avatar billede olebole Juniormester
03. februar 2012 - 17:38 #6
At jeg så synes, din HTML-kode er dybt bedaget, er så en helt anden ting  =)
Avatar billede bigtime Nybegynder
03. februar 2012 - 20:59 #7
ja min kodning er ikke den bedste men prøver at  lære det,
hmm det virkede slet ikke det der
Avatar billede olebole Juniormester
03. februar 2012 - 21:01 #8
Hvad betyder "virker ikke"?
Avatar billede olebole Juniormester
03. februar 2012 - 21:10 #9
Nu har jeg jo ikke din DB at test mod, men med dette array (som gør det samme) virker koden da helt fint  =)

<?php
function getTable($tdsPrRow) {
    $arr = array(
        array('id'=> 1,'navn'=>'ole'),
        array('id'=> 2,'navn'=>'bole'),
        array('id'=> 3,'navn'=>'bum'),
        array('id'=> 4,'navn'=>'foo'),
        array('id'=> 5,'navn'=>'bar'),
        array('id'=> 6,'navn'=>'baz'),
        array('id'=> 7,'navn'=>'fooBar'),
        array('id'=> 8,'navn'=>'fooBaz'),
        array('id'=> 9,'navn'=>'olebole')
    );
    $counter = 0;
   
    $arrHtml = array();
    $inx = 0;
    while ($counter<9 && $roww3 = $arr[$counter++]) {
        if ($inx>0 && $inx%$tdsPrRow===0) {
            $arrHtml[] = '</tr><tr>';
        }
        $arrHtml[] = '<td width="33%"><font face="verdana" size="1"><a href="index.php?go=kategori&id='.$roww3['id'].'">'.$roww3['navn'].'</a></td>';
        $inx++;
    }
    $rest = $tdsPrRow-($inx%$tdsPrRow);
    for ($i=0; $i<$rest; $i++) {
        $arrHtml[] = '<td width="33%">&nbsp;</td>';
    }
    return '<table border="0" width="100%" cellspacing="0" cellpadding="0"><tr>'.implode('', $arrHtml).'</tr></table>';
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Untitled Document</title>
</head>
<body>

<div>
<?php echo getTable(3) ?>
</div>

</body>
</html>
Avatar billede bigtime Nybegynder
06. februar 2012 - 20:54 #10
får den her fejl
Cannot redeclare gettable()
Avatar billede bigtime Nybegynder
06. februar 2012 - 21:06 #11
okay laver jeg en test side så kan jeg godt få det til at virke men sætter jeg det ind der hvor det skal bruges så får jeg fejl
Fatal error: Cannot redeclare gettable() (previously declared in /
Avatar billede olebole Juniormester
06. februar 2012 - 23:30 #12
Nej, det gør du ikke. I den kode, jeg har skrevet, er der kun én funktion med det navn. Får du den fejl, er det ikke i den kode, jeg har skrevet  =)
Avatar billede bigtime Nybegynder
07. februar 2012 - 17:21 #13
:D intet kritik. siger jo også din kode virker i den test.php side jeg har lavet det var bare når jeg satte den ind i den fil den skulle bruges der kom en fejl, trivler ikke på din kodening ;D

Hvad mener du er god kode stil?
må man spørge hvad du arbejder med for du ved da rigtig meget om programmering ;D
Avatar billede olebole Juniormester
07. februar 2012 - 17:53 #14
Bare rolig, jeg tager det ikke som kritik. Og hvis endelig det var en kritik, var det jo bare en kritik af min kode og ikke af min person. Der er pokkers til forskel  *o)

Fejlen opstår, fordi du allerede har en funktion med det navn - evt. i en include fil. Når så du kører min kode, prøver du at overskrive den første funktion - og det må/kan man ikke i PHP.

Jeg er webudvikler og underviser derudover i webudvikling. 'God kodestil' kan defineres indenfor alle aspekter af kodning/programmering, så det emne kan man fylde mange bøger med  =)
Avatar billede bigtime Nybegynder
07. februar 2012 - 18:45 #15
okay hvor henne er det underviser er det noget kursus noget for så kunne det da godt være jeg ville tilmelde mig :D
Alt hvad jeg kan har jeg læst mig til og prøvet mig frem, er uddannet elektriker :D

fandt fejlen jeg havde kommet til at adde koden 2 gang på siden :D
super mange tak igen igen igen igen :D
Avatar billede olebole Juniormester
07. februar 2012 - 18:56 #16
Det er bl.a. på webintegrator uddannelsen ved KTS - for tiden ikke på kursusplan.

Selvtak, og du lægger selv ... og alt det sædvanlige  *o)
Avatar billede bigtime Nybegynder
07. februar 2012 - 19:11 #17
:D tak tak
Kunne nok godt bruge lidt kursus :D
Avatar billede olebole Juniormester
07. februar 2012 - 19:20 #18
Jamen, er det ikke mere eller mindre det, vi er i gang med?  *D
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