Avatar billede hansen24aar Nybegynder
26. november 2005 - 11:51 Der er 36 kommentarer og
1 løsning

hvor er fejlen

Jeg har lavet en logud side som skal slette det jeg har sat ind i mine onlineliste tabel i min database

jeg har lavet en logud.php som ser sådan her ud...

<?php
session_start();
require("../data/db.php");

mysql_query("DELETE FROM onlineliste WHERE id =" $_SESSION['id'] " AND navn =" $_SESSION['Name'] "") or die(mysql_error());

unset $_SESSION["id"];
unset $_SESSION["Name"];
unset $_SESSION["sessionnr"];

header("location:../login.php");

?>

kan nogen fortælle mig hvor jeg har en fejl?
Avatar billede nielle Nybegynder
26. november 2005 - 11:53 #1
mysql_query("DELETE FROM onlineliste WHERE id =" . $_SESSION['id'] . " AND navn ='" . $_SESSION['Name'] . "'")
Avatar billede hansen24aar Nybegynder
26. november 2005 - 11:53 #2
jeg får følgende fejl når jeg trykker på logud

Parse error: parse error, unexpected T_VARIABLE in C:\Programmer\YellowTip\Htdocs\joy-palaze\dating\inc\logud.php on line 5
Avatar billede nielle Nybegynder
26. november 2005 - 11:55 #3
mysql_query("DELETE FROM onlineliste WHERE id =" . $_SESSION['id'] . " AND navn ='" . $_SESSION['Name'] . "'") or die(mysql_error());

- og:

header("location: ../login.php");

- i stedet for:

header("location:../login.php");
Avatar billede hansen24aar Nybegynder
26. november 2005 - 11:58 #4
nu får jeg en fejl i linie 8 og der er det hvor jeg laver en unset på mine sessions

fejlen lyder sådan her...

Parse error: parse error, unexpected T_VARIABLE, expecting '(' in C:\Programmer\YellowTip\Htdocs\joy-palaze\dating\inc\logud.php on line 8
Avatar billede hmortensen Nybegynder
26. november 2005 - 12:00 #5
unset($_SESSION['id']);
osv..
Avatar billede hansen24aar Nybegynder
26. november 2005 - 12:09 #6
i mit login scrip ser det sådan her ud...

<?php
    session_start();
    //hvis formen er sendt
    if(isset($_POST['login'])) {
   
    //Opkald til database og valg af datbase
   
    $db = mysql_connect("xxxxxx","xxxxxx","xxxxxx") or die("desværre ingen forbindelse til databasen");
    mysql_select_db("xxxxxx", $db) or die("kunne ikke vælge databasetabellen");
   
    $navn = mysql_escape_string($_POST["navn"]);
$password = mysql_escape_string($_POST["pass"]);

$tjek = mysql_query("SELECT id, navn, pass FROM profil WHERE navn='". $navn ."' AND pass='". $password ."' LIMIT 1") or die(mysql_error());

mysql_query("INSERT INTO onlineliste( id, navn ) VALUES('$id', '$navn')") or die(mysql_error());

   
    if(mysql_num_rows($tjek) != 0) {
    $row = mysql_fetch_array($tjek);
 
    $_SESSION["sessionnr"] = session_id();
    $_SESSION["Name"] = $row[navn];
    $_SESSION["id"] = $row["id"];
   

   
    header("location:index.php");
    }else{
    header("location:login.php?error=fejl");
    }
    }else{
    header("location:login.php");
    exit;
    }
    ?>

men selvom man ikke kan logge sig ind. det vil sige at skriver man et forkert brugernavn bliver du tilføjet onlinelisten alligevel. hvordan kan jeg ændre det?
Avatar billede hmortensen Nybegynder
26. november 2005 - 12:10 #7
Ryk din INSERT linie ind i if sætningen hvor du sætter sessionen.
Avatar billede hansen24aar Nybegynder
26. november 2005 - 12:11 #8
ok prøver lige
Avatar billede hansen24aar Nybegynder
26. november 2005 - 12:14 #9
hvordan får jeg den til at overføre det id nummer som man har når man bliver oprettet som bruger over i min onlineliste?

mere så hvis man vil se den andens profil ved at trykke navnet skal den vise profilen...

mit eneste problem er at id nummeret ikke rykker med over. så de er identiske med dem som står i min tabel som hedder profil
Avatar billede hmortensen Nybegynder
26. november 2005 - 12:16 #10
Jeg ville nok indsætte brugerens id i onlinelisten, og så lave en join til at hive navnet når listen skal skrives.
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:01 #11
hvordan vil det se ud?

