Avatar billede znopie Nybegynder
02. maj 2008 - 11:24 Der er 13 kommentarer og
1 løsning

Ang. Tabel udtræt

$GET = mysql_query("SELECT * FROM materials AS mat, material_log AS mat_log") OR DIE( mysql_error() );
if (mysql_num_rows($GET) == NULL) {
    echo "Intet fundet!";
} else {
    while($SHOW = mysql_fetch_array($GET)) {
        echo $SHOW['m_id'];
        echo "<br />";
        echo $SHOW['id'];
    }
}

Kan man ikke lave et eller andet smart, så jeg kan hente f.eks $SHOW['mat.m_id'] og ikke bare $SHOW['mat.m_id'], for den kan jo have samme navn i en anden tabel.

Altså. Kan man hente informationer ud fra en enkelt database via dette script ved at skrive $SHOW['mat.m_id'] (mat er en tabel jeg har defineret i min mysql_query();
Avatar billede jakobdo Ekspert
02. maj 2008 - 11:49 #1
Den må du gerne lige forklare lidt bedre! :o)
Snakker vi trække info ud fra 2 tabeller samtidig eller ?
Avatar billede znopie Nybegynder
02. maj 2008 - 11:51 #2
Ja det gør vi, altså udtræk fra 2 tabeller på én gang.

Jamen kan man lave et udtræk fra en enkelt database ved at benytte f.eks. $SHOW['mat.m_id'] hvor den så henter data fra materials.

Vil nemlig ikke have der går hen og bliver problemer med at den kan lægge nogle værdier sammen, så vil gerne adskille dem ved den betode, men det ser ikke ud til den virker :(
Avatar billede michael_stim Ekspert
02. maj 2008 - 11:54 #3
Noget a lá dette?
SELECT m.id, ml.id FROM materials m, material_log ml
Avatar billede dkfire Nybegynder
02. maj 2008 - 11:55 #4
Hvad er sammenhængen mellem de to tabeller ???
Avatar billede jakobdo Ekspert
02. maj 2008 - 11:55 #5
Prøv at kig på sql funktionen JOIN.
Mere info her: http://w3schools.com/sql/sql_join.asp
Og spørg hvis ikke det giver mening.
Avatar billede michael_stim Ekspert
02. maj 2008 - 11:55 #6
Der er ingen grund til at kalde på alt (*), hvis du f ex bare har brug for noget af det.
Avatar billede znopie Nybegynder
02. maj 2008 - 12:00 #7
jamen den ene tabel materials indeholder materialer, og material_log indeholder hændelser for materialet, og skal sammenkæde det på en side, så man kan se hvilke materiale info osv. og så skal hændelserne være vist.
Avatar billede dkfire Nybegynder
02. maj 2008 - 12:02 #8
Så må der også være et felt i hver tabel som giver en sammehæng mellem de to tabeller.
Avatar billede michael_stim Ekspert
02. maj 2008 - 12:02 #9
Men der må næste være et WHERE med: WHERE materials.id=material_log.id
eller lignende.
Avatar billede znopie Nybegynder
02. maj 2008 - 12:07 #10
jamen den har jeg, har bare ikke lige langt den op side her.

Men her er den:

$GET = mysql_query("SELECT * FROM materials AS mat, material_log AS mat_log WHERE m_id=material_id") OR DIE( mysql_error() );

Men der får jeg kun en udskrift hvis der er en værdi i begge tabeller. (rimlig træls)

Kan man ikke bruge union der?
Avatar billede dkfire Nybegynder
02. maj 2008 - 12:10 #11
Du skal nok nærmere bruge en join som jakobdo har foreslået.
Avatar billede znopie Nybegynder
02. maj 2008 - 12:19 #12
Er sgu bare ikke så glad for det der join. Det virker så rodet.

Men ja, må jo prøve at lære det før eller senere.

Læg svar jacob :)
Avatar billede jakobdo Ekspert
02. maj 2008 - 15:18 #13
Svar!
Avatar billede jakobdo Ekspert
02. maj 2008 - 17:23 #14
Takker for point.
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