Her får du hjelp til å lage hjemmeside med video. Alle verktøy og programmer vi bruker til å lage webside er gratis.
Ajax Tooltip script hente inn data fra MySQL
Hei. Jeg driver og tester ut sånn AJAX tooltip v1.2 til mafiaspillet Twilight Mafian.
Men jeg får ikke den til og laste ned data i fra data basen. For jeg hadde tenkt til og ha det sånn at når man tar musa over bruker navnet på en bruker kommer det opp en info boks om brukern. Info boksen skal inne holde brukernavn, Level og masse mere.
Skriptet til infoboksen
Nick: {$r['username']} [{$r['userid']}] $d<br />
Level: $userl<br />
Oppgave: {$r['duties']}<br />
Kjønn: {$r['gender']}<br />
Registrert: $sup<br />
Sist aktiv: $lon<br />
Siste aktivitet: $str<br />
Siste innlogging: $str2<br />
Pålogget: $on<br />Tar i mot all hjelp med åpene armer :)
Ja har endra slik at den "boksen" som du sier at jeg må kjenne database strukturen min. Driver og "blir kjent med den"
Begynn med det enkleste først, lag f.eks. scriptet "bruker.php" og skriv en vilkårlig setning i det.
Prøv så å bruke ajax tooltip scriptet for å hente inn informasjon fra bruker.php i tooltip. Da er jo første del ferdig, du har klart å få tooltip scriptet til å fungere.
<a href="#" title="ajax:bruker.php">[brukernavn]</a>Deretter blir du kjent med hvor de forskjellige opplysningene du ønsker i tooltipen ligger lagret i databasen, slik at du kan kjøre en query (spørring) for å hente ut data. (i filen bruker.php
.
Når du har klart å hente ut informasjonen du ønsker, så kan du sende brukerid via querystring til bruker.php
for å hente ut info.
... title="ajax:bruker.php?uid=[brukerid]" ...Denne blir så tilgjengelig i scriptet bruker.php
via $_GET['uid'].
Har fått til alt det og sånn. MEn får ikke laste datan ut i fra databasen og inn i den boksen. Det er det som er problemet for det står bare "nick: " Altså nicket og sån vises ikke vis du skjønner hva jeg mener da
Ja, jeg skjønner. Har du funnet ut hvor alle opplysningene ligger lagret i databasen og begynt å lage en query da?
Det er enklere om du spør igjen når du vet hvor informasjon er lagret i MySQL, altså hvilke tables data ligger i og hvilke felter du er interessert i.
Hvis programmereren ikke var opptatt av normalisering, så kan det jo hende man finner all informasjonen i en tabell.
De tinga jeg vil ha ut i fra db'n har jeg funnet hvor ligger i db'n. Det er de jeg skrev i starten av tråden. (Skriver de igjen)
Nick - {$r['username']} [{$r['userid']}] $d
Level - $userl
Oppgave - {$r['duties']}
Kjønn - {$r['gender']}
Registrert - $sup
Siste aktivitet - $str
Pålogget - $onAlt det ligger i samme tabbel i databasen
Det der er tatt helt ut av kontekst.
Har du skrevet en SQL query for å hente ut den informasjonen der? Hvor caller du variablene?
nei det har jeg nokk ikke gjort. Hvordan skal jeg gjøre det? xD
Det første du må vite er i hvilken database opplysningene er lagret, samt hvilke tables og felter du er ute etter. For å finne ut ting om og administrere databasen kan du bruke phpMyAdmin.
Deretter må du lære hvordan man kjører en SQL query med PHP. Deretter kan du printe ut opplysninger om brukeren i tooltip scriptet. Gå frem metodisk slik:
- Hvilke data vil jeg ha tak i fra databasen?
- Hvor er data lagret i databasen (tabellnavn & felter)
- Hvordan skriver jeg en SQL query for å hente ut disse
- Hvordan bruker jeg PHP for å sende SQL query
- Hvordan printer jeg ut de korrekte opplysningene
De to første og understrekede poengene er ting jeg ikke kan hjelpe deg med, da jeg ikke kjenner til databasestrukturen for mafiaspillet. Dette må du med andre ord finne ut selv.
Når du vet disse tingene, og har lest de to trådene jeg linker til i begynnelsen kan du begynne å spørre om hvordan du skal utforme scriptet videre, da det er ting jeg kan hjelpe deg med.
For at jeg skal kunne hjelpe deg best mulig er det viktig at du forteller meg hvilke data du skal ha, hvilke tabeller de er lagret i og hva feltene heter.
Tabel navner er users da. og i den tabbelen er det et felt da som heter username men hva er datan til den da? hvordan vet jeg hva som er datan til de forskjelige tingene.
Dataen i tabellen er forskjellig for hver bruker, men hvis du har phpMyAdmin el.l og kan kjøre SQL-spørringer, så kan du kjøre denne spørringen for å se hvilke data man har i tabellen:
SELECT * FROM users;
Dette vil vise deg alle data som er lagret i tabellen users
. Finn ut hvilke felter du er ute etter i denne tabellen, deretter skriver du ned navnet på feltene, slik at du kan referere til dem senere.
Er brukerid lagret i tabellen users
? I såfall er denne viktig, skriv ned navnet på feltet selvom du ikke trenger i tooltipen. (Vi skal prøve å bruke denne for å hente data fra MySQL senere).
Den er grei men jeg får noe besøk nå så kommer ikke til og sitte med det i nå på dagen men blir mere ut over kvelden.
På php myadmin så går det jo en "knapp" det står: Lag PHP kode Går det an og bruke den til det jeg trenger eller? Og vis det går skal jeg bare legge den i php scripte eller?
Nei, ikke i dette tilfellet, "Lag PHP kode" lager bare en statisk query, hvilket ikke er nok i ditt tilfelle, du må sende et argument, og dette argumentet må sikres ved hjelp av PHP først.
Har fått med meg at tabellen heter "users", men hvilke felter trenger du fra "users"?
Her er feltene i user tabellen.
- Username
- level
- gender
- gang
- last_login
- duties
Men alle de ligger jo inne på en script jeg har brukt tidligre da (viewuser.php) Kan jeg bruke det inne i ajaxs scripten eller går ikke det?
Det kommer ann på hvordan viewuser.php ser ut, og hvordan variabler passes til scriptet. Paste det her, så skal jeg se om jeg kan tyde hvorvidt det er mulig eller ikke.
<?php
include "globals.php";
$_GET['u'] = abs((int) $_GET['u']);
if(!$_GET['u'])
{
print "Ugyldig bruk";
}
else
{
$q=$db->query("SELECT u.*,us.*,c.*,h.*,g.*,f.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid LEFT JOIN cities c ON u.location=c.cityid LEFT JOIN houses h ON u.maxwill=h.hWILL LEFT JOIN gangs g ON g.gangID=u.gang LEFT JOIN fedjail f ON f.fed_userid=u.userid WHERE u.userid={$_GET['u']}");
if($db->num_rows($q) == 0)
{
print "Sorry, vi kan ikke finne den du leter etter, sjekk om du har rett ID.";
}
else
{
$r=$db->fetch_row($q);
if($r['user_level'] == 1) { $userl="Medlem"; } else if($r['user_level'] == 2) { $userl="Admin"; } else if ($r['user_level'] == 3) { $userl="Moderator"; } else if($r['user_level'] == 0) { $userl="NPC"; } else {$userl="Support"; }
$lon=($r['laston'] > 0) ?date('F j, Y g:i:s a',$r['laston']) : "Aldri";
$sup=date('F j, Y g:i:s a',$r['signedup']);
$ts=$r['strength']+$r['agility']+$r['guard']+$r['labour']+$r['IQ'];
$d="";
if($r['laston'] > 0)
{
$la=time()-$r['laston'];
$unit="seconds";
if($la >= 60)
{
$la=(int) ($la/60);
$unit="minutes";
}
if($la >= 60)
{
$la=(int) ($la/60);
$unit="hours";
if($la >= 24)
{
$la=(int) ($la/24);
$unit="days";
}
}
$str="$la $unit ago";
}
else
{
$str="--";
}
if($r['last_login'] > 0)
{
$ll=time()-$r['last_login'];
$unit2="seconds";
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="minutes";
}
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="hours";
if($ll >= 24)
{
$ll=(int) ($ll/24);
$unit2="days";
}
}
$str2="$ll $unit2 ago";
}
else
{
$str2="--";
}
if($r['donatordays']) { $r['username'] = "<font color=red>{$r['username']}</font>";$d="<img src='donator.gif' alt='Donator: {$r['donatordays']} Dager i gjen' title='Donator: {$r['donatordays']} Dager i gjen' />"; }
if($r['laston'] >= time()-15*60) { $on="<font color=green><b>Online</b></font>"; } else { $on="<font color=red><b>Offline</b></font>"; }
print "<h3> {$r['username']}`s Profil</h3>
<table width=100% cellspacing=1 class='table'><tr style='background:green'><th>Generell Info</th><th>Pengestatus</th> <th>Avatar</th></tr>
<tr><td>Nick:<a href='mailbox.php?action=compose&ID={$r['userid']}' title='Send Melding'> {$r['username']} [{$r['userid']}] $d</a><br />
Level: $userl<br />
Oppgave: {$r['duties']}<br />
Kjønn: {$r['gender']}<br />
Registrert: $sup<br />
Sist aktiv: $lon<br />
Siste aktivitet: $str<br />
Siste innlogging: $str2<br />
Pålogget: $on<br />";
}
}
?>Tok med hele den øverste delen så dus er hva som er hva
Tuklet du med scriptet før du pastet det? Det ser ut til at deler av det mangler.
Bruke viewuser.php i tooltip
Hvis scriptet ikke legger inn menyer og annet, så kan du bruke dette, ja. Målet ditt er å passe variabelen 'u' til scriptet, slik:
<a href="#" title="ajax:viewuser.php?u=[brukerid]">[brukernavn]</a>Dette må du gjøre fra de scriptene hvor tooltipen skal komme, skjønner? Du trenger med andre ord variabelen brukerid. Finner du denne i skriptene hvor tooltip skal poppe opp?
Så du mener jeg skal legge helle bruker scripte i den rammen?. Det er jo mye mere der men jeg kutta ut alt som er under pålogget for der er det ikke så mye som handler om det. Men hadde det ikke gått an og bare fått inn
<tr><td>Nick:<a href='mailbox.php?action=compose&ID={$r['userid']}' title='Send Melding'> {$r['username']} [{$r['userid']}] $d</a><br />
Level: $userl<br />
Oppgave: {$r['duties']}<br />
Kjønn: {$r['gender']}<br />
Registrert: $sup<br />
Sist aktiv: $lon<br />
Siste aktivitet: $str<br />
Siste innlogging: $str2<br />
Pålogget: $on<br />";og vis det går an hvordan?
Saken er da at det som skjer før ting begynner å printes er at data hentes ut fra databasen. Det er nødvendig å hente ut data før man kan printe dem.
Det du kan gjøre er jo å kopiere scriptet viewuser.php og kalle kopien for tooltipuser.php, deretter kan du modifsere tooltipuser.php slik at det kun printer ut det du ønsker i tooltipen når man tar musa over brukeren.
Takk for hjelpen så langt :) fårnok høre av meg vis det ikke er noe jeg får til. Men er veldig glad for at di driver denne siden og hjelper meg såppas mye som det du gjør.
Bare hyggelig det, Vendetta. :) Det er bare å spørre hvis du trenger hjelp med å endre scriptet for å passe, eller for å implementere det.
Får jeg se dette mafiaspillet ditt eller? Er jo litt gøy å se om du får til tingene. :)
http://www.twilightmafian.net
Er ikke helt oppe enda da men kan jo vise det fra 
Blir stilig dette, stilig logo.
Er du Heidi, eller er det deg og venninna di som skal mekke dette, og, går det ann å registrere seg nå eller?
Heidi er hu som egentlig eier spillet. Det er hu som har kjøpt det og står for server plass.
Åjada er bare og registrere seg :)
Ok, så du er den vesle slaven til Heidi? Haha :)
Har du noe promokode til meg da?
du trenger ikek og skrive noe der, det er ref greiene :P
Så du trenger ikek og skrive noe der.
Nei er ikke slaven henes :P Dette var noe jeg ville gjøre så det
Det sier alle slaver, haha. Jeg er registrert nå, skal gå inn og se litt på det. Vi snakkes ved din neste korsvei :)
ja den kors veien har kommet alt. For har fjernet alt det som ikke skal være med nå. men da stårajaksen bare og laster, Vet du hva det har med og gjøre?
Ser i scriptet inne på siden at du bruker "viewuser.php?u=[brukerid]". Er det meningen at du skal bruke viewuser.php?
ja er meninga at man skal komme inn på viewuser da du trykker på nicket vis det er det du mener?
Ja, ok, det er riktig hvis det er meningen. Men i sin form nå, fremstår denne linken slik:
<a href="viewuser.php?u=[userid]" title="ajax:external.php">[bruker]</a>Hva er external.php
i title attributten? Her vil du jo ha:
title="ajax:tooltipuser.php?u=[userid]"der tooltipuser.php
er scriptet du kopierte fra viewuser.php
og redigerte slik at det kun inneholdt de opplysningene du ønsket.
external.php er der infon i boksen står. så det er det som kommer opp i boksen. gad ikke og begyne og endre på det :P så la det like så greit i den fila som jeg hadde i fra før
Jeg har ikke peiling på hva external.php inneholder, jeg har bare sett viewuser.php. Det er ikke rart tooltip ikke fungerer, du har jo ikke gjort noe av det jeg har sagt tidligere?
AJAX tooltip på link
Som jeg har sagt: Du må hente ut informasjon fra databasen (slik viewuser.php gjør), sende brukeriden som variabel til scriptet som inneholder databasequery osv. via title-attributten på linken som skal invoke AJAX-scriptet og vise tooltipen.

