Avatar billede djthomas Nybegynder
20. april 2004 - 09:47 Der er 14 kommentarer og
1 løsning

søge efter flere id'er

Hej.

Jeg er ved at prøve mig frem med at lave en lille webshop. Men har et lille problem med en enkelt søgning.

Jeg har en database som ser således ud

CREATE TABLE `product_categories` (
  `id` smallint(5) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '',
  `fname` varchar(255) NOT NULL default '',
  `parent_id` smallint(5) unsigned NOT NULL default '0',
  `text` text NOT NULL,
  `image_id` smallint(6) NOT NULL default '0',
  PRIMARY KEY  (`id`)
)

Jeg skal ha fat i alle "id" hvor "parent_id" er noget bestemt.

Jeg kan se i min phpmyadmin at der er 6 rows hvor "parent_id" = 58.

Jeg bruger denne query:

mysql_query("SELECT
                                id
                            FROM
                                product_categories
                            WHERE
                                parent_id = 58");

Men jeg får kun returneret den første "id" ud af de 6 der er i databasen. Hvordan kan det være?
Avatar billede chries Nybegynder
20. april 2004 - 09:50 #1
offtopic:
er det sørste tal du kan lave med smallint(5) ikke 31 ?
Avatar billede djthomas Nybegynder
20. april 2004 - 09:51 #2
åbentbart ikke, der står 58 i db'en
Avatar billede arne_v Ekspert
20. april 2004 - 09:57 #3
Har du en løkke i PHP til at læse de 6 rækker ?
Avatar billede djthomas Nybegynder
20. april 2004 - 10:01 #4
Burde jeg ikke få alle 6 med i en den ene query? Jeg har lavet en var_dump af den og der står kun 1 row i. så er det vel ikke nødvendigt med en løkke til at læse den, er det? Jeg mener når der ikke er 6 rækker i udtrækket
Avatar billede arne_v Ekspert
20. april 2004 - 10:02 #5
En query men flere rækker !
Avatar billede djthomas Nybegynder
20. april 2004 - 10:02 #6
ja sådan her:

$sql = mysql_query("SELECT
                                id
                            FROM
                                product_categories
                            WHERE
                                parent_id = 58");
                               
            $rowCategories = mysql_fetch_array($sql);
            var_dump($rowCategories);
Avatar billede arne_v Ekspert
20. april 2004 - 10:03 #7
Et af de få PHP eksempler jeg har kodet:

<?php
$con = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("Test") or die(mysql_error());
$rs = mysql_query("SELECT * FROM T1") or die(mysql_error());
while ($row = mysql_fetch_array($rs, MYSQL_ASSOC)) {
    print $row["F1"] . " " . $row["F2"] . "\n";
}
mysql_free_result($rs);
mysql_close($con);
?>

Du ser at:
- først laver jeg query
- så looper jeg over rækkerne
Avatar billede djthomas Nybegynder
20. april 2004 - 10:03 #8
Skal jeg lave 6 query'er da?
Avatar billede arne_v Ekspert
20. april 2004 - 10:03 #9
Nej - du skal have en løkke efter query.
Avatar billede djthomas Nybegynder
20. april 2004 - 10:04 #10
Det forstår jeg ikke helt...
Avatar billede djthomas Nybegynder
20. april 2004 - 10:06 #11
Arrh jo nu er jeg med..

Men hvad betyder mysql_free_result?
Avatar billede arne_v Ekspert
20. april 2004 - 10:07 #12
Et eller andet som frigør de resourcer der er i $rs (query result set).

Jeg er ikke specielt skrap til PHP.
Avatar billede djthomas Nybegynder
20. april 2004 - 10:10 #13
Arne du har ret... problemet var at jeg ikke havde den løkke med nu virker det!!!
Avatar billede djthomas Nybegynder
20. april 2004 - 10:10 #14
Svare du lige så får du point...
Avatar billede arne_v Ekspert
20. april 2004 - 10:17 #15
svar
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
Computerworld tilbyder specialiserede kurser i database-management

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