Surftown: Hvordan får jeg lov til at hive data ud af tabellerne? (PHP)
Hej folkens!
Jeg er igang med at lave en webside for en vens band. Siden er ved at være færdig, og jeg er nu ved at prøve at uploade den på deres domæne for at få den testet af. Her opstår problemet så.
Mens jeg har udviklet siden, har jeg arbejdet på min localhost via MAMP, eller på mit eget domæne, som ligger hos one.com. Der har ingen problemer været og det hele har kørt smooth.
Men det domæne som siden skal ligge på, er hostet af Surftown. Jeg har ingen erfaringer med dem i forvejen, og det ser ikke ud til at der er meget hjælp at hente hos dem.
TIL PROBLEMET:
Det er lykkedes mig at få oprettet en database, og det er også lykkedes mig at få importeret alle tabellerne som jeg har lavet. Så den del burde være på plads. Derudover er det også lykkedes mig at skabe forbindelse til databasen. Dette ved jeg, da jeg kører et tjek på om der er forbindelse, og hvis jeg ændrer f.eks passwordet, kommer min fejlbesked. Det der bare er (i mine øjne) enormt underligt er, at på trods af, at der er forbindelse til databasen, bliver ingen af de data, der skal hentes ud af tabellerne vist. Dvs. intet af det, der ligger i databasen kommer frem.
Jeg er på herrens mark fordi jeg stadig er relativt ny til at arbejde med database, php og mySql, og dermed aner jeg ikke hvordan jeg skal fejlsøge.
Her er min connect fil:
<?php //Opret forbindelse til databasen. $db_link = mysql_connect('host', 'user', 'pass', 'database');
//Check om forbindelsen blev etableret. Hvis ikke, s skriv fejl og stop programmet. if (!$db_link){ die('Ingen forbindelse til databasen!'); } ?>
Her er en typisk query, der altså ikke returnerer noget hos Surftown:
<?php $sqlvis = "SELECT news_date,news_body,id FROM hv_news ORDER BY news_date DESC";
Til sidst vil jeg lige nævne, at jeg startede ud med at benytte mysqli i mine forespørgsler, men da der kom lidt brok ud af det, har jeg slettet alle i'erne. Jeg skal helt ærligt sige at jeg ikke kender forskellen på de to. Det er bare mysqli som jeg har lært. Dermed ved jeg heller ikke om der er andet i den forbindelse som kan have noget at sige.
hvordan ved du, at alle dine data fra din lokale database, er uploadet i den nye, når du ikke kan hive dem frem? har surftown er phpmyadmin interface, hvor du kan se dette?
Jeg spotter at du har byttet rundt på query og link.
$db_resultat = mysql_query($db_link,$sqlvis);
skal være:
$db_resultat = mysql_query($sqlvis, $db_link);
Du behøver desuden heller ikke eksplicit at angive $db_link som parameter til mysql_query (selvom det er pænere, så helt fint!) - hvis der ikke er angivet noget $db_link antager mysql_query at den skal bruge det sidst åbnede link, hvilket naturligvis vil være $db_link :-)
Det burde løse problemet, men ellers er der et par andre plausible årsager:
Det er ikke så meget spørgsmål om at få lov, medmindre at du har lavet en ny database bruger. Hvis dine tabeller ligger under brugeren "a" men du opretter forbindelse til databasen som "b" vil du muligvis have problemer dér. Det kan løses ved at logge på som a og lave en "GRANT SELECT ON tabelnavn TO b". Hvis dette ikke er tilfældet, så ignorer ovenstående.
Ellers - kontrollér de tabeller du selecter ud fra. Én ting er at tabellerne er oprettet - er der oprettet/migreret data herind - hvis de er tomme. Hvis du har phpmyadmin hvilket det lyder til, så gå ind på de enkelte tabeller og "Vis" dem eller lav en "SELECT * FROM tabelnavn" i SQL vinduet og se om der kommer data frem - hvis ikke, så er de tomme og dataen skal derfor inporteres.
Forskellen på mysql og mysqli funktioner er at mysqli er en objektorienteret tilgangsvinkel, men man opnår det samme, så det er en vanesag :-)
Jeg har forsøgt at bytte rundt på $db_link og $sqlvis. Dette gjorde ingen forskel. Det jeg studser over, er at den rækkefølge som jeg havde fra starten af, virker fint på min egen webside hos one.com. I hvert fald løste det ikke problemet at bytte rundt.
Så har jeg tjekket lidt op mht. bruger og database. Jeg håber jeg har forstået det korrekt. Men den database som jeg har importeret tabellerne til hedder "hermes2_high_voltage", og til den database eksisterer der kun en enkelt bruger, "hermes2_hvad". Det er med den bruger jeg har oprettet forbindelse til den database. Så burde det være i orden ikke? Jeg har desuden været inde og ændre privilegier, så den bruger har tilladelse til alt hvad der er muligt... Stadig ingen effekt.
Til sidst har jeg tjekket tabellerne igen, og der er data i dem allesammen...
Jeg har bragt det videre til en med forstand på hos surftown og der bliver arbejdet på at få den del med i wikien. Men jeg vil forslå dig at skrive ind til vores support, så skal jeg nok få en til at kigge på dit konkrete problem. Skriv evt at du har snakket med Martin Nørgaard.
Bae husk at du skal beskrive problemt så meget så muligt, så ham der skal ordne det har alle de oplysninger han har brug for.
Jeg ville bare lige gøre opmærksom på at jeg har fået løst problemet nu. Det viste sig at jeg var kommet til at bytte rundt på $db_link og $sqlvis lidt flere steder end jeg havde været opmærksom på i første omgang. Og et enkelt sted havde jeg på en eller anden måde fået lavet en forkert mysql_fetch_assoc, hvor jeg var kommet til at give 2 parametre med i stedet for kun et enkelt.
Så i virkeligheden nogle lidt pinligt dumme fejl fra min side, som jeg dog ikke havde fanget uden bla. jeres hjælp. Man lærer hele tiden, og det er sgu fedt at der er god respons herinde. Så tusind tak!
Ved ikke lige hvor jeg skal aflevere pointene, og om jeg idet hele taget skal aflevere dem? Hvordan plejer det at fungere med det herinde? (er rimelig ny bruger)
Det er godt at høre at du har fundet fejlene. Det er den eneste måde man lærer på :)
Det, du skal gøre er at læse posten igennem igen og finde frem til den eller de som har hjulpet dig på ret kurs og lade dem dele points hvis der er flere der har hjulpet dig på rette vej eller blot tildele dem til én.
Jeg lægger gerne et svar og så må du selv vurdere om det har det dét som har hjulpet dig videre, evt. sammen med nogle af de andre :)
Synes godt om
Ny brugerNybegynder
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.