2013-09-22 1 views
1

데이터베이스에 연결하면 모두 정확합니다. 선택을 수행하면 모두 올바로 처리됩니다. 그러나 모든 행을 얻으려고 할 때 문제가 발생합니다. 나는모든 행을 가져와 하나만 표시

$registros = mysql_query("SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76", $con); 
$reg = mysql_fetch_array($registros); 

if(($reg) 
{ 
    echo $reg; 

} 
+0

[기본 MySQL/PHP 튜토리얼] (http://devzone.zend.com/12/php-101-part-8-databases-and-other-animals_part-1/)을 제안합니다. –

+0

hahaahah xD 네 테이블은 그 이름입니다. 이상하게 보입니다.하지만 각 사용자마다 테이블이 자동 생성됩니다 ... 나는 Joachim을 넣으려고했으나 작동하지 않습니다. – kartGIS

+0

사용자 당 1 테이블? 그게 정말 나쁜 생각 같아요. –

답변

4

처럼 원하는 쿼리에서 지정 1. 표시됩니다 당신이 사용되어야한다 PDO 또는 MySQLi.

과 같을 것이다 PDO에게 코드를 사용 :

<?php 
// Your database info 
$db_host = ''; 
$db_user = ''; 
$db_pass = ''; 
$db_name = ''; 

$con = new PDO("mysql:host={$db_host};dbname={$db_name}", $db_user, $db_pass); 
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 

$sql = "SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76"; 
$result = $con->prepare($sql); 
$result->execute(); 

$reg = $result->fetchALL(PDO::FETCH_ASSOC); 
$con = NULL;   
print_r($reg); 
// To show just one row you can use: 
print_r($reg[0]); 
// So let's say you have a field called "name", then u could use: 
echo $reg[0]['name']; 
당신은,이 배열 $reg에 모든 데이터를 저장합니다 결과를 반복 할 필요가

:

<?php 
// your database info here 
$db_host = ''; 
$db_user = ''; 
$db_pass = ''; 
$db_name = ''; 

$conn = mysql_connect($db_host, $db_user, $db_pass);  
if (!$conn) 
{ 
    die("Unable to connect to DB: " . mysql_error()); 
} 

if (!mysql_select_db($db_name)) 
{ 
    die("Unable to select {$db_name}: " . mysql_error()); 
} 

$sql = "SELECT * FROM 22bf654e4dfa688d0ec6add2f6f7bf76";  
$registros = mysql_query($sql); 
if (!$registros) 
{ 
    die("Error: " . mysql_error()); 
} 
$reg = array(); 
while ($row = mysql_fetch_assoc($registros)) 
{ 
    $reg[] = $row; 
} 

print_r($reg); 
// To show just one row you can use: 
print_r($reg[0]); 
// So let's say you have a field called "name", then u could use: 
echo $reg[0]['name']; 
+0

'22bf654e4dfa688d0ec6add2f6f7bf76'은 테이블 이름이 아니라 행 ID라고 생각합니까? –

+1

@Dagon 응용 프로그램이 죽을 것이고 그에게 우리가 올바른 방향으로 그를 가리킬 수 있도록 우리에게 알려주는 오류를 알려줄 것입니다. – Prix

+0

응용 살인은 죄이다 –

1

당신은 대신 mysqlmysqli을 사용해야합니다 모든 mysql_fetch (배열, ASSOC ...)와 시도,하지만 완전히 다른 대답.

while($row = mysql_fetch_array($result)) { 
    echo $row['column-name-here']; 
} 

쿼리의 모든 결과가 반복됩니다. 당신은 단지 1 개 개의 결과가있는 경우, 그것은 단지 당신은 단지 한 결과를 원한다면, 어떤 당신이 mysql_ 라이브러리가 지원되지 않습니다 명심

SELECT * FROM table WHERE something = something; 
0

$ reg는 모든 행의 배열입니다. 당신은 print_r($reg[0])

그러나 더 나은 아직, 즉 해당 행

당신은 단지 첫 번째 행을 원하는 경우에 대한 열의 배열되기 때문에 각 반복에 에코의에서 print_r 대신 다음을 반복하는 foreach 문을 사용하려면 더 나은 성능을 위해 쿼리 또는 제한 문에서 where 절을 사용하십시오. 필요한 것보다 더 많은 데이터를 반환하지 마십시오.

관련 문제