kan du give mig et eksempel på det?
Avatar billede hmortensen Nybegynder
26. november 2005 - 13:07 #12
Du laver navne feltet i onlineliste om til bruger_id og sætter til en int, så kan du trække navnet ud sådan her:
SELECT navn FROM profil, onlineliste, WHERE profil.id = onlineliste.bruger_id AND onlineliste.id = x
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:17 #13
får denne fejl...

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 'WHERE profil.id = onlineliste.id AND onlineliste.id = x

mit script til min onlineliste ser sådan her ud

<?php
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0; // Hvis ikke offset er sat, sættes den til 0
$pr_side = 25; // Antal resultater pr. side

$sql = "
  SELECT navn FROM profil, onlineliste, WHERE profil.id = onlineliste.id AND onlineliste.id = x ORDER BY navn DESC
  LIMIT $offset,$pr_side 
  ";
$qh = mysql_query( $sql ) or die ( mysql_error() );
if ( mysql_num_rows( $qh ) > 0 )
{
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
    echo '<table border="0" width="400" align="center"><tr><td width="150"><a href="vis_profil.php?id=' . $row['id'] . '">' . $row['navn'] . '</a></td><td width="125">' . $row['sex'] . '</td><td width="125">' . $row['status'] . '</td></table>';
  }
}
else
{
  echo "Ingen Online profiler.";
};
?>
<?php
$antal = mysql_result(mysql_query('SELECT COUNT(*) FROM profil'),0); // Tæller antal poster i tabellen "tabel" (husk at ændre til den tabel du bruger)

if ($offset >= $pr_side) { // Tester om det er nødvendigt med et "forrige-link"
$forrige = $offset-$pr_side; // Finder ud af hvor forrige skal starte fra
echo "Forrige 25 profiler <a href='?offset=$forrige'><img src='../img/4071.gif' /></a> "; // Udskriver link
}
if ($antal > $offset+$pr_side) { // Tester om det er nødvendigt med et "næste-link"
$naeste = $offset+$pr_side; // Finder ud af hvor næste skal starte fra
echo "  <a href='?offset=$naeste'><img src='../img/4068.gif' /></a> Næste 25 profiler"; // Udskriver link
}
?>
Avatar billede hmortensen Nybegynder
26. november 2005 - 13:19 #14
Du skulle skifte x ud med id på en bruger, men du vil jo ha listet mere end en, så fjern "AND onlineliste.id = x"
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:21 #15
nu kommer denne fejl...

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 'WHERE profil.id = onlineliste.id ORDER BY navn DESC LIMIT 0,
Avatar billede hmortensen Nybegynder
26. november 2005 - 13:22 #16
Du har heller ikke skrevet hvad jeg skrev.
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:25 #17
i min onlineliste tabel har jeg følgende felter...

id bigint(20) not null auto_increment
navn int(11) not null
primary key id

skal jeg lave mit felt
navn int(11) not null om til
bruger_id int(11) not null
Avatar billede hmortensen Nybegynder
26. november 2005 - 13:26 #18
nej, id og bruger_id.
Du skal ikke ligge navn i onlinelisten, det hentes fra bruger tabellen.
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:31 #19
i mine profil tabel

hedder det

id bigint(20) not null auto_increment primary key

og nu har jeg kun i min onlineliste tabel denne line

id bigint(20) nut null auto_increment primary key

så hvad skal jeg så gøre nu
Avatar billede hmortensen Nybegynder
26. november 2005 - 13:36 #20
Læs min kommentar 26/11-2005 13:07:29
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:44 #21
dologin.php

<?php
    session_start();
    //hvis formen er sendt
    if(isset($_POST['login'])) {
   
    //Opkald til database og valg af datbase
   
    $db = mysql_connect("xxxxxx","xxxxxx","xxxxxx") or die("desværre ingen forbindelse til databasen");
    mysql_select_db("xxxxxx", $db) or die("kunne ikke vælge databasetabellen");
   
    $navn = mysql_escape_string($_POST["navn"]);
$password = mysql_escape_string($_POST["pass"]);

$tjek = mysql_query("SELECT id, navn, pass FROM profil WHERE navn='". $navn ."' AND pass='". $password ."' LIMIT 1") or die(mysql_error());



   
    if(mysql_num_rows($tjek) != 0) {
    $row = mysql_fetch_array($tjek);

mysql_query("INSERT INTO onlineliste(bruger_id) VALUES('$bruger_id')") or die(mysql_error());

    $_SESSION["sessionnr"] = session_id();
    $_SESSION["Name"] = $row[navn];
    $_SESSION["id"] = $row["id"];
   

   
    header("location:index.php");
    }else{
    header("location:login.php?error=fejl");
    }
    }else{
    header("location:login.php");
    exit;
    }
    ?>

