Avatar billede simotho Nybegynder
08. november 2008 - 00:48 Der er 29 kommentarer

UPDATE profiltekst, virker ikke?

Hvad gør jeg galt i denne kode, kan godt skrive det og få den til at skrive at det er rettet, men når jeg så kommer tilbage til profilen har teksten ikke ændret sig :s


<?
      include("connect.php");
      include("check");
session_start();
if($_SESSION['loggetind'] !== "yes"){
print "Du er ikke logget ind!";
print "<br><a href=index.php>Klik her for at komme til login-siden</a>.";

 
      } else{
 
      $hent = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[login]'");
 
      $vis = mysql_fetch_array($hent);
 
      if($_POST["opdater"]){

      mysql_query("UPDATE brugere SET fritekst = '$_POST[fritekst]' WHERE brugernavn = '$_SESSION[brugernavn]' LIMIT 1");
 
 

 
      echo "<font color=green>Din profil blev opdateret.<br><a href=retprofil.php>Ret profil</a> - <a href=profil.php?b=".$_SESSION['Brugernavn'].">Se din profil</a></font>";
 
      } else{
 
      ?>
 
      <form method="post" action="">
 
      <table>
 
        <tr>
 
          <td valign="top">&nbsp;</td>
 
          <td valign="top"><strong>Profil ops&aelig;tning </strong></td>
        </tr>

        <tr>
 
          <td valign="top" style="text-align: right;">Profiltekst: </td>
 
          <td valign="top"><textarea name="fritekst" cols="50" rows="10"></textarea></td>
        </tr>
 
        <tr>
.
          <td valign="top" style="text-align: right;">&nbsp;</td>

          <td valign="top"><input type="submit" name="opdater" value="Opdater" /></td>
        </tr>
      </table>

      <br />
      <br />
      </form>
.
      <?

      }

      }

   
exit;
      ?>
Avatar billede sirerugor Nybegynder
08. november 2008 - 00:54 #1
Istedet for:
$hent = mysql_query("SELECT * FROM brugere WHERE brugernavn = '$_SESSION[login]'");
og
mysql_query("UPDATE brugere SET fritekst = '$_POST[fritekst]' WHERE brugernavn = '$_SESSION[brugernavn]' LIMIT 1");

Ville jeg nok bruge disse i stedet:
$hent = mysql_query("SELECT * FROM brugere WHERE brugernavn = '".$_SESSION[login]-"'");
og
mysql_query("UPDATE brugere SET fritekst = '".$_POST[fritekst]."' WHERE brugernavn = '."$_SESSION[brugernavn]."' LIMIT 1");
Avatar billede sirerugor Nybegynder
08. november 2008 - 00:55 #2
Hvor aller sidste linje i ovenstående så skulle være:
mysql_query("UPDATE brugere SET fritekst = '".$_POST[fritekst]."' WHERE brugernavn = '".$_SESSION[brugernavn]."' LIMIT 1");
Avatar billede simotho Nybegynder
08. november 2008 - 00:56 #3
Har du testet det? :)
Avatar billede simotho Nybegynder
08. november 2008 - 00:59 #4
Den virker ikke? :s
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:04 #5
Haha.. Og her er en rettelse mere:
$hent = mysql_query("SELECT * FROM brugere WHERE brugernavn = '".$_SESSION[login]."'");
Avatar billede simotho Nybegynder
08. november 2008 - 01:10 #6
Virker ikke, kan godt skrive noget, men den viser det ikke bagefter på profil siden
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:13 #7
Og har du tjekket om der overhovedet bliver gemt noget i din DB?
Avatar billede simotho Nybegynder
08. november 2008 - 01:13 #8
den gemmer ikke det jeg retter her? :S
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:15 #9
Prøv det her i stedet:
$hent = mysql_query("SELECT * FROM brugere WHERE brugernavn = '".$_SESSION['login']."'");
og
mysql_query("UPDATE brugere SET fritekst = '".$_POST['fritekst']."' WHERE brugernavn = '".$_SESSION['brugernavn']."' LIMIT 1");
Avatar billede simotho Nybegynder
08. november 2008 - 01:18 #10
Den skriver eller printer intet?
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:21 #11
Lige for at teste så prøv at bruge en query direkte med indtastede data:
mysql_query("UPDATE brugere SET fritekst = 'TEST' WHERE brugernavn = 'ET_BRUGERNAVN' LIMIT 1");
Og tjek at det faktisk bliver gjort.
Avatar billede simotho Nybegynder
08. november 2008 - 01:24 #12
sker intet
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:25 #13
Har du tjekket at du faktisk forbinder korrekt til din DB? Og at du overhovedet kan hente noget ud fra den? Fx. hvad din $vis indeholder?
Avatar billede simotho Nybegynder
08. november 2008 - 01:27 #14
den er forbundet korrekt
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:29 #15
Well, hvis den er forbundet korrekt (og du får data tilbage?), så bør du også kunne udføre en update som ovenfor. Har du noget phpmyadmin installeret? Hvis du har kan du altid teste dine queries før du bruger dem der? :)
Avatar billede simotho Nybegynder
08. november 2008 - 01:31 #16
Den skriver ikke noget i databasen når man vil redigere, det er der den er mærkelig :)
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:36 #17
Har du phpmyadmin? For den vil i hvert fald fortælle dig hvis der sker en fejl et eller andet sted.

