/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
figur efter køn.
Fra : morten


Dato : 20-03-06 22:22

Hejsa, jeg har et community, når man opretter en bruger skal man
vælge et køn (og self brugernavn email og alt det der), når
brugeren er oprettet får man en firgur (som er en mand), jeg vil
godt have lavet at hvis man vælger kvinde som køn, så får man
også en kvinde som sin figur (og ikke en mand) og når man vælger
mand som køn, så får man en mand som figur (som nu). Den kode der
gør at man får en mand som bruger er:

mysql_query("INSERT INTO community (brugernavn, kodeord, email,
kon, status, toj, ip, dato) values ('$brugernavn', '$kodeord',
'$email', '$kon', '$status', '0.bmp', '$ip', '$dato')")or
die(mysql_error());

koden "0.bmp" er manden som man får, da jeg selv skulle prøve at
finde ud af det gjorde jeg sådan her som koden til billedet:
"$kon.bmp", (gjorde self så de passede med navnet), da man
oprettet bruger som den her bedsked:

You have an error in your SQL syntax; check the manual that
corresponds to your MySQL server version for the right syntax to
use near 's community Vi håber du vil nyde opholdet her og få det
sjovt her på TheVirtu' at line 1

__________

da man så gik ind i communityet, havde man dog den bruger efter
sit køn som man skulle have, men fejl bedskeden skal jo ikke være
der.

Jeg er sikker på at i har en bedere ide end den som at jeg
brugte.

Mvh.
morten nielsen

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Geert Lund (20-03-2006)
Kommentar
Fra : Geert Lund


Dato : 20-03-06 22:34

morten wrote:

> Jeg er sikker på at i har en bedere ide end den som at jeg
> brugte.

Du kan jo starte med at finde ud af hvad der reelt giver dig fejlen - du
har jo cuttet koden væk fra det oprindelige - plus pastet en MySQL
fejlkode der ikke rigtig ser ud til at have noget med dit aktuelle
spørgsmål / den fejl.

Prøv i stedet at vænne dig til at gøre følgende når du skal lave SQL kald:

$sql = "INSERT INTO community (brugernavn, kodeord, email,
kon, status, toj, ip, dato) values ('$brugernavn', '$kodeord',
'$email', '$kon', '$status', '0.bmp', '$ip', '$dato')";

mysql_query( $sql )or die(mysql_error());

Når du har har fejl kan du blot indskyde følgende i din kode:

echo "Min SQL-sætning: $sql<br />\n";

Indskyd det mellem $sql sætningen og mysql_query linien - således:

$sql = "INSERT INTO community (brugernavn, kodeord, email,
kon, status, toj, ip, dato) values ('$brugernavn', '$kodeord',
'$email', '$kon', '$status', '0.bmp', '$ip', '$dato')";

echo "Min SQL-sætning: $sql<br />\n";

mysql_query( $sql )or die(mysql_error());

Og du vil nu få udlæst hele SQL sætningen til skærmen og du kan herefter
se om den indeholder det forventede.

Jeg kunne dog have dig mistænk for at få fejl grundet noget andet end
ovenstående.... men prøv...

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Martin (21-03-2006)
Kommentar
Fra : Martin


Dato : 21-03-06 23:12

Geert Lund wrote:
> Prøv i stedet at vænne dig til at gøre følgende når du skal lave SQL kald:
>
> $sql = "INSERT INTO community (brugernavn, kodeord, email,
> kon, status, toj, ip, dato) values ('$brugernavn', '$kodeord',
> '$email', '$kon', '$status', '0.bmp', '$ip', '$dato')";
>
> mysql_query( $sql )or die(mysql_error());

Jeg ville nu gøre således
mysql_query($sql) or die("Mysql lavede en fejl i
queryen:<br>".$sql."<br>og fejlen lyder:<br>".mysql_error());

så får man det hele med i en :)

Geert Lund (21-03-2006)
Kommentar
Fra : Geert Lund


Dato : 21-03-06 23:17