onlineliste.php
Avatar billede hansen24aar Nybegynder
26. november 2005 - 13:44 #22
<?php
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0; // Hvis ikke offset er sat, sættes den til 0
$pr_side = 25; // Antal resultater pr. side

$sql = "
  SELECT navn FROM profil, onlineliste, WHERE profil.id = onlineliste.bruger_id ORDER BY bruger_id DESC
  LIMIT $offset,$pr_side 
  ";
$qh = mysql_query( $sql ) or die ( mysql_error() );
if ( mysql_num_rows( $qh ) > 0 )
{
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
    echo '<table border="0" width="400" align="center"><tr><td width="150"><a href="vis_profil.php?id=' . $row['id'] . '">' . $row['navn'] . '</a></td><td width="125">' . $row['sex'] . '</td><td width="125">' . $row['status'] . '</td></table>';
  }
}
else
{
  echo "Ingen Online profiler.";
};
?>
<?php
$antal = mysql_result(mysql_query('SELECT COUNT(*) FROM onlineliste'),0); // Tæller antal poster i tabellen "tabel" (husk at ændre til den tabel du bruger)

if ($offset >= $pr_side) { // Tester om det er nødvendigt med et "forrige-link"
$forrige = $offset-$pr_side; // Finder ud af hvor forrige skal starte fra
echo "Forrige 25 profiler <a href='?offset=$forrige'><img src='../img/4071.gif' /></a> "; // Udskriver link
}
if ($antal > $offset+$pr_side) { // Tester om det er nødvendigt med et "næste-link"
$naeste = $offset+$pr_side; // Finder ud af hvor næste skal starte fra
echo "  <a href='?offset=$naeste'><img src='../img/4068.gif' /></a> Næste 25 profiler"; // Udskriver link
}
?>
Avatar billede hmortensen Nybegynder
26. november 2005 - 14:00 #23
mysql_query("INSERT INTO onlineliste(bruger_id) VALUES('$bruger_id')") or die(mysql_error());
Her skal du indsætte brugerens id: $row['id']


SELECT navn FROM profil, onlineliste, WHERE profil.id = onlineliste.bruger_id ORDER BY bruger_id DESC
  LIMIT $offset,$pr_side 
Her skal du også vælge det andet data du vil ha udskrevet:
navn, sex, status, profil.id as id
Avatar billede hansen24aar Nybegynder
27. november 2005 - 12:30 #24
skal det så se sådan her ud...

mysql_query("INSERT INTO onlineliste($row['id']) VALUES('$bruger_id)") or die(mysql_error());
Avatar billede hmortensen Nybegynder
27. november 2005 - 12:32 #25
mysql_query("INSERT INTO onlineliste(bruger_id) VALUES('".$row['id']."')") or die(mysql_error());
Avatar billede hmortensen Nybegynder
27. november 2005 - 12:32 #26
Hov:
mysql_query("INSERT INTO onlineliste(bruger_id) VALUES(".$row['id'].")") or die(mysql_error());
Avatar billede hansen24aar Nybegynder
27. november 2005 - 12:40 #27
jeg får stadigvæk denne fejl selvom jeg har ændret det du har skrevet...

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 'WHERE profil.id = onlineliste.bruger_id ORDER BY bruger_id DESC

nu ser det sådan her ud...

dologin.php

<?php
    session_start();
    //hvis formen er sendt
    if(isset($_POST['login'])) {
   
    //Opkald til database og valg af datbase
   
    $db = mysql_connect("xxxxxx","xxxxxx","xxxxxx") or die("desværre ingen forbindelse til databasen");
    mysql_select_db("xxxxxx", $db) or die("kunne ikke vælge databasetabellen");
   
    $navn = mysql_escape_string($_POST["navn"]);
$password = mysql_escape_string($_POST["pass"]);

$tjek = mysql_query("SELECT id, navn, pass FROM profil WHERE navn='". $navn ."' AND pass='". $password ."' LIMIT 1") or die(mysql_error());



   
    if(mysql_num_rows($tjek) != 0) {
    $row = mysql_fetch_array($tjek);

mysql_query("INSERT INTO onlineliste(bruger_id) VALUES(".$row['id'].")") or die(mysql_error());

    $_SESSION["sessionnr"] = session_id();
    $_SESSION["Name"] = $row[navn];
    $_SESSION["id"] = $row["id"];
   

   
    header("location:index.php");
    }else{
    header("location:login.php?error=fejl");
    }
    }else{
    header("location:login.php");
    exit;
    }
    ?>