Prøv forresten det her:
$query = "UPDATE brugere SET fritekst = '".$_POST['fritekst']."' WHERE brugernavn = '".$_SESSION['brugernavn']."' LIMIT 1";
mysql_query($query) or die ("Query '$query' fejlede med beskeden: \"" . mysql_error () . '"');
Avatar billede simotho Nybegynder
08. november 2008 - 01:39 #18
kan det ha noget at gøre med hvis nu friteksten ikke findes på profilen endnu, men først skal oprettes?
Avatar billede sirerugor Nybegynder
08. november 2008 - 01:41 #19
Nej, det tror jeg ikke. Giver det en fejlmeddelelse nu med den nye kode?
Avatar billede simotho Nybegynder
08. november 2008 - 15:11 #20
den siger at tabellen ikke eksistere, men det gør den!

Hvad kan jeg så gøre`?
Avatar billede sirerugor Nybegynder
08. november 2008 - 15:18 #21
Sikre dig at den er med korrete caps. Fx. at den ikke faktisk hedder "Brugere" og du skriver "brugere". Det samme skal du gøre for alle felterne.
Avatar billede simotho Nybegynder
08. november 2008 - 16:07 #22
det er skrevet korrekt :s
Avatar billede sirerugor Nybegynder
08. november 2008 - 16:10 #23
Kan du evt. lige lave et export dump af din database struktur? Så kan det være man kan spotte noget.
Avatar billede simotho Nybegynder
08. november 2008 - 19:00 #24
Altså så du kan se min tabel med brugere?
Avatar billede sirerugor Nybegynder
08. november 2008 - 19:31 #25
Nej, vil se din data struktur?
Fx. tabel brugere, dens felter osv. (ikke indhold - det betyder intet for mig)
Avatar billede simotho Nybegynder
08. november 2008 - 21:08 #26
Den første som er brugerne:
*
CREATE TABLE `brugere` (
  `id` int(11) NOT NULL auto_increment,
  `brugernavn` varchar(255) NOT NULL default '',
  `adgangskode` varchar(255) NOT NULL default '',
  `point` varchar(255) NOT NULL default '50',
  `Rang` varchar(255) NOT NULL default 'Bruger',
  `logintid` varchar(255) NOT NULL default '',
  `sidstset` varchar(255) NOT NULL default 'Ikke set!',
  `fritekst` varchar(255) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=21 ;


Den anden som er indbakken :

CREATE TABLE `indbakke` (
  `id` int(11) NOT NULL auto_increment,
  `Dato` varchar(255) NOT NULL default '',
  `Til` varchar(255) NOT NULL default '',
  `Fra` varchar(255) NOT NULL default '',
  `Emne` varchar(255) NOT NULL default '',
  `Tekst` text NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



Håber det var det du mente :D
Avatar billede sirerugor Nybegynder
08. november 2008 - 22:51 #27
Jeg oprettede samme tabel som din "brugere" og oprettede brugeren 'duder'. Jeg kunne nemt udføre en update:

UPDATE brugere SET fritekst = 'TEST' WHERE brugernavn = 'duder' LIMIT 1

Så er du sikker på du forbinder til den rigtige database? Og må jeg lige se din connect.php?
Avatar billede simotho Nybegynder
08. november 2008 - 23:48 #28
<?php
$db = mysql_connect("localhost", "bruger_dk", "kode");
mysql_select_db("bruger_dk", $db);
?>
Avatar billede olebole Juniormester
09. november 2008 - 00:00 #29
<ole>

Der er helt sikkert noget, du ikke fortæller. Får du at vide, tabellen ikke eksisterer, så eksisterer den ikke. Du må lave en eller flere fejl, du ikke omtaler her  =)

/mvh
</bole>
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

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