Avatar billede djicep Nybegynder
28. november 2006 - 23:34 Der er 44 kommentarer og
2 løsninger

Lige et lille spørgsmål ?

<? include("head.php"); ?>
<?
if($_GET[id])
{
mysql_query("UPDATE brugere SET layout='.$_GET[id].' WHERE userId='.$_SESSION[userId].'")or die(mysql_error());
}
else if($_GET[reset])
{
mysql_query("UPDATE brugere SET layout=0 WHERE userId='.$_SESSION[userId].'")or die(mysql_error());
}
?>
<br />
<h3>Ændre Layout på blabla.dk:</h3>
<br /><center>
<table width="500" id="layout">
    <tr>
        <td class=layout><a href="changelayout.php?reset"><img src="pix/layouts/standard.gif"></td>
        <td class=layout><a href="changelayout.php?id=1"><img src="pix/layouts/standard.gif"></td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
    </tr>
</table>
</center>
<? include("foot.php"); ?>

Nogle der kan fortælle mig hvorfor den ikke updater i db ? :S
Avatar billede djicep Nybegynder
28. november 2006 - 23:35 #1
Den burde vel at ændre id i db til 1 hvis man changelayout.php?id=1 men den gør ingenting ved mysql
Avatar billede djicep Nybegynder
28. november 2006 - 23:39 #2
<a href="changelayout.php?id=1"><img src="pix/layouts/standard.gif"> altså hvis linket ser sådan her ud.
Avatar billede labisama Nybegynder
29. november 2006 - 01:19 #3
Husk først at afslutte dine links med </a>. Altså: <a href="changelayout.php?id=1"><img src="pix/layouts/standard.gif"></a>

Er du sikker på at SESSION[userID] indeholder noget?

Kan du evt. tjekke ved: echo $_SESSION['userID'];
Avatar billede djicep Nybegynder
29. november 2006 - 02:04 #4
Ja $_SESSION[userId]; inholder det userid som jeg har når jeg er logget ind :)
Så den virker som den skal ? Og linksne er rettet :)
Avatar billede djicep Nybegynder
29. november 2006 - 02:04 #5
Har tjekket session med echo så det virker
Avatar billede djicep Nybegynder
29. november 2006 - 02:11 #6
Damn jeg er stavespasser når jeg er træt :P
Avatar billede mcardle Nybegynder
29. november 2006 - 04:17 #7
Det er fra en form ikke også? Har du husket at skrive method="get" og ikke method="post" i din form?

//mcardle
Avatar billede mcardle Nybegynder
29. november 2006 - 04:24 #8
Prøv det her og husk at oprette forbindelse til din mysql-database:


<?
include("head.php");

if($_GET["id"])
{
$id = mysql_escape_string($_GET["id"]);
$userId = $_SESSION["userId"];
mysql_query("UPDATE brugere SET layout='$id' WHERE userId='$userId'")or die(mysql_error());
}
else if($_GET["reset"])
{
mysql_query("UPDATE brugere SET layout=0 WHERE userId='$userId'")or die(mysql_error());
}
?>
<br />
<h3>Ændre Layout på blabla.dk:</h3>
<br /><center>
<table width="500" id="layout">
    <tr>
        <td class=layout><a href="changelayout.php?reset"><img src="pix/layouts/standard.gif"></td>
        <td class=layout><a href="changelayout.php?id=1"><img src="pix/layouts/standard.gif"></td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
    </tr>
</table>
</center>
<? include("foot.php"); ?>

//mcarlde
Avatar billede mcardle Nybegynder
29. november 2006 - 04:26 #9
Det kan forøvrigt godt være det er nødtil at stå før din if:


<?
include("head.php");

$id = mysql_escape_string($_GET["id"]);
$userId = $_SESSION["userId"];