onlineliste.php

<?php
$offset = (isset($_GET[offset])) ? $_GET[offset] : 0; // Hvis ikke offset er sat, sættes den til 0
$pr_side = 25; // Antal resultater pr. side

$sql = "
  SELECT navn FROM profil, onlineliste, WHERE profil.id = onlineliste.bruger_id ORDER BY bruger_id DESC
  LIMIT $offset,$pr_side 

  ";
$qh = mysql_query( $sql ) or die ( mysql_error() );
if ( mysql_num_rows( $qh ) > 0 )
{
  while ( $row = mysql_fetch_assoc( $qh ) )
  {
    echo '<table border="0" width="400" align="center"><tr><td width="150"><a href="vis_profil.php?id=' . $row['id'] . '">' . $row['navn'] . '</a></td><td width="125">' . $row['sex'] . '</td><td width="125">' . $row['status'] . '</td></table>';
  }
}
else
{
  echo "Ingen Online profiler.";
};
?>
<?php
$antal = mysql_result(mysql_query('SELECT COUNT(*) FROM onlineliste'),0); // Tæller antal poster i tabellen "tabel" (husk at ændre til den tabel du bruger)

if ($offset >= $pr_side) { // Tester om det er nødvendigt med et "forrige-link"
$forrige = $offset-$pr_side; // Finder ud af hvor forrige skal starte fra
echo "Forrige 25 profiler <a href='?offset=$forrige'><img src='../img/4071.gif' /></a> "; // Udskriver link
}
if ($antal > $offset+$pr_side) { // Tester om det er nødvendigt med et "næste-link"
$naeste = $offset+$pr_side; // Finder ud af hvor næste skal starte fra
echo "  <a href='?offset=$naeste'><img src='../img/4068.gif' /></a> Næste 25 profiler"; // Udskriver link
}
?>
Avatar billede hmortensen Nybegynder
27. november 2005 - 12:41 #28
Der er et komma for meget efter onlineliste.
Avatar billede hansen24aar Nybegynder
27. november 2005 - 13:03 #29
men den vil ikke trække $row['sex'] og $row['status'] ud i min onlineliste
Avatar billede hansen24aar Nybegynder
27. november 2005 - 13:33 #30
den viser ikke at profilen har id nr 5 i linket når man vil se profilen.

echo '<table border="0" width="400" align="center"><tr><td width="150"><a href="vis_profil.php?id=' . $row['id'] . '">' . $row['navn'] . '</a></td><td width="125">' . $row['sex'] . '</td><td width="125">' . $row['status'] . '</td></table>';

det er i den line der...
Avatar billede hmortensen Nybegynder
27. november 2005 - 14:43 #31
Læs min kommentar 26/11-2005 14:00:45.
Avatar billede hansen24aar Nybegynder
27. november 2005 - 18:55 #32
hmortensen kom lige med et svar så kan du få pointene det virker nu. tak for din hjælp. det var helt kanont...
Avatar billede hmortensen Nybegynder
27. november 2005 - 19:00 #33
Det var så lidt. Håber lærte lidt også, så du selv kan komme videre en anden gang :)
Avatar billede hansen24aar Nybegynder
27. november 2005 - 19:14 #34
har du egentlig msn?

tænkte på vi måske kunne snakke sammen derover...
Avatar billede hmortensen Nybegynder
27. november 2005 - 19:55 #35
Jeg benytter ikke MSN sammen med eksperten, men hvis du har andre spørgsmål, er du velkommen til at spørge :)
Avatar billede hansen24aar Nybegynder
29. november 2005 - 11:20 #36
ja jeg har et spørgsmål mere. når man går ind i onlinelisten og vil se en anden bruger der er online. og klikker på navnet som står som et link viser den ens egen profil men ikke den man har klikket på...
Avatar billede hmortensen Nybegynder
29. november 2005 - 11:22 #37
Er det det rigtige id der står i linket?
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