Avatar billede mc.lucifer Praktikant
11. august 2005 - 15:35 Der er 30 kommentarer og
1 løsning

php og array og 3 gange <td>

Jeg har lidt problemmer med at få det her til at fungere.
Jeg vil gerne have 3 gange <td></td> efter fulgt af </tr><tr> så mange gange som der er row´s i tabellen.

<table cellpadding=\"0\" cellspacing=\"0\"><tr>
<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select * from kat");
$product1 = mysql_query("select Katname from kat");
$katcount = mysql_num_rows($product1);
$katArray = array();
while($row = mysql_fetch_assoc($product))
{
    $katArray[] = $row[Katname];
    echo"<tr><td>$katArray[$Arrayid]</td><td>$katArray[$Arrayid]</td><td>$katArray[$Arrayid]</td></tr>";$Arrayid++;
}
?>
</tr></table>

MC
Avatar billede jakobdo Ekspert
11. august 2005 - 15:47 #1
Jeg har selv haft success med denne kode:

$kolonner = 3;
$antalImages = count($fileArray);

if($antalImages > 0)
{
    krsort($fileArray);
   
    echo "<table id=\"centerTable\">\n";
    echo "<tr>\n";
    $i = 0;
   
    foreach($fileArray as $time => $file)
    {
    if(!($i%$kolonner) && $i>0 && $i < $antalImages)
    {
            $tmp .= "</tr>\n<tr>\n";
    }
    $tmp .= "<td><a target=\"_blank\" href=\"show.php?src=".preg_replace('/^thumb_/', 'original_', $file)."\"><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
    $i++;
  }
 
  for($i=0; $antalImages % $kolonner && $i<$kolonner-($antalImages % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}
Avatar billede mc.lucifer Praktikant
11. august 2005 - 15:51 #2
ok, din kode hjælper mig overhovedet ikke, men derimod så jeg ordet " Foreach " som jeg lige nærlæser ´lidt

MC - Jeg vender baglæns med svar
Avatar billede jakobdo Ekspert
11. august 2005 - 15:54 #3
Koden skulle ellers være god nok.
Test lige:

<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select * from kat");
$product1 = mysql_query("select Katname from kat");
$katcount = mysql_num_rows($product1);
$katArray = array();
while($row = mysql_fetch_assoc($product))
{
    $katArray[] = $row[Katname];
}

$kolonner = 3;
$antalImages = count($fileArray);

if($antalImages > 0)
{
    krsort($fileArray);
   
    echo "<table cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
    echo "<tr>\n";
    $i = 0;
   
    foreach($fileArray as $time => $file)
    {
    if(!($i%$kolonner) && $i>0 && $i < $antalImages)
    {
            $tmp .= "</tr>\n<tr>\n";
    }
    $tmp .= "<td><a target=\"_blank\" href=\"show.php?src=".preg_replace('/^thumb_/', 'original_', $file)."\"><img src=\"upload/".$file."\" title=\"Billedet er uploadet: ".strftime("%e. %B %Y - %T",$time)."\" alt=\"".basename($file)."\"></td>\n";
    $i++;
  }
 
  for($i=0; $antalImages % $kolonner && $i<$kolonner-($antalImages % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}

?>
Avatar billede jakobdo Ekspert
11. august 2005 - 15:56 #4
Hov for fanden...
For meget copy/paste

Prøv denne:

<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select * from kat");
$product1 = mysql_query("select Katname from kat");
$katcount = mysql_num_rows($product1);
$katArray = array();
while($row = mysql_fetch_assoc($product))
{
    $katArray[] = $row[Katname];
}

$kolonner = 3;
$antalKat = count($katArray);

if($antalKat > 0)
{
    echo "<table cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
    echo "<tr>\n";
    $i = 0;
   
    foreach($katArray as $kat)
    {
    if(!($i%$kolonner) && $i>0 && $i < $antalKat)
    {
            $tmp .= "</tr>\n<tr>\n";
    }
    $tmp .= "<td>".$kat."</td>\n";
    $i++;
  }
 
  for($i=0; $antalKat % $kolonner && $i<$kolonner-($antalKat % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}

?>
Avatar billede mc.lucifer Praktikant
12. august 2005 - 08:49 #5
Jamen det virker jo perfekt, eneste lille ting der irretere mig er at jeg ikke helt ved hvad der sker, men det må jeg jo lige nærstudere.

Svare du lige

MC
Avatar billede jakobdo Ekspert
12. august 2005 - 08:52 #6
Svar...
Avatar billede mc.lucifer Praktikant
12. august 2005 - 09:23 #7
Kan du hjælpe mig med at ligge et <a href ind ??? sådanne at hver <td></td> præsenteres som et link. ???

linket skal se sådanne ud.

<a href="$Host?Site=10&katid=$katid">.$kat.</a>

Jeg har ikke Katid i arrayet

tabellen indeholder Katname og Id dvs arrrayet skal hente dem begge, og plasere dem som ovenstående a href

MC
Avatar billede mc.lucifer Praktikant
12. august 2005 - 09:24 #8
Eller bare fortælle mig hvordan jeg for fat i Id´en i databasen

MC
Avatar billede jakobdo Ekspert
12. august 2005 - 09:46 #9
Test denne:

<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select Katid, Katname from kat");
$katcount = mysql_num_rows($product);
$katArray = array();
while($row = mysql_fetch_assoc($product))
{
    $katArray[$row['Katid']] = $row['Katname'];
}

$kolonner = 3;
$antalKat = count($katArray);

if($antalKat > 0)
{
    echo "<table cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
    echo "<tr>\n";
    $i = 0;
 
    foreach($katArray as $id => $kat)
    {
    if(!($i%$kolonner) && $i>0 && $i < $antalKat)
    {
            $tmp .= "</tr>\n<tr>\n";
    }
    $tmp .= "<td><a href=\"?Site=10&katid=".$id.">".$kat."</a></td>\n";
    $i++;
  }

  for($i=0; $antalKat % $kolonner && $i<$kolonner-($antalKat % $kolonner); $i++)
  {
        $tmp .= "<td>&nbsp;</td>\n";
  }
  $tmp .= "</tr>\n</table>";
  echo $tmp;
}

?>
Avatar billede mc.lucifer Praktikant
12. august 2005 - 09:54 #10
Jeg ved godt man selv skal lære osv osv men jeg kan ærligt talt ikke se hovede eller hale i ovenstående kode, men det ser ud som om at den ikke for afsluttet en tabel, eller måske i Ahref= da den smadre den tabel som ovensteådne kode ligger i

MC
Avatar billede jakobdo Ekspert
12. august 2005 - 10:36 #11
Kan jeg se output nogen steder?
Avatar billede mc.lucifer Praktikant
12. august 2005 - 10:37 #12
Avatar billede mc.lucifer Praktikant
12. august 2005 - 10:38 #13
Skriv når du har set den så ændre jeg den lige så du kan se hvordan den skal se ud

MC
Avatar billede mc.lucifer Praktikant
12. august 2005 - 10:40 #14
2 sek prøver lige selv at ændre noget

MC
Avatar billede mc.lucifer Praktikant
12. august 2005 - 10:43 #15
Sådanne der nu køre det. Takker endnu en gang

MC
Avatar billede jakobdo Ekspert
12. august 2005 - 10:46 #16
Sejt...
Avatar billede mc.lucifer Praktikant
15. august 2005 - 13:21 #17
må jeg lige smide en side bemærkning som jeg har opdaget.

Min Id i linket i a href starter ved 0 hvordan kan jeg få den til at tildele det første link værdien 1 og så opefter

MC
Avatar billede jakobdo Ekspert
15. august 2005 - 13:27 #18
Det skal du rette i din DB. (skulle jeg mene)
Avatar billede mc.lucifer Praktikant
15. august 2005 - 13:31 #19
Hmmmm. Det jeg så ikke forstår er så at det 0 som den første entry for ikke finde i databasen, Den starte ved 1

MC
Avatar billede jakobdo Ekspert
15. august 2005 - 13:47 #20
Prøv at tilføj denne kode:
<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select Katid, Katname from kat");
$katcount = mysql_num_rows($product);
$katArray = array();
while($row = mysql_fetch_assoc($product))
{
    $katArray[$row['Katid']] = $row['Katname'];
}

echo "<pre>";
print_r($katArray);
echo "</pre>";
exit();

Og så gerne et link til siden...
Avatar billede mc.lucifer Praktikant
15. august 2005 - 13:59 #21
Avatar billede mc.lucifer Praktikant
15. august 2005 - 14:02 #22
Hvis du holder musen over boxene kan du se at deres Katid ikke følger den ID som ligger i databasen, Hvilket den gerne skulle

MC
Avatar billede jakobdo Ekspert
15. august 2005 - 14:05 #23
Hvis du åbner dit link: http://www.romdata.dk/hint/index.php?Site=5
Er det så de korrekte id'er som står ud for hvert navn?
Avatar billede mc.lucifer Praktikant
15. august 2005 - 14:06 #24
Ja
MC
Avatar billede jakobdo Ekspert
15. august 2005 - 14:22 #25
Det lyder mærkeligt.
Vi har de rigtige data i array'et og jeg synes ikke vi ændre $id nogen steder.
Men prøv alligevel at ret nederste kode til:

$kolonner = 3;
$antalKat = count($katArray);

if($antalKat > 0)
{
    echo "<table cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
    echo "<tr>\n";
    $i = 0;

    foreach($katArray as $katid => $kat)
    {
        if(!($i%$kolonner) && $i>0 && $i < $antalKat)
        {
            $tmp .= "</tr>\n<tr>\n";
        }
        $tmp .= "<td><a href=\"?Site=10&katid=".$katid.">".$kat."</a></td>\n";
        $i++;
    }

    for($i=0; $antalKat % $kolonner && $i<$kolonner-($antalKat % $kolonner); $i++)
    {
        $tmp .= "<td>&nbsp;</td>\n";
    }
    $tmp .= "</tr>\n</table>";
    echo $tmp;
}
Avatar billede mc.lucifer Praktikant
15. august 2005 - 14:30 #26
Avatar billede mc.lucifer Praktikant
15. august 2005 - 14:36 #27
Altså uden at være en haj, så som jeg ser det er det som om at id bliver tilføjet fra arrayet dvs at Id er arrayet start og ikke det der står i Id i tabellen,

Så enten skal vi have databasen Id trukket ud eller skal vi have arrayets Id plusset med 1

MC
Avatar billede jakobdo Ekspert
15. august 2005 - 14:47 #28
Vi laver jo array'et her:
$katArray[$row['Katid']] = $row['Katname'];
Der bruger vi katid fra db.
Så den skulle jo være god nok.
Avatar billede mc.lucifer Praktikant
15. august 2005 - 14:53 #29
Ved ikke om vi snakker forbi hinanden.

Dette er min side

<?
//Opbyg af array
$database = mysql_connect("localhost", "user", "password");
mysql_select_db("database", $database);
$product = mysql_query("select * from kat");
while($row = mysql_fetch_assoc($product))
{
    $katArray[] = $row[Katname];
}
$kolonner = 3;
$antalKat = count($katArray);

if($antalKat > 0)
{
    echo "<table cellpadding=\"0\" cellspacing=\"0\"><tr>\n";
    echo "<tr>\n";
    $i = 0;

    foreach($katArray as $katid => $kat)
    {
        if(!($i%$kolonner) && $i>0 && $i < $antalKat)
        {
            $tmp .= "</tr>\n<tr>\n";
        }
        $tmp .= "<td><a href=".$Host."?Site=10&katid=".$katid.">".$kat."</a></td>\n";
        $i++;
    }

    for($i=0; $antalKat % $kolonner && $i<$kolonner-($antalKat % $kolonner); $i++)
    {
        $tmp .= "<td>&nbsp;</td>\n";
    }
    $tmp .= "</tr>\n</table>";
    echo $tmp;
}



?>

Måske har jeg glemt at rette noget

MC
Avatar billede mc.lucifer Praktikant
15. august 2005 - 15:05 #30
Finder du en løsning vil jeg være glad for at høre den ,men ellers bare glem det, jeg har tilføjjet $id++; i koden som gør at den springer 0 over

MC
Avatar billede jakobdo Ekspert
15. august 2005 - 15:19 #31
Ret lige:
$katArray[] = $row[Katname];
til:
$katArray[$row['Katid']] = $row['Katname'];
Linie 8.
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