Avatar billede oliolioli Nybegynder
11. juli 2010 - 01:10 Der er 26 kommentarer og
1 løsning

MySQL update

Jeg har et problem med et update script. Den kommer ikke med nogen fejl, men den laver absolut ingen ændringer i databasen. Jeg har tjekket, at det er de rigtige kolonnenavne osv. der bruges..
Min kode er følgende:
<?
include("mysql.php");
include("include.php");

$tid = time();
$online = "<font color='green'>Online</font>";
$sidstonline1 = date("Y-m-d");
$sidstonline2 = date("h:m");
$sidstonline = "$sidstonline1 $sidstonline2";
$brugernavn = $_SESSION['brugernavn'];
mysql_query("UPDATE brugere SET `tid` = '$tid', `status` = '$online', `sidstonline` ='$sidstonline' WHERE brugernavn = '$brugernavn'") or die (mysql_error());
?>
Har prøvet med lidt forskellige syntakser i min mysql_query, men intet har hjulpet.
Avatar billede oliolioli Nybegynder
11. juli 2010 - 01:12 #1
PHP version     5.2.*
MySQL ver.     5.0.81-community
Avatar billede Springform Nybegynder
11. juli 2010 - 01:35 #2
prøv at bryd linien

mysql_query("UPDATE brugere SET tid = '".$tid."', status = '".$online."', sidstonline = '".$sidstonline."' WHERE brugernavn = '".$brugernavn."'") or die (mysql_error());
Avatar billede Springform Nybegynder
11. juli 2010 - 01:37 #3
altså omslut alle dine variabler med ' " . $var . " '
det andet var ikke så nemt at se :P
Avatar billede oliolioli Nybegynder
11. juli 2010 - 01:44 #4
Har prøvet (og igen nu).. gør ingen forskel desværre :/
Avatar billede Springform Nybegynder
11. juli 2010 - 01:51 #5
ikke at det bør løse dit problem men

$sidstonline = "$sidstonline1 $sidstonline2";

skal den ikke skrives som

$sidstonline = $sidstonline1.$sidstonline2; ?

nu er det et stykke tid siden jeg har brugt mysql, men i mysqli der skal man ihvertfald have sin database forbindelse med i sin query kunne du evt. prøve
Avatar billede ksoren Nybegynder
11. juli 2010 - 01:55 #6
Prøv at echo din samlede sql ud. Nogle gange giver det et hint.
Avatar billede oliolioli Nybegynder
11. juli 2010 - 02:03 #7
ksoren, hvordan? De variabler jeg prøver at update echo'er jeg på min profilside, og der er de tomme, mens alle de andre ikke er. (alder, brugernavn etc.)
Springform.. hjalp ikke rigtigt. Det jeg vil, er at have et mellemrum mellem $sidstonline1 og $sidstonline2..
Avatar billede oliolioli Nybegynder
11. juli 2010 - 02:07 #8
ksoren hvad mener du med samlede sql? Ved bare, at den updater ikke de data jeg vil have den til, kan jeg se både med echo og phpmyadmin. Springform - har lige prøvet; virker ikke. Det jeg vil i den variabel, er at få de 2 andre variabler ind i en variabel med et mellemrum imellem. Sikkert også gjort forkert af mig ;)
Avatar billede oliolioli Nybegynder
11. juli 2010 - 02:08 #9
Nå, nu dobbelposter jeg - sry.. det så bare meget ud som om, den anden comment ikke var kommet ind ;)
Avatar billede majbom Novice
11. juli 2010 - 06:59 #10
prøv at ret:

mysql_query("UPDATE brugere SET `tid` = '$tid', `status` = '$online', `sidstonline` ='$sidstonline' WHERE brugernavn = '$brugernavn'") or die (mysql_error());


til:

$query = "UPDATE brugere SET `tid` = '$tid', `status` = '$online', `sidstonline` ='$sidstonline' WHERE brugernavn = '$brugernavn'";
echo $query;
mysql_query($query) or die (mysql_error());


måske $brugernavn ikke indeholder det forventede... (du har en session_start(); i en af de inkluderede filer?)
Avatar billede intenz Novice
11. juli 2010 - 10:19 #11

