Ajax Tooltip script hente inn data fra MySQL

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009

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 :)

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Databasestruktur

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Ja har endra slik at den

Ja har endra slik at den "boksen" som du sier at jeg må kjenne database strukturen min. Driver og "blir kjent med den"

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Flere tips til scriptet ditt

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'].

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Har fått til alt det og sånn.

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

 

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Lage databasequery

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
De tinga jeg vil ha ut i fra

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 - $on

Alt det ligger i samme tabbel i databasen

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Ute av kontekst

Det der er tatt helt ut av kontekst.

Har du skrevet en SQL query for å hente ut den informasjonen der? Hvor caller du variablene?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
hmm

nei det har jeg nokk ikke gjort. Hvordan skal jeg gjøre det? xD

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Hente ut informasjon fra MySQL

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:

  1. Hvilke data vil jeg ha tak i fra databasen?
  2. Hvor er data lagret i databasen (tabellnavn & felter)
  3. Hvordan skriver jeg en SQL query for å hente ut disse
  4. Hvordan bruker jeg PHP for å sende SQL query
  5. 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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Bare et litte spm før jeg går noe videre.

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.

 

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Litt mer om MySQL

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).

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
phpMyAdmin

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?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Må skrive SQL query selv

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"?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Feltene i tabellen

Her er feltene i user tabellen.

  1. Username
  2. level
  3. gender
  4. gang
  5. last_login
  6. 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?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
viewuser.php

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Tar med hele den øverste delen.
<?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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Bruke viewuser.php i tooltip

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?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
hmm

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?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Kopier viewuser.php til tooltipuser.php

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Oki :)

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.

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Berre hyggeleg

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. :)

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
http://www.twilightmafian.net

http://www.twilightmafian.net

 

Er ikke helt oppe enda da men kan jo vise det fra

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Spillet deres

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?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Heidi er

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 :)

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Ok, så du er den vesle slaven

Ok, så du er den vesle slaven til Heidi? Haha :)

Har du noe promokode til meg da?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
du trenger ikek og skrive noe

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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Er registrert

Det sier alle slaver, haha. Jeg er registrert nå, skal gå inn og se litt på det. Vi snakkes ved din neste korsvei :)

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
ja den har kommet alt xD

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?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
viewuser.php

Ser i scriptet inne på siden at du bruker "viewuser.php?u=[brukerid]". Er det meningen at du skal bruke viewuser.php?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
ja er meninga at man skal

ja er meninga at man skal komme inn på viewuser da du trykker på nicket vis det er det du mener?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Ja, og det er meningen. I sin

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
external.php

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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
wtf er external.php

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.

 AJAX tooltip link

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
jo

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.

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Det kan du ikke ha gjort, for

Det kan du ikke ha gjort, for title attributten inneholder ikke en query string som sender brukerid via 'u'.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
nå er det gjort

nå har jeg gjort som du sa. Men funker da ikke nå eller :S

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Det er ikke noe forandring

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>
Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
loool er ikke rart jeg lsta

loool er ikke rart jeg lasta opp feil fil :P men har lasta opp riktig nå men kommer forsat ikke opp.

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Nei, jeg ser det, men nå vet

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?

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
external.php source
<?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();
?>

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Nei, det var ikke noe galt

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";
        }   
    }
}
?>
Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Skal jeg legge det inn i

Skal jeg legge det inn i external.php eller den andre filen?

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
external.php

external.php

FJERN ALT ANNET, BRUK BARE DET JEG SKREV OVENFOR.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
nå kom jo hele siden opp

nå kom jo hele siden opp (viewuser.php) i den boksen da

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
NÅ HAR DU PLUTSELIG ENDRET

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

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
ahh nå har jeg missforstot

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 ;)

 
 

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
nå har jeg endra det til den

nå har jeg endra det til den external.php.

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Fra nå av heter filen vi skal

Fra nå av heter filen vi skal bruke external.php og den skal KUN inneholde det jeg pastet ovenfor. Inget mer, intent mindre.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
Nå er jeg helt sikker på at

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å.

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Det er fordi du ikke kan

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
templatesystem slår inn ja.

templatesystem slår inn ja. For i globals.php så åpnes også header.php og der er css kodene

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Kopier globals.php

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.

  1. Lag en kopi av globals.php, kall den globals-external.php
  2. Inkluder den nye kopien av globals-external.php i external.php.
    Dette gjør du på linje #3 i external.php
  3. 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";
?>
Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
da er det gjort jeg har

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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Det er ikke sikkert du har

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
er det sånn du mener

er det sånn du mener det?

 

SELECT * FROM `users` WHERE 1`username``user_level``gang``gender``duties`

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Nei, i ett av scriptene har

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
ja det har jeg da i den

ja det har jeg da i den config.php

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Følg anvisningene

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
da er det gjort og da kom det

da er det gjort og da kom det opp query was empty

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Ja, jeg hadde en typo i

Ja, jeg hadde en typo i external.php scriptet. kopier det igjen nå, har rettet den.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
beklager jeg så at jeg hadde

beklager jeg så at jeg hadde gjort feil selv :P

 
 

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
da er meste parten av det opp

da er meste parten av det opp :) men mangler enda gjeng og pålogget

 
 

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
men vil si tusen takk for all

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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Takk for hjelpen :)

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
vet offer ikke gjeng kommer

vet offer ikke gjeng kommer opp. det er på grunn av at det ligger i en anen tabbel :P

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Da må du forme query slik at

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.

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
ja skjønner hvordan jeg skal

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

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Bare hyggelig

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å :)

Vendetta
Vendettas bilde
Avlogget
Ble med: 25.12.2009
hehe du får fikse en

hehe du får fikse en donasjons knapp eller noe via sms så skal jeg donere litt vær gang du hjelper meg :)

 
 

Hjemmeside
Hjemmesides bilde
Avlogget
Bidragsyter
Ble med: 17.06.2008
Rik?

Er du så rik? Haha

Svar på forumemnet

(If you're a human, don't change the following field)
Your first name.
Innholdet i dette feltet blir holdt privat og vil ikke bli vist offentlig.