확인

2011-01-27 3 views
5

나는 PHP는 변수가 : $foo확인

내 MySQL의 테이블 data라고

다음과 같은 구조를 가지고 :

id var header 

1  zj3  http://google.com 
내가 $foo 있는지 확인하고 싶습니다

var의 모든 준비가 열.

그것이 내가

방법이 접근 할

header ("http://google.com") 에코하고자하는 경우?

미리 감사드립니다. 명확한 설명이 필요한지 물어보십시오. 당신의 편집

+0

그래서 테이블에 값이 없으면 행을 반환하겠습니까? 나는 혼란스러워. –

+0

@Rocket 거대한 오타를 유감스럽게 생각합니다! 내 질문을 수정했습니다. 덕분에 – Trufa

+0

. 그건 이제 이해가 되네 .-P –

답변

9

귀하의 질문은 다음과 같아야합니다

SELECT `header` FROM `data` WHERE `var` = '$foo' 

$foovar 값으로 모든 헤더를 반환합니다.

$db = mysqli_connect('localhost', 'username', 'password', 'database'); 
if($query = mysqli_query($db, "SELECT `header` FROM `data` WHERE `var` = '$foo'")){ 
    while($row = mysqli_fetch_assoc($query)){ 
    echo $row['header']; 
    } 
    mysqli_free_result($query); 
} 
+0

그래서 내가 비어있는 것과 비교한다면, 그 값이 존재하는지 알 수있을 것입니다. 어떤 가치를 찾지 못하면 어떻게 되겠습니까? – Trufa

+0

아무것도 찾지 못하면 아무 것도 반환하지 않습니다 ('$ query'는'FALSE'가됩니다). –

+0

@Trufa : '비어있는 것과 비교하면 가치가 있는지 알 수 있습니까?'라는 의미는 무엇입니까? –

1

먼저 DB

$query = mysql_query("SELECT var, header FROM data WHERE id='1'") or die(mysql_error()); 
while($row = mysql_fetch_assoc($query)){ 
    if($foo == $row['var']){ 
     echo $row['header']; 
    } 
} 

편집에 연결? 원하는 경우 여기 $foo==var.

$foo='somevalue'; 
$query="SELECT id, var, header FROM `data` WHERE var='$foo'"; 
$result=mysqli_query($query); 
if($result->num_rows==0) 
    $loc= 'http://google.com';//default value for when there is no row that matches $foo 
}else{ 
    $row=$result->fetch_assoc(); //more than one row is useless since the first header('Location: x') command sends the browser to a new page and away from your script. 
    $loc=$row['header']; 

} 
header ("Location: $loc); 
exit; 

ETA : 질문을 편집 했으므로 검색 값이 var 열과 일치하는 경우 헤더 열을 표시합니다. 위의 내용은 작동하지 않습니다.

+0

이것은 의미가 있습니다. 빠른 응답을 보내 주시면 사용해 보겠습니다. – Trufa

+0

그것은 말합니다 : "데이터베이스가 선택되지 않았습니다"왜 이것이 가능합니까? – Trufa

+0

@Trufa : 먼저 mysql_connect를 사용하여 DB에 연결해야합니다. –

1

에 평등 문을 기반으로 변경된 당신은 $foo 일치 묻는 된 모든 data의 필드, 또는 $foo=some_field 경우 :

+0

예, 정확합니다. 검색 값이 var 열과 일치하는 경우 헤더 열을 반향시키고 싶습니다. – Trufa

0

$ var의 값이 해당 열 (모든 행)의 어느 위치에 있는지 알고 싶습니까?

SELECT COUNT(id) FROM data WHERE var = ?; 

결과는 var 필드에 $ var 값이 들어있는 행 수입니다.

1

내가 전혀 이해하지 못한다면, 이것이 도움이 될 것입니다.

// Query Variable/Contains you database query information 
$results = $query; 

// Loop through like so if the results are returned as an array 
foreach($results as $result) 
{ 
    if(!$result['var']) 
     echo $result['header']; 
} 

// Loop through like so if the results are returned as an object 
foreach($results as $result) 
{ 
    if(!$result->var) 
     echo $result->header; 
} 
0

다음은 "존재하지 않는"질문에 대한 템플릿입니다.

이것은 실제로 지금까지 저에게 효과적이었으며 더 이상 사용되지 않습니다.

if ($query = mysqli_query($link, "SELECT header FROM data WHERE var = '$foo'")) { 

     $header = mysqli_fetch_assoc($query); 

     if ($header) { 

      // The variable with value $foo exists. 
     } 
     else { 

      // The variable with value $foo doesn't exist. 
     } 
    } 
    else { 

     // The query didn't execute for some reason. (Dammit Obama!) 
    } 

경고!

변수 $ 쿼리mysqli_query 사이의 비교를 존재하지 않는 경우에도() 항상 TRUE를 반환합니다.

비교를 위해 FALSE을 반환하는 유일한 방법은 쿼리 구문 오류 때문입니다.

허용 된 답변을 작성한 사람이 어째서 작동하는지 모르겠다. 어쩌면 업데이트가되었거나 구문 오류가 있었을 가능성이 있는지 확인하지 않았다고 확신했다. TRUE .

그래서, 허용 대답은 잘못 "첫 번째 줄에서 {전에 다른 추가)"

:

여기에 자신의 구문을 수정을 위해 만든 주석 사람입니다!