Merk dog at bildet ovenfor ikke inneholder helt riktig kommando for title-attributten, da illustrasjonen kun er en modell for å vise hvordan ting fungerer. Title attributten skal se slik ut:
title="ajax:tooltipuser.php?u=uid"der uid
er brukeriden til den aktuelle brukeren.
Jo jeg har gjort alt det samme som du har sagt bare at jeg ikke har samma fil navnet som du sa. Men kan prøve og det du sa da.
Det kan du ikke ha gjort, for title attributten inneholder ikke en query string som sender brukerid via 'u'.
nå har jeg gjort som du sa. Men funker da ikke nå eller :S
Det er ikke noe forandring inne i spillet. Linken ser fortsatt slik ut:
<a href="viewuser.php?u=[userid]" title="ajax:external.php">[bruker]</a>loool er ikke rart jeg lasta opp feil fil :P men har lasta opp riktig nå men kommer forsat ikke opp.
Nei, jeg ser det, men nå vet vi i alle fall at linken er riktig. Så fra nå av er ikke den noe tema lenger. For å kvalitetssikre endringer heretter, sjekk kilden. Hehe.
Kan du paste hele innholdet av external.php?
<?php
;
$_GET['u'] = abs((int) $_GET['u']);
if(!$_GET['u'])
{
print "Ugyldig bruk";
}
else
{
$q=$db->query("SELECT u.*,us.*,c.*,h.*,g.*,f.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid LEFT JOIN cities c ON u.location=c.cityid LEFT JOIN houses h ON u.maxwill=h.hWILL LEFT JOIN gangs g ON g.gangID=u.gang LEFT JOIN fedjail f ON f.fed_userid=u.userid WHERE u.userid={$_GET['u']}");
if($db->num_rows($q) == 0)
{
print "Sorry, vi kan ikke finne den du leter etter, sjekk om du har rett ID.";
}
else
{
$r=$db->fetch_row($q);
if($r['user_level'] == 1) { $userl="Medlem"; } else if($r['user_level'] == 2) { $userl="Admin"; } else if ($r['user_level'] == 3) { $userl="Moderator"; } else if($r['user_level'] == 0) { $userl="NPC"; } else {$userl="Support"; }
$lon=($r['laston'] > 0) ?date('F j, Y g:i:s a',$r['laston']) : "Aldri";
$sup=date('F j, Y g:i:s a',$r['signedup']);
$ts=$r['strength']+$r['agility']+$r['guard']+$r['labour']+$r['IQ'];
$d="";
if($r['laston'] > 0)
{
$la=time()-$r['laston'];
$unit="seconds";
if($la >= 60)
{
$la=(int) ($la/60);
$unit="minutes";
}
if($la >= 60)
{
$la=(int) ($la/60);
$unit="hours";
if($la >= 24)
{
$la=(int) ($la/24);
$unit="days";
}
}
$str="$la $unit ago";
}
else
{
$str="--";
}
if($r['last_login'] > 0)
{
$ll=time()-$r['last_login'];
$unit2="seconds";
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="minutes";
}
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="hours";
if($ll >= 24)
{
$ll=(int) ($ll/24);
$unit2="days";
}
}
$str2="$ll $unit2 ago";
}
else
{
$str2="--";
}
Nick: {$r['username']} [{$r['userid']}] $d</a><br />
Level: $userl<br />
Oppgave: {$r['duties']}<br />
Kjønn: {$r['gender']}<br />
Registrert: $sup<br />
Sist aktiv: $lon<br />
Pålogget: $on<br />
";
print "
Gjeng: ";
if($r['gang'])
{
print "<a href='gangs.php?action=view&ID={$r['gang']}'>{$r['gangNAME']}</a>";
}
else
{
print "N/A";
}
$h->endpage();
?>Nei, det var ikke noe galt med pastingen din, det var heller at scriptet er utformet feil og har mangler.
Du har blant annet utelatt en viktig fil, nemlig
<?php
include "globals.php";
?>Som jeg tror kan inneholde diverse ressurser, blant annet tilkobling til databasen.
Prøv å putte dette i external.php
<?php
error_reporting(E_ALL);
include "globals.php";
$_GET['u'] = abs((int) $_GET['u']);
if(!$_GET['u'])
{
print "Ugyldig bruk";
}
else
{
$q=$db->query("SELECT u.*,us.*,c.*,h.*,g.*,f.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid LEFT JOIN cities c ON u.location=c.cityid LEFT JOIN houses h ON u.maxwill=h.hWILL LEFT JOIN gangs g ON g.gangID=u.gang LEFT JOIN fedjail f ON f.fed_userid=u.userid WHERE u.userid={$_GET['u']}");
if($db->num_rows($q) == 0)
{
print "Sorry, vi kan ikke finne den du leter etter, sjekk om du har rett ID.";
}
else
{
$r=$db->fetch_row($q);
if($r['user_level'] == 1) { $userl="Medlem"; } else if($r['user_level'] == 2) { $userl="Admin"; } else if ($r['user_level'] == 3) { $userl="Moderator"; } else if($r['user_level'] == 0) { $userl="NPC"; } else {$userl="Support"; }
$lon=($r['laston'] > 0) ?date('F j, Y g:i:s a',$r['laston']) : "Aldri";
$sup=date('F j, Y g:i:s a',$r['signedup']);
$ts=$r['strength']+$r['agility']+$r['guard']+$r['labour']+$r['IQ'];
$d="";
if($r['laston'] > 0)
{
$la=time()-$r['laston'];
$unit="seconds";
if($la >= 60)
{
$la=(int) ($la/60);
$unit="minutes";
}
if($la >= 60)
{
$la=(int) ($la/60);
$unit="hours";
if($la >= 24)
{
$la=(int) ($la/24);
$unit="days";
}
}
$str="$la $unit ago";
}
else
{
$str="--";
}
if($r['last_login'] > 0)
{
$ll=time()-$r['last_login'];
$unit2="seconds";
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="minutes";
}
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="hours";
if($ll >= 24)
{
$ll=(int) ($ll/24);
$unit2="days";
}
}
$str2="$ll $unit2 ago";
}
else
{
$str2="--";
}
print "Nick: {$r['username']} [{$r['userid']}] $d</a><br />";
print "Level: $userl<br />";
print "Oppgave: {$r['duties']}<br />";
print "Kjønn: {$r['gender']}<br />";
print "Registrert: $sup<br />";
print "Sist aktiv: $lon<br />";
print "Pålogget: $on<br />";
print "Gjeng: ";
if($r['gang'])
{
print "<a href='gangs.php?action=view&ID={$r['gang']}'>{$r['gangNAME']}</a>";
}
else
{
print "N/A";
}
}
}
?>Skal jeg legge det inn i external.php eller den andre filen?
external.php
FJERN ALT ANNET, BRUK BARE DET JEG SKREV OVENFOR.
nå kom jo hele siden opp (viewuser.php) i den boksen da
NÅ HAR DU PLUTSELIG ENDRET TIL TOOLTIPUSER....
Hva er inneholdet i tooltipuser.php? Jeg prøver å debugge jeg også, men når du skifter navn på alt mulig hele tiden, så blir det helt umulig for meg. Kan vi prøve å holde dette noe strømlineformet, slik at vi begge er i samme tenkebane?
Nå har jeg nemlig mine anelser om at innholdet i tooltipuser.php ikke er eksakt det jeg la inn ovenfor. Hvis jeg går direkte til tooltipuser.php kommer jeg nemlig en side som er identisk til viewuser.php
ahh nå har jeg missforstot deg :P for tidligre sa du at jeg sku bruke den tooltipuser :P men da er det jo ikke noe problem og endre det tilbake da ;)
nå har jeg endra det til den external.php.
Fra nå av heter filen vi skal bruke external.php og den skal KUN inneholde det jeg pastet ovenfor. Inget mer, intent mindre.
Nå er jeg helt sikker på at det er det du pasta i den filen og at det er den filen som skal vises da du tar musen over nicket. Men alikev så står den bare og laster nå også.
Det er fordi du ikke kan skrive. Jeg bad deg om å kvalitetssikre det du hadde gjort ved å sjekke kilden.
title='ajax:extrenal.php?u=[uid]'>Det er external.php, ikke extrenal.php
Vi kommer likevel til å møte på et nytt problem når dette er gjort, fordi det virker som om det er et templatesystem som kickes inn.
templatesystem slår inn ja. For i globals.php så åpnes også header.php og der er css kodene
Det er her vi kommer inn på hvordan mafiasystemet er bygget opp, hvilket jeg ikke kjenner til. Men vi har hittil fått til det viktigste, nemlig å sikre oss at tooltipen fungerer, og at vi henter ut de korrekte opplysningene fra databasen.
Det neste som blir å gjøre nå, er følgende.
- Lag en kopi av globals.php, kall den globals-external.php
- Inkluder den nye kopien av globals-external.php i external.php.
Dette gjør du på linje #3 i external.php - Gjør endringer i globals-external.php, slik at templatesystemet ikke kicker inn.
Jfr. pkt. 2, bytter du ut
<?php
include "globals.php";
?>med
<?php
include "globals-external.php";
?>da er det gjort jeg har dobbel sjekket at jeg har gjort alt det du har sakt for og være siker på at jeg har gjort det du har sakt. Men nå kommer boksen opp tom
Det er ikke sikkert du har gjort noe feil, greia her er at vi ikke kjenner oppbyggingen av spillet. Dette var også drunnen til at jeg ønsket at vi skulle bygge opp innholdet av tooltipen fra bunn. (Da jeg nevnte at vi skulle finne ut hvilke felter som inneholdt hva osv i databasen).
Fordi jeg er lei nå postulerer jeg følgende forslag: Vi bygger opp external.php til å bli et uavhengig script. Det første du må gjøre da er å finne frem brukernavn, passord, databasenavn og databasehost til databasen. Si ifra når du har gjort det.
er det sånn du mener det?
SELECT * FROM `users` WHERE 1`username``user_level``gang``gender``duties`
Nei, i ett av scriptene har dere skrevet inn databaseinformasjonen for MySQL. Dette inkluderer brukernavn, passord, databasenavn og host til databaseserveren.
Når du har disse opplysningene klare, så skal jeg fortelle deg hva du gjør videre.
ja det har jeg da i den config.php
Ok, følg disse anvisningene til punkt og prikke.
Opprett en ny fil som heter db-access.php
. I den fila paster du inn kodene nedenfor, men bytter ut verdiene med dine databasedetaljer.
<?php
// Host til MySQL
$db_host = 'localhost';
// Databasenavn i MySQL
$db_name = 'ditt_databasenavn';
// MySQL bruker
$db_user = 'ditt_brukernavn';
// MySQL passord
$db_pass = 'ditt_passord';
// Kobler til MySQL
$db_connection = mysql_connect($db_host, $db_user, $db_pass);
// Velger database i MySQL
mysql_select_db($db_name, $db_connection);
?>Deretter åpner du external.php
, fjerner alt innhold og paster inn dette:
<?php
require('db-access.php');
$_GET['u'] = abs((int) $_GET['u']);
if(!$_GET['u'])
{
print "Ugyldig bruk";
}
else
{
$q=sprintf('SELECT u.*,us.*,c.*,h.*,g.*,f.* FROM users u LEFT JOIN userstats us ON u.userid=us.userid LEFT JOIN cities c ON u.location=c.cityid LEFT JOIN houses h ON u.maxwill=h.hWILL LEFT JOIN gangs g ON g.gangID=u.gang LEFT JOIN fedjail f ON f.fed_userid=u.userid WHERE u.userid=\'%s\'',
mysql_real_escape_string($_GET['u']));
$q = mysql_query($q, $db_connection) or die(mysql_error());
if(mysql_num_rows($q) == 0)
{
print "Sorry, vi kan ikke finne den du leter etter, sjekk om du har rett ID.";
}
else
{
$r=mysql_fetch_assoc($q);
if($r['user_level'] == 1) { $userl="Medlem"; } else if($r['user_level'] == 2) { $userl="Admin"; } else if ($r['user_level'] == 3) { $userl="Moderator"; } else if($r['user_level'] == 0) { $userl="NPC"; } else {$userl="Support"; }
$lon=($r['laston'] > 0) ?date('F j, Y g:i:s a',$r['laston']) : "Aldri";
$sup=date('F j, Y g:i:s a',$r['signedup']);
$ts=$r['strength']+$r['agility']+$r['guard']+$r['labour']+$r['IQ'];
$d="";
if($r['laston'] > 0)
{
$la=time()-$r['laston'];
$unit="seconds";
if($la >= 60)
{
$la=(int) ($la/60);
$unit="minutes";
}
if($la >= 60)
{
$la=(int) ($la/60);
$unit="hours";
if($la >= 24)
{
$la=(int) ($la/24);
$unit="days";
}
}
$str="$la $unit ago";
}
else
{
$str="--";
}
if($r['last_login'] > 0)
{
$ll=time()-$r['last_login'];
$unit2="seconds";
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="minutes";
}
if($ll >= 60)
{
$ll=(int) ($ll/60);
$unit2="hours";
if($ll >= 24)
{
$ll=(int) ($ll/24);
$unit2="days";
}
}
$str2="$ll $unit2 ago";
}
else
{
$str2="--";
}
print 'Nick: ' . $r['username'] . '[' . $r['userid'] . ']' . $d . '</a><br />';
print 'Level: ' . $userl . '<br />';
print 'Oppgave: ' . $r['duties'] . '<br />';
print 'Kjønn: ' . $r['gender'] . '<br />';
print 'Registrert: ' . $sup . '<br />';
print 'Sist aktiv: ' . $lon . '<br />';
print 'Pålogget: ' . $on . '<br />';
print 'Gjeng: ';
if($r['gang'])
{
print '<a href="gangs.php?action=view&ID=' . $r['gang'] . '">' . $r['gangNAME'] . '</a>';
}
else
{
print 'N/A';
}
}
}
?>Last opp filene på webhotellet, og så ser vi om det fungerer.
da er det gjort og da kom det opp query was empty
Ja, jeg hadde en typo i external.php scriptet. kopier det igjen nå, har rettet den.
beklager jeg så at jeg hadde gjort feil selv :P
da er meste parten av det opp :) men mangler enda gjeng og pålogget
men vil si tusen takk for all den hjelpen du har gjit meg. Beunderer deg for at du har holdt it med meg så lenge :) men er veldig glad for at du har hjulpet meg så mye
Det er fordi variabelen $on som sier hvorvidt man er pålogget eller ikke ikke er en del av dette scriptet. Den defineres en annen plass i mafiaspillet, høyst sannsynlig i globals.php eller en av skriptene som importeres i globals.php. Selv ville jeg fjernet denne.
Gjeng er i databasen, men er høyst sannsynlig ikke satt for min bruker, og derfor fikk jeg N/A.
Vi har i alle fall løst problemet ditt, videre utforsking på denne arena får du nå stå for selv, da dette er ditt mafiaspill,og jeg ikke har tid til å sette meg inn i et helt nytt system, bare for å løse småproblemer.
vet offer ikke gjeng kommer opp. det er på grunn av at det ligger i en anen tabbel :P
Da må du forme query slik at også denne inkluderes i resultatene fra databasen. Nå har du jo queryen i external.php, samt. at du ser hvordan man printer ut innhold fra databasen. Ergo skulle alt du trenger å vite være tilgjengelig for deg, og du kan skreddersy og forme ut dette ved hjelp av egne eksperimenter.
Jeg har jo vært veldig grei med deg og laget et script som henter ut flere av detaljene og fått funksjonaliteten til å fungere nå. Da får opprydding o.l. bli på din kappe. :)
Hvis dette var mitt mafiaspill så hadde jeg formet om hele greia, slik at det som dukket opp i tooltipen var endel av systemet, dermed hadde jeg sluppet å bruke "db-access.php".
Men hvordan du gjør dette får altså bli opp til deg. Som jeg sa har jeg ikke tid (eller lyst) til å sette meg inn i kildekoden til et helt spill. Det er bedre at du lærer deg de mest grunnleggende delene av PHP, slik at du kan tolke hva som skjer hvor i scriptene. Det gjør jobben din 10x lettere, enn om du må tumle deg gjennom problem etter problem.
ja skjønner hvordan jeg skal gjøre det nå, Og som sakt tidliger er jeg kjempe glad for all hjelp jeg har fått av deg. Og ikke minst at du har orka og sitti her og hjulpet meg så lenge som det du har gjort, Jeg er ubeskrivelig lykkelig og glad for at du er så snill og lager script og alt sånn.
Oppryding skal jeg fikse :P men det er nok ikke det første jeg kommer til og gjøre. det kommer jeg heller til og fikkse når det begyner og nærme seg "ferdig"
Men må bare si tusen takk igjen og ha en super natt videre
Det er bare hyggelig å hjelpe. Så får jeg få opp noen donasjonsknapper her etterhvert, slik at du og Heidi kan sende 20-30% av inntektene fra mafiaspillet deres til meg for innkjøp av urge og grandis all den tiden jeg har hjulpet dere. Haha
Ha en god natt videre du også :)
hehe du får fikse en donasjons knapp eller noe via sms så skal jeg donere litt vær gang du hjelper meg :)
Er du så rik? Haha



For å få til det der må du kjenne databasestrukturen i mafiaspillet. De opplysningene du ønsker ligger høyst sannsynlig i databasen.
Du kan så opprette en egen php-fil hvor du kobler til databasen og henter ut og strukturerer informasjonen. Til slutt må du legge inn linken jfr. tooltip scriptet på brukernavnet til brukeren i kodene til mafiaspillet.
Du kan kanskje sende brukerid via querystring for å hente ut informasjon om brukeren man tar musa over, slik:
<a href="#" title="ajax:bruker.php?uid=[brukerid]">[brukernavn]</a>Der [brukerid] må hentes ut fra mafiaspillet (naturligvis uten brakettene).
Saken er her at du fikler med kode verken du eller jeg kjenner til. Mål nummer 1 er at man blir kjent med koden man jobber med, da den skal danne grunnlaget for videre utvikling.
Hjelper folk å lage hjemmeside