Avatar billede mc.lucifer Praktikant
11. august 2005 - 09:54 Der er 17 kommentarer og
1 løsning

Array og Mysql

Hvad gør jeg galt her

<?
//Opbyg af array
$database = mysql_connect("localhost", "username", "password");
mysql_select_db("database", $database);
$product = mysql_query("select * from kat");
$kat = mysql_fetch_assoc($product);
$katcount = mysql_num_rows($kat);
If ($katcount >= 1)
{
$row = 1;
do {
$katarray[] = $kat[Katname];
}
while ($row <= $katcount);
$row++
;}
echo "$katarray";
?>

Jeg får følgende fejl


Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in E:\mappe\hint\test.php on line 7

MC
Avatar billede jaw Nybegynder
11. august 2005 - 09:58 #1
$product = mysql_query("select * from kat");
$katcount = mysql_num_rows($product);
$kat = mysql_fetch_assoc($product);
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:18 #2
det giver mig nu

Fatal error: Maximum execution time of 30 seconds exceeded in E:\mappe\hint\test.php on line 14

Linie 14 er

while ($row <= $katcount);
Avatar billede jakobdo Ekspert
11. august 2005 - 10:32 #3
Prøv dette:

<?
//Opbyg af array
$database = mysql_connect("localhost", "username", "password");
mysql_select_db("database", $database);
$product = mysql_query("select Katname from kat");
$katArray = array();
while($row = mysql_fetch_assoc($product)
{
    $katArray[] = $row['Katname'];
}
?>
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:37 #4
Parse error: parse error in E:\mappe\hint\test.php on line 9
Avatar billede jakobdo Ekspert
11. august 2005 - 10:41 #5
Ret: while($row = mysql_fetch_assoc($product)
til: while($row = mysql_fetch_assoc($product))
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:42 #6
Måske er jeg helt forkert på den

så i får lige scenariet her

Jeg har en tabel med nogle kategorier, der indeholder

Id som er Unik og auto increment
Katname som indeholder et navn

Jeg har så en anden tabel der indeholder nogle forskellige feldter Eks.

Id som er unik og auto increment
Katid
Text

osv osv
Det skal så munde ud i at jeg for generert 4 tabeller hvor texten fra Kat skrives et sted og texten fra den anden tabel i tabellen neden under,

den skal præsentere indholdet af 2 tabeller, men jeg regner med at jeg skal bruge array da jeg jo har tabellen Kat som med feldtet Id skal hente alle poster i en anden tabel med samme katid som Kat´s Id

gav det mening ?

MC
Avatar billede jakobdo Ekspert
11. august 2005 - 10:43 #7
Du kan lave en inner join!
Kig mere her: http://www.w3schools.com/sql/sql_join.asp
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:50 #8
Hmmmmm tror jeg vist lige jeg skal kigge lidt på istedet for. det ser brugbart ud.

Ligge en sidebemærkning. Hvorfor lister ovenstående ikke alle Katname når jeg for neden har en echo "$katArray[Katname]";

MC
Avatar billede jakobdo Ekspert
11. august 2005 - 10:52 #9
Prøv echo implode(" ",$katArray);
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:53 #10
Perfekt

Svare I / Du

MC
Avatar billede jaw Nybegynder
11. august 2005 - 10:55 #11
Det er vist ikke rimeligt at skrive I, så jeg hopper over :) Ellers tak...
Avatar billede mc.lucifer Praktikant
11. august 2005 - 10:56 #12
Ok, Jaw, Men du skal alligevel have et 1000000 gange tak for din indsats
Forsat go dag

MC
Avatar billede jaw Nybegynder
11. august 2005 - 10:58 #13
Selv tak, og i lige måde :)
Avatar billede jakobdo Ekspert
11. august 2005 - 11:07 #14
Jeg vil gerne smide et svar.
Avatar billede jakobdo Ekspert
11. august 2005 - 11:13 #15
Takker for point!
Skriv hvis du har spørgsmål til sql'en.
Avatar billede mc.lucifer Praktikant
11. august 2005 - 11:15 #16
He he det har jeg sku lige et lille et

<table cellspacing=\"2\" cellpadding=\"2\" border=\"0\">
<tr>
    <td Class=\"Katshowtop\">$katArray[1]</td>
    <td Class=\"Katshowtop\">$katArray[2]</td>
      <td Class=\"Katshowtop\">$katArray[3]</td>
        <td Class=\"Katshowtop\">$katArray[4]</td>
</tr>
<tr>
    <td Class=\"Katshowmain\">Maintabel</td>
    <td Class=\"Katshowmain\">Maintabel</td>
      <td Class=\"Katshowmain\">Maintabel</td>
          <td Class=\"Katshowmain\">Maintabel</td>
</tr>
<tr>
    <td Class=\"Katshowbund\">Bund</td>
    <td Class=\"Katshowbund\">Bund</td>
    <td Class=\"Katshowbund\">Bund</td>
    <td Class=\"Katshowbund\">Bund</td>
</tr>
</table>

Skal jeg plusse katarray med 3 eller hvordan for jeg den til at liste det. Håbe du kan se hvad jeg mener

MC
Avatar billede jakobdo Ekspert
11. august 2005 - 11:52 #17
Er der kun 4 data i dit katarray ?
For du kan løbe et array igennem med:
foreach($katarray as $kat)
{
echo "<td Class=\"Katshowtop\">" . kat . "</td>\n";
}
Avatar billede mc.lucifer Praktikant
11. august 2005 - 12:10 #18
Jo men jeg vil Max have 4 tabeller, hvorefter den 4 så skal der indsættes en <br> eller noget, derfor har jeg valgt de 4 tabeller

MC
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