2012-06-27 2 views
0

아래의 mysqli 코드의 문제점을 파악하려고합니다. 데이터가 분명히 테이블에 있습니다. 질문이 두 개 있습니다.이 mysqli 쿼리의 문제점은 무엇입니까?

  1. 왜 결과가 나옵니까?
  2. 별도의 PHP 파일에 echo <table></table> 섹션이있을 수 있습니까? 예일 경우 $name,$partner,$cell 등으로 전화하는 방법은 무엇입니까?

    <?php 
    
        $mysqli = new mysqli($host, $uname, $pword, $db); 
    if ($mysqli->connect_errno) 
    { 
    echo "Connection failed: %s\n", $mysqli->connect_error; 
    exit(); 
    } 
    
        $query = ("SELECT * FROM contacts WHERE contacttype IN ('Buyer','Seller','Buyer/Seller','Investor') AND leadstatus = 'New' ORDER BY date DESC"); 
    
        $result = $mysqli->query($query); 
    
        while ($row = $result->fetch_array()) { 
    
        $space = (!empty($row['firstname']) && !empty($row['lastname'])) ? ' ' : '';   
        $name = $row['firstname'].$space.$row['lastname'];  
        $partner = $row['spousefirst']; 
        $cell = (!empty($row['phonecell'])) ? " {$row['phonecell']} (cell)" : ''; 
        $email = (!empty($row['email'])) ? " {$row['email']} (email)" : ''; 
        $ID = $row['ID']; 
    
        echo'<table> 
        <tbody> 
        <tr> 
        <td><input type="checkbox" name="" id="" value="<? echo $ID; ?>"></td> 
        <td><a href="/backend/leads/view/?ID=<? echo $ID; ?> "><strong><? echo $name; ?></strong></a></td> 
        <td><a href="/backend/leads/view/?ID=<? echo $ID; ?> "><? echo $partner; ?></a></td> 
        <td><? echo $phonecell; ?></td> 
        <td><a href="mailto:<? echo $email; ?>"><? echo $email; ?></a></td> 
        <td><? echo date("M jS, g:i A", strtotime($date)); ?></td> 
        <td><? echo $contacttype; ?></td> 
        <td><? echo $agentassigned; ?></td> 
        <td><? echo $leadstatus; ?></td> 
        <td><a href="/backend/contacts/notes.php?ID=<? echo $ID; ?>">View </a>+ </td> 
        <td><a href="/backend/contacts/todo.php?ID=<? echo $ID; ?>">View </a>+ </td> 
        <td><a href="/backend/contacts/deletesuccess.php?ID=<? echo $ID; ?>">D</a></td> 
        </tr> 
        </tbody> 
    </table>'; 
        } 
        ?> 
    

편집 :

그냥 나를 $ 이름, $ 이메일 ... 요법에 대한 가치를 제공하지 <table>을 보여주는하지만입니다.

+0

오류가 반복됩니다. ('New', 'Buyer', 'Seller', 'Buyer/Seller', 'Investor') AND leadstatus = '새로운 ORDER BY 날짜 DESC' 또는 die (mysql_error);'참조 : http://forums.devarticles.com/mysql-development-50/mysql-where-in-function-2031.html –

+0

쿼리 결과가 확실합니까? MySQL 커맨드 라인/phpMyAdmin에서 실행을 시도 했습니까? – CodeZombie

+0

쿼리를 분할하고 예상되는 데이터가 테이블에 있는지 확인하는 중입니다. – Usman

답변

2

에 PHP 설명서 마지막 반향이 잘 구축 보이지 않는를 참조하십시오. 변수를 출력하기 위해 연결 문자열을 사용하는 것을 선호합니다 (예 : 몇 줄만 넣었습니다).

echo'<table> 
<tbody> 
    <tr> 
    <td><input type="checkbox" name="" id="" value="'. $ID .'"></td> 
    <td><a href="/backend/leads/view/?ID='. $ID .'"><strong>'. $name.' </strong></a></td> 
+0

그리고 그것은 내 문제에 대한 해결책이 될 것입니다! 고맙습니다!!! – Josh

2

나머지 코드와 마찬가지로 쿼리가 견고합니다. 여기에 몇 가지 문제 해결을 시도하는 단계는 다음과 같습니다 $query 밖으로

  1. echo은 당신의 데이터베이스에 대해 직접 실행합니다. 결과가 있습니까? 직접 쿼리에서 결과를 얻지 못하면 쿼리가 0 행을 반환하고 테이블도 비어있게됩니다.
  2. var_dump($result)에 정보가 저장되어 있는지 확인하십시오. 당신은 또한 당신에게 일이 잘못 어디로 가고 있는지에 대한 좋은 아이디어를 줄 것이다 다음 2 단계에서 $result = $mysqli->query($query) or die $mysqli->error;

결과에 변화 $result = $mysqli->query($query);를 추가 할 수 있습니다. 일반적으로 쿼리 프로세스의 각 부분을 중단하고 관련된 모든 변수를보고 그 안에 저장된 데이터가 있는지 확인하려고합니다.

두 번째 질문에 대답하려면 다음과 같이하십시오. 테이블의 코드를 별도의 파일에 넣은 다음 include() 코드를 입력하면 포함 된 코드에서 변수를 계속 사용할 수 있습니다.

include()

+0

$ query 다음에'echo $ query'를하면됩니까? 나는 배우고있다! 쿼리 창에서 $ 쿼리를 시도하고 5 개의 결과가 나타납니다. – Josh

+0

고마워, 나는 두 가지 제안을 시도했지만 여전히 아무것도 얻지 못했다. 쿼리는'$ name','$ partner' 등을 제외하고는 5 행을 반환합니다. 다른 제안은 없습니까? – Josh

관련 문제