if($_GET["id"])
{
mysql_query("UPDATE brugere SET layout='$id' WHERE userId='$userId'")or die(mysql_error());
}
else if($_GET["reset"])
{
mysql_query("UPDATE brugere SET layout=0 WHERE userId='$userId'")or die(mysql_error());
}
?>
<br />
<h3>Ændre Layout på blabla.dk:</h3>
<br /><center>
<table width="500" id="layout">
    <tr>
        <td class=layout><a href="changelayout.php?reset"><img src="pix/layouts/standard.gif"></td>
        <td class=layout><a href="changelayout.php?id=1"><img src="pix/layouts/standard.gif"></td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
        <td class=layout>huhu</td>
    </tr>
</table>
</center>
<? include("foot.php"); ?>

Så skulle den være der.
Avatar billede djicep Nybegynder
29. november 2006 - 09:56 #10
I head.php bliver der oprettet forbindelse til mysql :)
Avatar billede djicep Nybegynder
29. november 2006 - 09:58 #11
Sådan der mcardle ? :)

Så virkede det sQ.
Men kan du fortælle mig hvorfor der lige skulle det der på ? :S
Avatar billede djicep Nybegynder
29. november 2006 - 10:00 #12
Oki reset virker ikke :S
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:03 #13
det kunne muligvis også have virket hvis du havde brugt " i stedet for ' i din update-query:
eks:
mysql_query("UPDATE brugere SET layout=".$_GET[id]." WHERE userId=".$_SESSION[userId]."")or die(mysql_error());

