Avatar billede asger Nybegynder
10. oktober 2002 - 16:01 Der er 6 kommentarer og
1 løsning

mysql query

Davs

Jeg har 3 tabeller
1)
*********************
* c_id * c_name    *
*********************
*    1 * Testnavn  *
*********************
*    2 * Testnavn2  *
*********************

2)
****************************************************
* c_data_id * c_id * c_data_value * c_data_type_id *
****************************************************
*        1 *    1 * 12345678    * 1              *
****************************************************
*        2 *    1 * abcdef      * 2              *
****************************************************
*        3 *    2 * 87654321    * 1              *
****************************************************

3)
**************************************
* c_data_type_id * c_data_type_descr *
**************************************
*              1 * telefon          *
**************************************
*              2 * andet            *
**************************************

I tabel 1 gemmes kontaktpersoner og i tabel 2 kan der tilføjes kontaktfelter efter behov som har en type der er angivet i tabel 3

Jeg skal med en query trække indhold ud for alle personer.

Eks

***********************************
* Navn        * Telefon  * Andet  *
***********************************
* Testperson  * 12345678 * abcdef *
***********************************
* Testperson2 * 87654321 *        *
***********************************

Hvordan gør man det?
Avatar billede asger Nybegynder
10. oktober 2002 - 16:02 #1
ja okay... tabellerne er ikke helt flot tegnet.
Avatar billede limemedia Nybegynder
10. oktober 2002 - 16:10 #2
Tabellerne er navngivet efter din talgruppe - 1) = table1, 2) = table2, 3) = table3

SELECT t1.c_name AS Navn, t2.c_data_value AS Telefon, t3.c_data_type_descr AS Andet
FROM table1 AS t1, table2 AS t2, table3 AS t3
WHERE t1.c_id=t2_c_id && t1.c_id=c3.c_data_type_id

/ Lars
www.ljweb.com
Avatar billede limemedia Nybegynder
10. oktober 2002 - 16:12 #3
eller i php

<?php
    $sql = mysql_query('
        SELECT t1.c_name AS Navn, t2.c_data_value AS Telefon, t3.c_data_type_descr AS Andet
        FROM table1 AS t1, table2 AS t2, table3 AS t3
        WHERE t1.c_id=t2_c_id && t1.c_id=c3.c_data_type_id
    ') or die(mysql_error());
   
    if (mysql_num_rows($sql)) {
        while ($foo = mysql_fetch_assoc($sql)) {
            echo $foo["Navn"]." - ".$foo["Telefon"]." - ".$foo["Andet"]."<br>\n";
        }
    }
?>
Avatar billede asger Nybegynder
11. oktober 2002 - 09:48 #4
Det virker ikke korrekt... resultat bliver:

**************************************
* Navn        * Telefon  * Andet    *
**************************************
* Testperson  * 12345678 * Telefon  *
**************************************
* Testperson  * abcdef  * Assistent *
**************************************
* Testperson2 * 87654321 * Assistent *
**************************************

Hvor det skulle være

***********************************
* Navn        * Telefon  * Andet  *
***********************************
* Testperson  * 12345678 * abcdef *
***********************************
* Testperson2 * 87654321 *        *
***********************************
Avatar billede asger Nybegynder
11. oktober 2002 - 09:49 #5
jeg ved forresten ikke hvor Asisstent kommer fra... det er ikke noget der står i min db.
Avatar billede limemedia Nybegynder
11. oktober 2002 - 10:21 #6
"assistent" bliver nødt til at stå i din database. Anvend fx. phpMyAdmin til at verificere det præcise indhold (det er umuligt ordet assistent optræder i dit resultat medmindre det står i databasen)
Avatar billede asger Nybegynder
18. oktober 2002 - 12:58 #7
jeg har selv fundet ud af en anden løsning.
Ljweb - dit forslag giver ikke det ønskede resultat
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