Martin wrote:

> så får man det hele med i en :)

Hvad så hvis queryen ikke får MySQL til at fejle?

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Martin (22-03-2006)
Kommentar
Fra : Martin


Dato : 22-03-06 02:25

Geert Lund wrote:
> Martin wrote:
>
>> så får man det hele med i en :)
>
> Hvad så hvis queryen ikke får MySQL til at fejle?

Så kigger man i databasen, og ser hvad fejlen er :)

Geert Lund (22-03-2006)
Kommentar
Fra : Geert Lund


Dato : 22-03-06 09:25

Martin wrote:

>> Hvad så hvis queryen ikke får MySQL til at fejle?
> Så kigger man i databasen, og ser hvad fejlen er :)

Ok, jeg foretrækker nu altså den løsning med at udskrive SQL-sætningen
helt uparset af andet en PHP - og inden den dribler igennem MySQL -
specielt fordi ofte ønsker man slet ikke at lade MySQL behandle
SQL-sætningen før man er sikker på den har det korrekte indhold.

Men smag og behag - jeg vil til "nye" klart anbefale versionen med at
udskrive SQL sætningen - der har man 100% kontrol over hvornår det sker
- og ikke mindst hvor det sker.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Geert Lund (22-03-2006)
Kommentar
Fra : Geert Lund


Dato : 22-03-06 09:27

Geert Lund wrote:

Hov - og nok et endnu mere validt argument for ikke at debugge på den
måde du foreslår - jeg er ikke interesseret i at min kode spytter SQL
sætninger ud når den er i produktion. Det er meget nemt at glemme at
fjerne udskrivningen af SQL sætningen igen på den måde du foreslår.

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Michael Zedeler (22-03-2006)
Kommentar
Fra : Michael Zedeler


Dato : 22-03-06 09:34

Geert Lund wrote:
> Martin wrote:
>
>>> Hvad så hvis queryen ikke får MySQL til at fejle?
>>
>> Så kigger man i databasen, og ser hvad fejlen er :)
>
> [klip]
>
> Men smag og behag - jeg vil til "nye" klart anbefale versionen med at
> udskrive SQL sætningen - der har man 100% kontrol over hvornår det sker
> - og ikke mindst hvor det sker.

Det kan jeg også tilslutte mig. Min påstand er, at mange
begynderspørgsmål er bedre besvaret ved at give spørgeren bedre
redskaber til selv at fejlsøge, frem for bare at løse problemet for
vedkommende.

Lige præcis det at udskrive SQL-forespørgselen, er en metode, som jeg
har set virke for et meget stort antal begyndere. Denne metode, samt
"mindste fejlende eksempel", hvor man skærer sin kode ned til det mindst
mulige eksempel, der ikke virker, er to rigtig gode fejlsøgningsmetoder.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Geert Lund (22-03-2006)
Kommentar
Fra : Geert Lund


Dato : 22-03-06 15:22

Michael Zedeler wrote:

> Det kan jeg også tilslutte mig. Min påstand er, at mange
> begynderspørgsmål er bedre besvaret ved at give spørgeren bedre
> redskaber til selv at fejlsøge, frem for bare at løse problemet for
> vedkommende.

Det er jeg enig i - men...

> Lige præcis det at udskrive SQL-forespørgselen, er en metode, som jeg
> har set virke for et meget stort antal begyndere. Denne metode, samt
> "mindste fejlende eksempel", hvor man skærer sin kode ned til det mindst
> mulige eksempel, der ikke virker, er to rigtig gode fejlsøgningsmetoder.

Det er faktisk ikke kun begyndere der har fordel af den metode - nogle
har dog nok udviklet mere raffinerede fejlrapporteringsværktøjer
specielt i større projekter og derfor er det selvfølgelig ikke altid at
man behøver benytte metoden.

Jeg benytter den dog selv flittigt - stadig - selvom jeg har kodet PHP
siden 1998. I visse projekter har jeg dog mere raffinerede
log-opsamlinger, fejlrapporter osv. som ikke altid nødvendiggør brugen
af førnævnte metode.

