2012-02-15 5 views
1

나는 내 사이트에 다음과 같은 PHP 코드를 가지고 :는 웹 페이지에 결과

$query="SELECT lastname FROM user"; 
$result=mysql_query($query); 

user이의 이름입니다 동안 나는 내 웹 페이지에 표시 할 필드의 이름, lastname입니다 테이블 그 자체. 내 웹 사이트의

HTML 본문은 다음이 작동하지 않습니다

Welcome <?php echo $_SESSION['$result']; ?>. 

, 누군가가 저를 도와주십시오 수 있습니다.

답변

2

$result에는 리소스 핸들러 만 포함됩니다. 당신은 행을 가져 오기 위해 그것을 사용

<?php  
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($result); 
?> 
Welcome <?php echo $row['lastname'] ?> 
+0

감사합니다. 작동하지 않는 것 같습니다. s – Jacob

+0

"작동하지 않습니다"어떤 식으로 나타 납니까? 오류 메시지? 잘못된 출력입니까? 너무 많은 출력? – sarnold

+0

@sarnold 그 옆에 아무 것도 환영하지 않습니다. 오류가 없습니다 – Jacob

0

당신은 할 것이다 :

<?php 
$query = "SELECT lastname FROM user"; 
$result = mysql_query($query); 
$row = mysql_fetch_assoc($query); 
?> 
Welcome <?php echo $row['lastname']; ?>. 

배열 $row 선택한 행의 모든 ​​값을 포함합니다.

1

$ 결과는 "자원"이며 쿼리 결과를 포함합니다. 그러나, 당신이 아마 원하는 것은

$query="SELECT lastname FROM user"; 
$result=mysql_query($query); 


while (($row = mysql_fetch_array($result)) !== FALSE) { 
    echo "The lastname for this row is " . $row['lastname'] . "<br />"; 
} 

당신은 또한 몇 가지가 있습니다 mysql_fetch_assoc

+0

+1 실제로 응답이 있었는지 확인하기 위해 – DaOgre

+0

@DaOgre 어떻게 대답합니까? 환영합니다 Jacob

+0

MySQL 연결에 문제가있는 것 같습니다. 데이터베이스가 올바르게 설정 되었습니까? '$ query = "SELECT * FROM user"를 시도하십시오; $ result = mysql_query ($ query); $ row = mysql_fetch_assoc ($ result); print_r ($ result);' – DaOgre

1

을 조사한다 (즉, 쿼리가 '사용자'의 모든 행의 LASTNAME을 반환하기 때문에) 모든 결과를 통해 루프입니다

  1. 쿼리가 테이블이 아니라 하나에서 모든 lastname 's을 (를) 선택 : 여기없는 것. 당신은 아마 이런 질의를 필요로한다 (당신이 그들의 이름을 저장하는 곳 가정 $ _SESSION은 [ '사용자 이름']입니다) :

    $query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";"; 
    
  2. 코드는 실제로 결과 세트를 가져 오지 않습니다. 그냥 쿼리를 실행합니다. 당신은 결코 $_SESSION['$result']을 설정하지하고

    $row = mysql_fetch_assoc($result); 
    
  3. : 당신은 결과 집합의 첫 번째 행을 얻을 수 mysql_fetch_assoc()를 실행해야합니다.

    $_SESSION['lastname'] = $row['lastname']; 
    

    을 그리고처럼 에코 : 당신은 너무 같은 변수를 설정해야합니다 모두 함께 퍼팅

    Welcome <?php echo $_SESSION['lastname']; ?>. 
    

:

<?php 
$query="SELECT lastname FROM user WHERE username = " . $_SESSION['username'] . ";"; 
$result=mysql_query($query); 
$row = mysql_fetch_assoc($result); 
$_SESSION['lastname'] = $row['lastname']; 
?> 
<html> 
<head> 
    <title>My page</title> 
</head> 
<body> 
    Welcome <?php echo $_SESSION['lastname']; ?>. 
</body> 
</html> 
+0

위의 코드를 입력했지만 옆에 아무 것도 환영하지 않습니다. – Jacob

+2

'$ _SESSION [ 'username']'은 SQL 삽입 공격의 벡터 일 수 있습니다. – sarnold

+1

@ sarnold 죄송하지만 그게 무슨 뜻입니까? – Jacob

0

는 mysql_query 그렇게 표시하는 리소스를 반환합니다 그것은 곧바로 올바른 일이 아닙니다. 당신은 더 나은 사용할 수 있습니다

while($row=mysql_fetch_array($result)) 
{ 
//echo the relevant fields. 
    echo(row[0]); 
} 

또한 자원의 전체를 덤프하는 방법 인 print_r 사용할 수 있습니다. 코드에 다른 오류가있는 경우 echo (mysql_error())를 사용하십시오. PHP 사이트에서 mysql_query 문서를 많이 읽었으므로이 문서를 읽어야한다.

관련 문제