heh115 Skrevet 15. april 2015 Del Skrevet 15. april 2015 Hei, Tar IT1 som privatist og har ingen til å hjelpe meg. Har søkt litt rundt, men finner ikke egnet svar... Har et lite nettsted der jeg kan logge inn for å legge inn nyheter til fremsiden. Det er 3 forskjellige brukere som kan logge seg på og poste nyheter til fremsiden. Har en tekstboks til tittel, et tekstområde til hovedteksten og en droppmeny for å velge bruker. Problemet er at i droppmenyen kommer navnene til brukerne som allerede har lagt ut en nyhet. Ikke brukerne som er lagt inn i egen table. Dette vil da føre til at listen blir ekstrem lang og rotete. Hovedtabellen er "news" og undertabellen er "users". Bruker mysql workbench og dreamweaver. Kanskje rotete forklart, men slenger med en del bilder... Lenke til kommentar
Zash Skrevet 15. april 2015 Del Skrevet 15. april 2015 (endret) Hvordan ser spørringen til dropdown-menyen ut? Det virker som om den henter fra news i stedet for users. Endret 15. april 2015 av Zash Lenke til kommentar
heh115 Skrevet 15. april 2015 Forfatter Del Skrevet 15. april 2015 Spørringen er autogenerert av dreamweaver. Slenger med flere bilder. mysql_select_db($database_mysqlconnection, $mysqlconnection); $query_news = "SELECT news.title, news.text, users.firstname, users.id FROM news, users WHERE news.userid=users.id"; news tabellen users tabellen Hvordan jeg går frem Lenke til kommentar
Zash Skrevet 15. april 2015 Del Skrevet 15. april 2015 Har ikke noe erfaring med programmene du bruker, men er det paa nest siste bildet du lager drop-down menyen? For da kan du prøve aa endre recordset fra news til user? Lenke til kommentar
tHz Skrevet 15. april 2015 Del Skrevet 15. april 2015 Spørringen er autogenerert av dreamweaver. Slenger med flere bilder. mysql_select_db($database_mysqlconnection, $mysqlconnection); $query_news = "SELECT news.title, news.text, users.firstname, users.id FROM news, users WHERE news.userid=users.id"; Hvorfor joiner du news og users? Skulle du ikke bare ha personene fra users? Join i where clause er noe man bør unngå da spørringen blir vanskelig å lese. Sørringen over burde være: SELECT news.title, news.text, users.firstname, users.id FROM news INNER JOIN users ON news.userid=users.id "; Men du trenger egentlig bare users for å liste ut brukere i den dropdown'en. Så SELECT id, firstname from users burde holde Lenke til kommentar
Zash Skrevet 15. april 2015 Del Skrevet 15. april 2015 Tror den spørringen er det som generer nest siste bildet i første posten... Lenke til kommentar
heh115 Skrevet 15. april 2015 Forfatter Del Skrevet 15. april 2015 Spørringen er autogenerert av dreamweaver. Slenger med flere bilder. mysql_select_db($database_mysqlconnection, $mysqlconnection); $query_news = "SELECT news.title, news.text, users.firstname, users.id FROM news, users WHERE news.userid=users.id"; Hvorfor joiner du news og users? Skulle du ikke bare ha personene fra users? Join i where clause er noe man bør unngå da spørringen blir vanskelig å lese. Sørringen over burde være: SELECT news.title, news.text, users.firstname, users.id FROM news INNER JOIN users ON news.userid=users.id "; Men du trenger egentlig bare users for å liste ut brukere i den dropdown'en. Så SELECT id, firstname from users burde holde Skal sette inn verdier i news-tabbelen. news-tabellen inneholder raden userid som er knyttet til users-tabellen og id-raden for å få tilgang til firstname raden. Ut fra dette må jeg vel "knytte" news.userid med users.id? Er ganske grønn når det kommer til databaser... Prøvde forresten SELECT news.title, news.text, users.firstname, users.id FROM news INNER JOIN users ON news.userid=users.id "; men funka ikke det heller. Lenke til kommentar
heh115 Skrevet 15. april 2015 Forfatter Del Skrevet 15. april 2015 (endret) Starter helt fresh igjen. Testen på en "upublisert" sde. Lager et Recordset kalt "news". Jeg skal kunne sette inn 3 verdier; news.title, news.text og news.userid. id-en til "innlegget" er AI og timestamp er current. Sjekker verdiene dette gir meg Så langt alt bra. Jeg vil at news.userid skal vises som users.firstname. Må da hente inn users.id og users.firstname. Sjekker verdiene dette gir meg Dreamweaver genererer følgende: <?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } mysql_select_db($database_mysqlconnection, $mysqlconnection); $query_news = "SELECT news.title, news.text, news.userid, users.id, users.firstname FROM news, users WHERE news.userid=users.id"; $news = mysql_query($query_news, $mysqlconnection) or die(mysql_error()); $row_news = mysql_fetch_assoc($news); $totalRows_news = mysql_num_rows($news); //sjekk av gylding tilgang// session_start(); require_once("user.cookies.php"); ?> Setter inn "Insertion Form" Får følgende opp Fjerner id og timestamp pga AI og CURRENT_TIMESTAMP. Endrer "Display As" for text til "Text area" (urelevant). Så. Endrer "Display As" for userid til "Menu". Får opp "Menu Properties..." og klikker på den. Velger "From database". Get labels from: firstname. Get values from: id (som er id-raden i users-tabellen. Trykker ok og får følgende "Form" Syncer siden med serveren og tester på nettstedet. Ble veldig langt dette, men forhåpentligvis oversiktlig.Tror problemet ligger i punkt 10.EDIT1: Punkt 10. Testet ut med userid fra news-tabellen, men samtlige brukere gange dems innlegg kommer opp i "menyen"...EDIT2: Det fungerer slik det er nå, så lenge alle brukerne allerede har et innlegg (1 mangler). Som dere sikkert skjønner er dette veldig lite praktisk etterhvert som det blir mange innlegg. Endret 15. april 2015 av heh115 Lenke til kommentar
quantum Skrevet 15. april 2015 Del Skrevet 15. april 2015 Men du trenger egentlig bare users for å liste ut brukere i den dropdown'en. Så SELECT id, firstname from users burde holde Bingo. 1 Lenke til kommentar
quantum Skrevet 15. april 2015 Del Skrevet 15. april 2015 (endret) Ut fra dette må jeg vel "knytte" news.userid med users.id? Er ganske grønn når det kommer til databaser... Prøvde forresten SELECT news.title, news.text, users.firstname, users.id FROM news INNER JOIN users ON news.userid=users.id "; men funka ikke det heller. Hva skal du med data fra news i dropdown'en med users? Selvfølgelig får du det samme problemet så lenge du joiner med news. Det du vil ha ligger i users ... der har du én forekomst av hver bruker. Det du har skrevet her er (sånn omtrent) akkurat det samme som før men i litt nyere syntax. Endret 15. april 2015 av quantum 1 Lenke til kommentar
tHz Skrevet 15. april 2015 Del Skrevet 15. april 2015 Dropdown skal kun inneholde users, Når du skal sette inn raden i news bruker du id til user som news.userid (da disse er nøkkel mellom tabellene). Hold news tabellen borte fra dropdown menyen.. 1 Lenke til kommentar
heh115 Skrevet 15. april 2015 Forfatter Del Skrevet 15. april 2015 (endret) Sååå, har tydeligvis misforstått noe grunnleggende her. Fungerte med SELECT id, firstname from users. Beklager min uvitenhet, men noen som har tolmodighet til å forklare meg dette? Hvordan kan jeg inserte informasjon til databasen uten å ha "koblinger" til tabellene? Hentes bare struktur gjennom recordset og alt av informasjon går gjennom databasetilkoblingen? Håper dere ser tankegangen min gjennom punktene over. og som sagt, jeg er grønn når det kommer til databaser. Veldig lite er selvsagt i mitt hode Endret 15. april 2015 av heh115 Lenke til kommentar
tHz Skrevet 15. april 2015 Del Skrevet 15. april 2015 Sååå, har tydeligvis misforstått noe grunnleggende her. Fungerte med SELECT id, firstname from users. Beklager min uvitenhet, men noen som har tolmodighet til å forklare meg dette? Hvordan kan jeg inserte informasjon til databasen uten å ha "koblinger" til tabellene? Hentes bare struktur gjennom recordset og alt av informasjon går gjennom databasetilkoblingen? Håper dere ser tankegangen min gjennom punktene over. Du har koblingene mellom tabellene. Det er id i user og userid i news. Disse er koblingen mellom de to tabellene. Når du har id fra users tabellen kan du inserte en news rad med å sette userid lik id. users inneholder bare brukerene med en unik id. news inneholder bare nyhetene med id til users (som er samme id som users tabellen bruker). Jeg vil sterkt anbefale deg å ta en kjapp tutorial på nett om relasjonsdatabaser. Det er svært tidkrevende å lage noe som helst databasedrevet med slikt klikk og pek verktøy. Man trenger grunnleggende forståelse av relasjonsdatabaser. Lenke til kommentar
quantum Skrevet 25. april 2015 Del Skrevet 25. april 2015 Jeg vil sterkt anbefale deg å ta en kjapp tutorial på nett om relasjonsdatabaser. Det er svært tidkrevende å lage noe som helst databasedrevet med slikt klikk og pek verktøy. Man trenger grunnleggende forståelse av relasjonsdatabaser. Drop Dreamweaver er mitt tips ... 1 Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå