webForumDet fria alternativet

Hjälp med php igen

7 svar · 470 visningar · startad av AndreasC

AndreasCMedlem sedan mars 20011 964 inlägg
#1

Undrar över följande i php.

Har två rader i php:

echo $_SESSION['sess_user']."<br />";
$result = mysql_query("SELECT * FROM members WHERE user='text'")

Med första raden skriver jag ut namnet på den användare som är inloggad med sessions och i slutet av andra raden anger jag ett where-villkor för fältet user i tabellen members Här vill jag att php-koden ska hämta data från den rad i tabellen i mySQL där fältet user innehåller samma värde som värdet för den inloggade användaren.

T.ex. om jag loggar in som AndreasC, då står det AndreasC som inloggad användare. Med $result vill jag hämta information från den raden där det står AndreasC i fältet user. På raden $result, vad kan jag skriva istället för text?

voigtann1Medlem sedan juni 20019 519 inlägg
#2

beror lite på hur din php.ini fil ser ut (har jag för mig) men du kan

$result = mysql_query("SELECT * FROM members WHERE user='$_SESSION['sess_user']'")

eller

$result = mysql_query("SELECT * FROM members WHERE user='"+$_SESSION['sess_user']+"'")
AndreasCMedlem sedan mars 20011 964 inlägg
#3

Det funkade inte. Hela koden ser ut såhär.

<?php
session_start(); // Alltid överst på sidan

// Kolla om inloggad = sessionen satt
if (!isset($_SESSION['sess_user'])){
header("Location: home.php");
exit;
}

?>

<?php

            // ansluter till databasen
            $opendb = mysql_connect("localhost", "admin", "") or die(mysql_error());
            mysql_select_db("kundbas") or die(mysql_error());

            // hämtar information från den angivna tabellen
            $result = mysql_query("SELECT \* FROM members WHERE user='"+$\_SESSION\['sess_user'\]+"'")
            or die(mysql_error());

            // hämtar resultatrader från tabellen
            while($row = mysql_fetch_array( $result ))
                 {
                 // skriver ut innehållet radvis
                 echo $row\['name'\]."\<br /\>";
                 echo $row\['adress'\]."\<br /\>";
                 echo $row\['postnr'\]." ";
                 echo $row\['postadrs'\]." ";
                 echo "\<br /\>";
                 }

            // stänger databasen
            mysql_close($opendb);

            ?\>

Jag får:
Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\webshop\kassa.php on line 145

Rättelse: Med det första alternativet får jag Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\wamp\www\webshop\kassa.php on line 145, och med det andra för jag syntaxfel.

SPiNMedlem sedan mars 20007 896 inlägg
#4

voigtann1 skrev:

beror lite på hur din php.ini fil ser ut (har jag för mig) men du kan

$result = mysql_query("SELECT * FROM members WHERE user='{$_SESSION['sess_user']}'")

eller

$result = mysql_query("SELECT * FROM members WHERE user='" . $_SESSION['sess_user'] . "'")

Formaterade om koden så att det ska fungera. I PHP använder man . för strängkonkatenering.

voigtann1Medlem sedan juni 20019 519 inlägg
#5

byt ut + med .

AndreasCMedlem sedan mars 20011 964 inlägg
#6

Nu funkar det, tack :)

GeinMedlem sedan sep. 20005 700 inlägg
#7

Försök använda mer beskrivande rubriker nästa gång! :)

@ndersMedlem sedan juni 200032 969 inlägg
#8

... och [php]-taggar runt kod. :)

132 ms totalt · 3 externa anrop · v20260731065814-full.2b84b982
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
129 ms — hämta tråd, inlägg och bilagor (db)