:)

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Michael Zedeler (22-03-2006)
Kommentar
Fra : Michael Zedeler


Dato : 22-03-06 15:33

Geert Lund wrote:
> Michael Zedeler wrote:
>> Lige præcis det at udskrive SQL-forespørgselen, er en metode, som jeg
>> har set virke for et meget stort antal begyndere. Denne metode, samt
>> "mindste fejlende eksempel", hvor man skærer sin kode ned til det
>> mindst mulige eksempel, der ikke virker, er to rigtig gode
>> fejlsøgningsmetoder.
>
> Det er faktisk ikke kun begyndere der har fordel af den metode - nogle
> har dog nok udviklet mere raffinerede fejlrapporteringsværktøjer
> specielt i større projekter og derfor er det selvfølgelig ikke altid at
> man behøver benytte metoden.

Jeg bruger den skam også idag - over 10 år efter jeg for første gang
skrev min første databaseforespørgsel Der findes måske specielle
værktøjer, men så kan man ende med at få problemer med at forstå hvordan
de betjenes korrekt.

Mvh. Michael.
--
Which is more dangerous? TV guided missiles or TV guided families?
Visit my home page at http://michael.zedeler.dk/
Get my vcard at http://michael.zedeler.dk/vcard.vcf

Peter Brodersen (22-03-2006)
Kommentar
Fra : Peter Brodersen


Dato : 22-03-06 10:58

On Wed, 22 Mar 2006 02:25:05 +0100, Martin <news@natten-i.dk> wrote:

>> Hvad så hvis queryen ikke får MySQL til at fejle?
>
>Så kigger man i databasen, og ser hvad fejlen er :)

Det kan tænkes, at der slet ikke er nogen fejl, SQL-mæssigt. Et typisk
eksempel kunne være:

$sql = "SELECT navn FROM tabel WHERE id = '$id'";

Hvis $id ikke er sat (evt. fordi man har troet at register_globals er
slået til), så får man ingen fejlmeddelelse, idet forespørgslen
stadigvæk er gyldig nok. Men man får ikke trukket nogen rækker ud

Hvis man printer forespørgslen:
   SELECT navn FROM tabel WHERE id = ''
... vil man lettere kunne se, at ens forespørgsel i første omgang ikke
ser ud, som man vil have det.

--
- Peter Brodersen
Find dig selv: http://map.ter.dk/

morten (22-03-2006)
Kommentar
Fra : morten


Dato : 22-03-06 17:57

Altså lige nu har jeg ikke fået meget hjælp, men kom til at tænke på
om at man ikke kan det her:

mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
'$kon', '$status', '$kon.bmp', '$ip', '$dato')")or
die(mysql_error());

Den tekst laver jeg så om til:

mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
'$kon', '$status', '<?php echo if "mand"

else if "kvinde"

); ?>.bmp', '$ip', '$dato')")or die(mysql_error());

__________

nu ved jeg godt at det her er forkert

if "mand"

else if "kvinde"

Men kan i ikke lave dan om så den virker, men husk at navnet il
billede filen også skal med, som er Mand = mand.bmp Kvinde =
kvinde.bmp

håber at i kan lave det :)

--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Geert Lund (22-03-2006)
Kommentar
Fra : Geert Lund


Dato : 22-03-06 18:33

morten wrote:

> Altså lige nu har jeg ikke fået meget hjælp, men kom til at tænke på
> om at man ikke kan det her:

Men du har ikke læst hvad vi har skrevet og bedt dig om at udbybe? Det
er stadig meget svært at give dig hjælp til noget du ikke beskriver ret
godt...

> mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
> status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
> '$kon', '$status', '<?php echo if "mand"
>
> else if "kvinde"
>
> ); ?>.bmp', '$ip', '$dato')")or die(mysql_error());

Æh, nej det kan man ikke...

Tror sådan set heller ikke det afhælper dit problem. Men du kan ikke
bryde ud af dit mysql_query kald og kalde vilkårlig php kode...


--
Med venlig hilsen
Geert Lund,
www.GLD.dk

morten (22-03-2006)
Kommentar
Fra : morten


Dato : 22-03-06 20:20

Geert Lund wrote in dk.edb.internet.webdesign.serverside.php:
> morten wrote:
>
> > Altså lige nu har jeg ikke fået meget hjælp, men kom til at tænke på
> > om at man ikke kan det her:
>
> Men du har ikke læst hvad vi har skrevet og bedt dig om at udbybe? Det
> er stadig meget svært at give dig hjælp til noget du ikke beskriver ret
> godt...
>

Ok, prøver på en anden måde at sige det, når du i fx. online spillet
runescape opretter en bruger, kan du vælger at være mand eller dame,
vælger du mand er din figur en mand vælger du dame er din figur en dame.
Men med mit community er det lidt anderledes, når man væger et køn (mand
eller dame), så er det lige meget hvad for en at man vælger, så vil
figuren være den samme, systemet er heller ikke sat op til at skulle give
en figur efter køn, men det er det jeg godt vil have det til, den kode
jeg giver her:


er den der giver brugeren en figur + nogle andre ting som ikke har noget
med emnet at gøre, den kode som jeg vil have skal næsten ligne den der
oppe^, men der skal bare være sat op at man får en figur efter det køn
som at man vælger (altså en kode til Mysql databasen). Lad os nu sige at
den figur som er manden hedder "mand.bmp" og damen hedder "dame.bmp", så
i skal helst lave det så det er de 2 navne/koder i sætter ind i den kode
som i giver mig :) . Jeg håber at du forstod det :)

> > mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
> > status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
> > '$kon', '$status', '<?php echo if "mand"
> >
> > else if "kvinde"
> >
> > ); ?>.bmp', '$ip', '$dato')")or die(mysql_error());
>
> Æh, nej det kan man ikke...
>
> Tror sådan set heller ikke det afhælper dit problem. Men du kan ikke
> bryde ud af dit mysql_query kald og kalde vilkårlig php kode...
>

havde heller ikke regnet med at den var rigtig :)
>
> --
> Med venlig hilsen
> Geert Lund,
> www.GLD.dk


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

morten (22-03-2006)
Kommentar
Fra : morten


Dato : 22-03-06 20:22

morten wrote in dk.edb.internet.webdesign.serverside.php:
> Geert Lund wrote in dk.edb.internet.webdesign.serverside.php:
> > morten wrote:
> >
> > > Altså lige nu har jeg ikke fået meget hjælp, men kom til at tænke på
> > > om at man ikke kan det her:
> >
> > Men du har ikke læst hvad vi har skrevet og bedt dig om at udbybe? Det
> > er stadig meget svært at give dig hjælp til noget du ikke beskriver ret
> > godt...
> >
>
> Ok, prøver på en anden måde at sige det, når du i fx. online spillet
> runescape opretter en bruger, kan du vælger at være mand eller dame,
> vælger du mand er din figur en mand vælger du dame er din figur en dame.
> Men med mit community er det lidt anderledes, når man væger et køn (mand
> eller dame), så er det lige meget hvad for en at man vælger, så vil
> figuren være den samme, systemet er heller ikke sat op til at skulle give
> en figur efter køn, men det er det jeg godt vil have det til, den kode
> jeg giver her:
>
ja, så glemte jeg jo self at skive den, koden er:

mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon, status,
toj, ip, dato) values ('$brugernavn', '$kodeord', '$email', '$kon',
'$status', '0.bmp', '$ip', '$dato')")or die(mysql_error());


>
> er den der giver brugeren en figur + nogle andre ting som ikke har noget
> med emnet at gøre, den kode som jeg vil have skal næsten ligne den der
> oppe^, men der skal bare være sat op at man får en figur efter det køn
> som at man vælger (altså en kode til Mysql databasen). Lad os nu sige at
> den figur som er manden hedder "mand.bmp" og damen hedder "dame.bmp", så
> i skal helst lave det så det er de 2 navne/koder i sætter ind i den kode
> som i giver mig :) . Jeg håber at du forstod det :)
>
> > > mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
> > > status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
> > > '$kon', '$status', '<?php echo if "mand"
> > >
> > > else if "kvinde"
> > >
> > > ); ?>.bmp', '$ip', '$dato')")or die(mysql_error());
> >
> > Æh, nej det kan man ikke...
> >
> > Tror sådan set heller ikke det afhælper dit problem. Men du kan ikke
> > bryde ud af dit mysql_query kald og kalde vilkårlig php kode...
> >
>
> havde heller ikke regnet med at den var rigtig :)
> >
> > --
> > Med venlig hilsen
> > Geert Lund,
> > www.GLD.dk
>
>
> --
> Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
> - Pædagogiske tutorials på dansk
> - Kom godt i gang med koderne
> KLIK HER! => http://www.html.dk/tutorials


--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Geert Lund (22-03-2006)
Kommentar
Fra : Geert Lund


Dato : 22-03-06 21:36

morten wrote:

[...snip en masse...]

Altså bare lige for at få et på det rene - du behøver ikke forklare mig
hvad du gerne vil opnå i forhold til dit community mht. mand/kvinde
symboler, jeg er udemærket klar over dette og hvordan det fungerer.

Jeg forstår bare ikke hvor svært det kan være for dig at sørge for at
variablen $kon har det indhold du gerne vil have den skal have?

$kon = 'mand';
eller
$kon = 'kvinde';

Og så:

mysql_query("INSERT INTO community (brugernavn, kodeord, email,
kon, status, toj, ip, dato) values ('$brugernavn', '$kodeord',
'$email', '$kon', '$status', '0.bmp', '$ip', '$dato')")or
die(mysql_error());

Lige som med alle de andre variable du indsætter...

Og på mig virker det som om du leder efter en forklaring på hvorfor du
får en MySQL fejl og den forklarer jeg dig at vi ikke kan give dig
yderligere forklaring på uden at se mere af din kode...

--
Med venlig hilsen
Geert Lund,
www.GLD.dk

Erlend Klakegg Bergh~ (22-03-2006)
Kommentar
Fra : Erlend Klakegg Bergh~


Dato : 22-03-06 21:01

morten skrev:
> Altså lige nu har jeg ikke fået meget hjælp, men kom til at tænke på
> om at man ikke kan det her:
>
> mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
> status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
> '$kon', '$status', '$kon.bmp', '$ip', '$dato')")or
> die(mysql_error());
>
> Den tekst laver jeg så om til:
>
> mysql_query("INSERT INTO community (brugernavn, kodeord, email, kon,
> status, toj, ip, dato) values ('$brugernavn', '$kodeord', '$email',
> '$kon', '$status', '<?php echo if "mand"
>
> else if "kvinde"
>
> ); ?>.bmp', '$ip', '$dato')")or die(mysql_error());
>
> __________
>
> nu ved jeg godt at det her er forkert
>
> if "mand"
>
> else if "kvinde"
>
> Men kan i ikke lave dan om så den virker, men husk at navnet il
> billede filen også skal med, som er Mand = mand.bmp Kvinde =
> kvinde.bmp
>
> håber at i kan lave det :)


Altså ...

$sql = "INSERT INTO (...) VALUES (..., '0.bmp', ...);";

Hvis vi nå tenker oss at $sex inneholder "m" hvis det er mann, og "f"
hvis det er kvinne, så kan det gjøres slik:

$sql = "INSERT INTO (...) VALUES (..., '".($sex == "m" ? "mann.bmp" :
"kvinne.bmp")."', ...);";

Jeg tror da dette skal være greit å forstå, så vi snart kan legge denne
diskusjonen død.


--

Vennlig hilsen

Erlend Klakegg Bergheim

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste