Avatar billede nbj1 Praktikant
07. december 2006 - 10:54 Der er 43 kommentarer og
1 løsning

tæller igen

hej hvad er der lige galt her
<?php
//mysql_connect her
$mysql_host = 'localhost'; // Host til database
$mysql_username = 'admin'; // Brugernavn til database
$mysql_password = 'min'; // Kodeord til database
$mysql_database = 'count'; // Database

if(!$_COOKIE["tael"]) {
    mysql_query("UPDATE taeller set hit=hit+1") or die(mysql_error());
    setcookie("tael", time()+86400);
} else {
    setcookie("tael", time()+86400);
}
?>
den siger fejl i linie 8 ___????
Avatar billede mcgoat Nybegynder
07. december 2006 - 10:59 #1
hvad siger den fejlen er?
Avatar billede kinderaeg Nybegynder
07. december 2006 - 11:00 #2
Vil tro det er fordi du spørger på et array der ikke nødvendigvis findes, prøv nedenstående

if(!isset($_COOKIE["tael"])) {
Avatar billede mcgoat Nybegynder
07. december 2006 - 11:03 #3
er nok det ja. for hvis "tael" ikke er sat i cookie vil du ikke kunne tilgå den, du skal istedet spørge om den er sat med isset
Avatar billede nbj1 Praktikant
07. december 2006 - 11:10 #4
jeg prøver lige at sætte det in men det den siger er at no database selected
Avatar billede nbj1 Praktikant
07. december 2006 - 11:14 #5
det hjalp lidt på fejl meddelsen men den kan stadig ik finde databasen det forstår jeg bare ik for jeg har oprettet den som count
Avatar billede kinderaeg Nybegynder
07. december 2006 - 11:21 #6
Ah, du har kun sat variablerne op, men ikke oprettet en forbindelse til din DB.
Du skal også lige connecte til den først ;)

$conn = mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db = mysql_select_db($mysql_database)
Avatar billede nbj1 Praktikant
07. december 2006 - 11:23 #7
database count, tabel taeller, field hit, type int, pri key, default 0
mener det skulle være rigtigt
Avatar billede nbj1 Praktikant
07. december 2006 - 11:25 #8
heh kinderaeg rigtigt glemt lol ok nu er der kontakt men fejl i linie 11
Avatar billede kinderaeg Nybegynder
07. december 2006 - 11:26 #9
Ja ja, men du har ikke lavet en forbindelse til databasen, du har bare oprettet nogle variabler, der indeholder de værdier du skal bruge til at forbinde til databasen.
Avatar billede kinderaeg Nybegynder
07. december 2006 - 11:30 #10
Hvis du nu har sat nogle linier ind, er det jo efterhånden lidt svært at holde styr på, hvor langt vi er, når du skriver linie 11. Kan du ikke skrive den fulde fejlbeskrivelse og smide koden op igen?
Avatar billede nbj1 Praktikant
07. december 2006 - 11:34 #11
undefined variable antal ___???
Avatar billede nbj1 Praktikant
07. december 2006 - 11:37 #12
ja ok undskyld nu er har jeg ingen fel men mangler at få vist det tal den skal tælle up ,,, skal jeg connecte databasen igen ?
<?php
//mysqlconnect her
$res = mysql_query("select hit from taeller");
  while($data = mysql_fetch_row($res)){
    echo $data["hit"];
  }
?>
Avatar billede kinderaeg Nybegynder
07. december 2006 - 11:45 #13
Nej, hvis du ikke lukker connectionen, anvendes den senest åbnede connection i dit query (med mindre du angiver noget andet).