Det skulle forresten være lige meget om $id = mysql_escape_string($_GET["id"]); $userId = $_SESSION["userId"]; står indenfor eller udenfor if'en
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:04 #14
prøv at trække det sammen så der står elseif($_GET["reset"]) i stedet for else if($_GET["reset"])
Avatar billede djicep Nybegynder
29. november 2006 - 10:06 #15
Er prøvet. Gav intet resultat :(
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:08 #16
lav dit link om så der står reset=1
Avatar billede djicep Nybegynder
29. november 2006 - 10:11 #17
burde det være nødvendig hvis jeg kalder reset i toppen hvor der står i mysql_query(UPDATE brugere SET layout=0 ? :S

Ikke for at modsætte mig men bare for at hører ?
Avatar billede djicep Nybegynder
29. november 2006 - 10:11 #18
Så er det prøvet og det virker heller ikke
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:14 #19
du kan også sætte den til 0, jeg mener bare at for at if($_GET["reset"]) skal blive true skal der stå noget i $_GET["reset"] og det gør der ikke nu
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:14 #20
du kunne også prøve at lave det samme som mcardle har gjort med id
Avatar billede djicep Nybegynder
29. november 2006 - 10:16 #21
Som hvad foreksempel ? :S
Avatar billede djicep Nybegynder
29. november 2006 - 10:16 #22
Altså jeg kunne jo bare ændre linket til id=0 men kunne bare godt tænke mig at få reset til at virke :)
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:20 #23
det jeg mente var at du prøve det her:
$reset = mysql_escape_string($_GET["reset"]);

men kan du ikke prøve det her:
echo $_GET["reset"];

evt. sætte den ind lige før den update-query'en
Avatar billede djicep Nybegynder
29. november 2006 - 10:21 #24
det vil faktisk sige at ikke engang med ID kan jeg få den til at ændre sig til 0 som er standard :(
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:23 #25
jojo det med at bruge id=0 kan sagtens lade sig gøre
Avatar billede djicep Nybegynder
29. november 2006 - 10:26 #26
Nu har jeg sat en echo ind foran mysql_query og når jeg trykker på den sender den ikke echoet :S
Avatar billede djicep Nybegynder
29. november 2006 - 10:27 #27
hmm okay den ændre ihvertfald bare ingenting hvis jeg laver linket så den hedder ?id=0 til sidst. i db bliver bare ved med at ha 1 som layout id
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:27 #28
hvilken mysql_query har du sat den foran?
Avatar billede djicep Nybegynder
29. november 2006 - 10:29 #29
den med reset ?
Avatar billede djicep Nybegynder
29. november 2006 - 10:31 #30
Det mærkelige er at hvis jeg ændre id=2 så der står 2 i min layout i db og så ændre linket til 1 igen så går den ned på 1. men ændre jeg linket til id=0 sker der ikke en skid ? Har det nået at gøre med at 0 er en speciel værdi eller ? :S
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 10:42 #31
hmm det kan være at den validere til false hvis der står 0...
Avatar billede djicep Nybegynder
29. november 2006 - 10:44 #32
Det gør den jo nok ? men kan man ikke gøre nået ved det ?
Avatar billede djicep Nybegynder
29. november 2006 - 10:58 #33
Burde den egentligtalt ikke komme ud med en mysql fejl om at det id man prøver at sætte den til er en fejl ? :S
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 11:02 #34
det tror jeg ikke. problemet er at den ikke kan blive true i if'en hvis den er sat til 0
prøv at lave det om til if(isset($_GET["reset"]) && $_GET["reset"] != '') {
Avatar billede djicep Nybegynder
29. november 2006 - 11:04 #35
Ja og så imellem de 2 "" skal der vel stå 0 eller ?
Avatar billede djicep Nybegynder
29. november 2006 - 11:06 #36
SÅDAN DER :P

Oki men kan du forklare mig hvorfor der i else if skulle bruges det som du lige har givet mig og hvorfor der i det som mcardle har brugt skulle sættes det på ? Før det virkede ? :S
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 11:23 #37
øhh jeg kan forsøge.. men jeg er elendig til at forklare ting, så er du advaret ;o)

if($_GET["reset"]) { kommer jo til at være if() { eller if(0) { og så bliver den jo false og derfor udføres koden mellem { } aldrig.

rettelsen som mcardle laver er egentlig ikke nødvendig som jeg skrev 29/11-2006 10:03:04, men den er ret god da den beskytter mod SQL-injection

Desuden kunne det måske også være at du skal ændre if($_GET["id"]) til if($id != '')
Avatar billede djicep Nybegynder
29. november 2006 - 11:30 #38
hmm okay ? :S Men hva så hvis den id som de prøver at finde ikke findes. Kan man så lave så de får en besked hvor der står den ikke findes ?? altså ud fra det jeg har lavet nu ? f.eks en else ? Er nemlig ikke så go til PHP endnu
Avatar billede sw_red_6 Nybegynder
29. november 2006 - 11:33 #39
jeg kan godt prøve at lave noget til dig, men jeg er nødt til at vide mere om hvordan du har lavet det med layout.
Har du en tabel med layout-id'er eller hvordan vælger du de forskellige layouts ud fra det tal der står i tabellen brugere?
Avatar billede djicep Nybegynder
29. november 2006 - 11:33 #40
Nå jeg er desværre nødt til at smutte. Skal til Doktormand skrives senere og tak for hjælpen indtil videre mcardle og sw red 6
Avatar billede djicep Nybegynder
29. november 2006 - 14:05 #41
Så er jeg her igen sw. Jeg vil gerne selv lave det :P Skal jo lærer det, men skal bare vide hvordan :P
Avatar billede djicep Nybegynder
29. november 2006 - 18:22 #42
Men nu har jeg siddet og strikket nået sammen, men det giver sQ ikke rigtig resultat :S
Avatar billede djicep Nybegynder
29. november 2006 - 22:48 #43
hmm en af jer der vil ha nogle point :) Har fikset det med fejl også :)
Avatar billede mcardle Nybegynder
30. november 2006 - 01:53 #44
Points er altid gode ;-)
Avatar billede sw_red_6 Nybegynder
30. november 2006 - 08:46 #45
du kan da også få et svar fra mig
Avatar billede djicep Nybegynder
30. november 2006 - 10:26 #46
Tak til jer begge :)
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