$online = "<font color='green'>Online</font>";

Giver dig fejl. Den indeholder citationstegn ', som du også bruger til din SQL statement.

Ret den til:

$online = "<font color=\'green\'>Online</font>";
Avatar billede oliolioli Nybegynder
11. juli 2010 - 15:33 #12
Ser ikke ud til at hjælpe synderligt meget. Echo'en viser intet og heller bliver noget opdateret.
Avatar billede majbom Novice
11. juli 2010 - 16:28 #13
hvad viser din echo ?
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:05 #14
Ingenting.
Avatar billede ksoren Nybegynder
11. juli 2010 - 17:13 #15
Så vi er ude i, at vis kilde i browseren viser din php-kode?
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:18 #16
Nej, den viser. <html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>redirect</title>
</head><style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 10px;
    color: #333;
}
-->
</style>
<meta http-equiv="REFRESH" content="2;url=loggetind.php">
<body>
Brugernavn/kodeord er korrekt. Vent venligst et øjeblik, mens du bliver viderestillet.
</body>
</html>
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:28 #17
Okay, jeg tror ikke vi er ude i et kildekodeproblem længere. Hvis jeg bare skrive echo "test"; så bliver det ikke vist :s
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:30 #18
Nej, kiggede den forkerte kildekode.

<style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 10px;
    color: #333;
}
a:link {
    color: #333;
    text-decoration: none;
}
a:visited {
    text-decoration: none;
    color: #333;
}
a:hover {
    text-decoration: underline;
    color: #333;
}
a:active {
    text-decoration: none;
    color: #666;
}
-->
</style>UPDATE brugere SET `tid` = '1278862168', `status` = '<font color=\'green\'>Online</font>', `sidstonline` ='2010-07-1111:07' WHERE brugernavn = 'ojo'teest<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>redirect</title>
</head><style type="text/css">
<!--
body,td,th {
    font-family: Verdana, Geneva, sans-serif;
    font-size: 10px;
    color: #333;
}
-->
</style>
<meta http-equiv="REFRESH" content="2;url=loggetind.php">
<body>

Brugernavn/kodeord er korrekt. Vent venligst et øjeblik, mens du bliver viderestillet.
</body>
</html>
Ja, den viser min php tekst
Avatar billede majbom Novice
11. juli 2010 - 17:35 #19
det virker underligt... der er en record i din database hvor brugernavnet er "ojo"?

men du skal i hvert fald have din doctype-erklæring som det allerførste i dit dokument.
Avatar billede ksoren Nybegynder
11. juli 2010 - 17:36 #20
"<?php" virker altid

"<?" virker kun, hvis det er tilladt i php.ini
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:40 #21
Har <? i alle andre dokumenter :s
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:41 #22
Har ændret til <?php og flyttet ned under doctype igen. Ændrede ikke rigtigt nok.
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:46 #23
Har fundet ud af noget meget væsentligt. Min redirect.php virker nu, men selvom, der ingen steder står header("location: redirect.html"); og tydeligvis står header("location: redirect.php"); i min loginok.php, så redirecter den stadigt til redirect.html :s
Avatar billede oliolioli Nybegynder
11. juli 2010 - 17:52 #24
Sådan, nu fik jeg det til at virke.. har siddet og uploadet min gamle fil 700 gange og så til sidst er den nok uploadet korrekt. Til at starte med virkede det ikke, så jeg vil gerne sige tak for hjælpen ;) hvis soren og splazz lige lægger et svar hver, så skal jeg dele nogle points ud ;)
Avatar billede majbom Novice
11. juli 2010 - 18:35 #25
det var godt... :)
Avatar billede oliolioli Nybegynder
12. juli 2010 - 04:43 #26
Hmm, fik kun svar fra splazz, så han får pointsne ;) men tak for hjælpen
Avatar billede majbom Novice
12. juli 2010 - 06:15 #27
nu kunne det jo tænkes at ksoren sad og så bold og ikke hoppede forbi exp.dk på vej i seng ;)

men tak for point, så må ksoren lige skrive hvis jeg skal oprette et spørgsmål, så han kan få points :)
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