Det du siger er, at den ved ovenstående, ikke skriver dine hits ud? Sæt "or die(mysql_error())" på din query, så du kan se, om du får fejl der. Hvis du ikke gør, så prøv at køre sql'en direkte i din database
Avatar billede nbj1 Praktikant
07. december 2006 - 11:51 #14
or die(mysql_error()) giver ingen fejl det sidste du skriver kør sgl direkte øh der falder jeg af hvordan i phpadmin eller ?
Avatar billede nbj1 Praktikant
07. december 2006 - 11:53 #15
hvis jeg kikker i phpmyadmin i række statistik er der ingen r¨ækker så den skriver ik data ind
Avatar billede nbj1 Praktikant
07. december 2006 - 12:05 #16
echo $data["hit"]; efter data skulle den ik skrive "hit"
Avatar billede kinderaeg Nybegynder
07. december 2006 - 12:30 #17
Hvis der ikke i forvejen findes en række i den tabel, så sæt en ind, hvor der står 0 i hits. Du opdaterer jo kun posten, du opretter den aldrig, så det er nok der fejlen ligger. Hvis du indsætter en række i tabellen taeller, så skulle det gerne spille.
Og ja, det var i phpmyadmin, jeg mente.
Avatar billede nbj1 Praktikant
07. december 2006 - 12:44 #18
ok her er jeg så lidt må tynd is,, jeg opretter en tabel ved navn taeller med et felt feltnavn hit af typen int længde 10 ??? atributter ??
nullværdi ?? standardværdi ?? datalager ??
Avatar billede kinderaeg Nybegynder
07. december 2006 - 13:03 #19
I den tabel du har oprettet, indsætter du en enkelt post, hvor feltet hit har værdien 0, ellers får du ikke noget ud af dit update-script, den kan jo ikke opdatere ingen poster
Avatar billede nbj1 Praktikant
07. december 2006 - 13:11 #20
ja ok men kikker rundt i phpmyadmin kan ik finde hvor jeg kan tilføje en et felt
Avatar billede nbj1 Praktikant
07. december 2006 - 13:19 #21
det er lige som om der mangler noget for at smide data in i tabellen taeller jeg har et felt ved navn hit men hvordan jeg smider data ind aner jeg ik normalt sker det via scriptet så jeg har ik prøvet at lave en tabel selv endnu
Avatar billede kinderaeg Nybegynder
07. december 2006 - 13:22 #22
Hvis du i phpmyadmin står i tabellen taeller findes der øverst en knap der hedder insert/indsæt, klik på den og sæt 0 ind i feltet hit
Avatar billede nbj1 Praktikant
07. december 2006 - 14:11 #23
der sker underlige ting heh jeg har har ik rettet i databasen men nu er der en række men så kommer den med en fejl pa siden med undifined index hit i linie 121 som er    echo $data["hit"];
Avatar billede kinderaeg Nybegynder
07. december 2006 - 14:16 #24
Og det er ikke fordi feltet i virkeligheden hedder Hit? Hvis du kører på en Unix eller Linux-server kører du jo case-sensitivt. Du kan evt se hvordan dit array ser ud ved at få det udskrevet med print_r($data);
Avatar billede nbj1 Praktikant
07. december 2006 - 14:21 #25
ok print_r($data); skriver den Aray([0]=> 1)
Avatar billede kinderaeg Nybegynder
07. december 2006 - 14:32 #26
Og koden er stadig magen til ovenstående?

<?php
//mysqlconnect her
$res = mysql_query("select hit from taeller");
  while($data = mysql_fetch_row($res)){
    echo $data["hit"];
  }
?>

Eller er der lavet om på noget
Avatar billede nbj1 Praktikant
07. december 2006 - 14:34 #27
<?php
//mysqlconnect her

$mysql_host = 'localhost'; // Host til database
$mysql_username = 'admin'; // Brugernavn til database
$mysql_password = 'buller'; // Kodeord til database
$mysql_database = 'count'; // Database

$conn = mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db = mysql_select_db($mysql_database);


$res = mysql_query("select hit from taeller")or die(mysql_error());
  while($data = mysql_fetch_row($res))  {
  echo $data["hit"];  }
?>
det er hvad der er nu
Avatar billede nbj1 Praktikant
07. december 2006 - 14:37 #28
jeg tror jeg på en eller anden måde opretter databasen forkert så jeg ik har mulighed for at tilføje data
Avatar billede nbj1 Praktikant
07. december 2006 - 14:44 #29
ok der var en post før i databasen så fik jeg fejl på siden beskrevet ovenfor nu har slettet den ene post så for jeg ikke nogen fejl på siden så...???
Avatar billede kinderaeg Nybegynder
07. december 2006 - 14:47 #30
Du tilføjer jo ikke data nogen steder, her læser du, og i det første du havde, opdaterer du. Jeg har ikke noget bud på, hvorfor du får et "forkert"resultat ud af din søgning, med mindre strukturen i din database ikke stemmer overens med din forespørgsel
Avatar billede nbj1 Praktikant
07. december 2006 - 14:53 #31
jo jo first på siden før http har jeg dette
<?php
//mysql_connect her
$mysql_host = 'localhost'; // Host til database
$mysql_username = 'admin'; // Brugernavn til database
$mysql_password = 'buller'; // Kodeord til database
$mysql_database = 'count'; // Database

$conn = mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db = mysql_select_db($mysql_database);

if(!isset($_COOKIE["tael"])) {
    mysql_query("UPDATE taeller set hit=hit+1") or die(mysql_error());
    setcookie("tael", time()+86400);
} else {
    setcookie("tael", time()+86400);
}
?>
og i body har jeg dette
<?php
//mysqlconnect her

$mysql_host = 'localhost'; // Host til database
$mysql_username = 'admin'; // Brugernavn til database
$mysql_password = 'buller'; // Kodeord til database
$mysql_database = 'count'; // Database

$conn = mysql_connect($mysql_host, $mysql_username, $mysql_password);
$db = mysql_select_db($mysql_database);


$res = mysql_query("select hit from taeller")or die(mysql_error());
  while($data = mysql_fetch_row($res))  {
  echo $data["hit"];  }
?>
Avatar billede kinderaeg Nybegynder
07. december 2006 - 15:21 #32
Igen, du indsætter ikke noget, du opdaterer, og hvis der i forvejen ikke findes noget i tabellen, kan du ikke opdatere noget
Avatar billede nbj1 Praktikant
07. december 2006 - 15:33 #33
ja jeg bruger update taeller ok jeg kan godt see hvis post er 0 men logisk 0 + 1 = 1 næste 1+1=2 osv ik så skulle det ik virke ?
eller skal jeg prøve med noget ala mysql_query(add_post hit=1); eller hvordan
Avatar billede kinderaeg Nybegynder
07. december 2006 - 15:47 #34
Hvis der ikke findes noget i tabellen, altså at den er tom, så har den jo heller ikke værdien 0.
Avatar billede nbj1 Praktikant
07. december 2006 - 15:59 #35
ok men der er ik noget sted i phpmyadmin v2.9 hvor jeg kan tilføje en post så jeg prøver at add fra hjemmesiden så lad os se hvad der sker
Avatar billede kinderaeg Nybegynder
07. december 2006 - 16:03 #36
Se kommentar af 07/12-2006 13:22:17
Avatar billede nbj1 Praktikant
07. december 2006 - 16:12 #37
jo men problemet er der er ik nogen indsæt har kikket
Avatar billede kinderaeg Nybegynder
07. december 2006 - 16:33 #38
I din phpmyadmin ikke? Og du har åbnet den tabel du skal indsætte i?
Avatar billede sw_red_6 Nybegynder
07. december 2006 - 16:42 #39
du kan ikke få data ud på den måde fordi du bruger mysql_fetch_row.
Hvis du enten ændrer til mysql_fetch_array eller mysql_fetch_assoc kan du bruge echo $data["hit"];

hvis du ikke vil ændre mysql_fetch_row så kan du ændre $data["hit"] til $data[0]
Avatar billede nbj1 Praktikant
08. december 2006 - 14:31 #40
hvorfor kommer denne fejl ?
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in
Avatar billede nbj1 Praktikant
09. december 2006 - 02:55 #41
hejsa glem alt tidlige bøvl med tæller, har fundet en tæller der næsten virker heh kun to problemer: undefined variable REMOTE_ADDR linie 24 = $ip = $REMOTE_ADDR;
og undefined variable REMOTE_ADDR linie 25 = $where = $PHP_SELF;
hvad skal ændrs _?
Avatar billede nbj1 Praktikant
09. december 2006 - 02:56 #42
sludder linie 25 er naturlighvis PHP_SELF skrive fejl
Avatar billede nbj1 Praktikant
09. december 2006 - 03:16 #43
ok har fundet fejlen takker alle og gi et svar for point, fejlen var i register globals som var off i php.ini skal være on :()
Avatar billede kinderaeg Nybegynder
10. december 2006 - 01:58 #44
Ja, hvis du vil kalde variablerne sådan, så skal register globals være slået til, ellers skal du kalde dem ved deres "rigtige navn", $_SERVER["REMOTE_ADDR"] og $_SERVER["PHP_SELF"]
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