- 동일한 데이터베이스에 각각 데이터가있는 두 개의 MySQL 테이블이 있습니다.
- 동적 PHP 테이블의 첫 번째 MySQL 테이블의 데이터를 보여주는 PHP 결과 페이지가 있습니다.
- 첫 번째 MySQL 테이블의 필드 중 하나는 두 번째 MySQL 테이블의 데이터와 관련된 쉼표로 구분 된 ID 목록입니다.
- 행 ID가 첫 번째 MySQL 테이블의 쉼표로 구분 된 필드에 나타날 때 두 번째, 내포/내장 동적 PHP 테이블을 첫 번째 동적 PHP 테이블 내에 두 번째 MySQL 테이블의 데이터를 가져옵니다. 이제 때
<?php if (!function_exists("GetSQLValueString")) { function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") { if (PHP_VERSION < 6) { $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue; } $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue); switch ($theType) { case "text": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "long": case "int": $theValue = ($theValue != "") ? intval($theValue) : "NULL"; break; case "double": $theValue = ($theValue != "") ? doubleval($theValue) : "NULL"; break; case "date": $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL"; break; case "defined": $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue; break; } return $theValue; } } mysql_select_db($database_TravelSite, $TravelSite); $query_Route = "SELECT * FROM SavedRoutes WHERE RouteCode = '".$_GET['rc']."'"; $Route = mysql_query($query_Route, $TravelSite) or die(mysql_error()); $row_Route = mysql_fetch_assoc($Route); $totalRows_Route = mysql_num_rows($Route); ?> <!doctype html> <html> <head> <meta charset="utf-8"> <title>Untitled Document</title> </head> <body> <p> </p> <p> </p> <table border="0"> <tr> <td>ID</td> <td>StartPoint</td> <td>StartPointLatLng</td> <td>EndPoint</td> <td>EndPointLatLng</td> <td>Waypoints</td> <td>Name</td> <td>Details</td> <td>RouteCode</td> </tr> <?php do { ?> <tr> <td><?php echo $row_Route['ID']; ?></td> <td><?php echo $row_Route['StartPoint']; ?></td> <td><?php echo $row_Route['StartPointLatLng']; ?></td> <td><?php echo $row_Route['EndPoint']; ?></td> <td><?php echo $row_Route['EndPointLatLng']; ?></td> <td><p><?php echo $row_Route['Waypoints']; ?></p> <?PHP $string = $row_Route['Waypoints']; $slashstring = stripslashes($string); $trimstring = rtrim($slashstring, "', '"); mysql_select_db($database_TravelSite, $TravelSite); ?> <p>echo $trimstring = <?PHP echo $trimstring; ?></p> <table border="0"> <tr> <td>id</td> <td>Lng</td> <td>Lat</td> <td>Name</td> </tr> <?php mysql_select_db($database_TravelSite, $TravelSite); $query_Markers = "SELECT * FROM markers WHERE ID IN('".$trimstring."')"; $Markers = mysql_query($query_Markers, $TravelSite) or die(mysql_error()); $row_Markers = mysql_fetch_assoc($Markers); $totalRows_Markers = mysql_num_rows($Markers); do { ?> <tr> <td><?php echo $row_Markers['id']; ?></td> <td><?php echo $row_Markers['Lng']; ?></td> <td><?php echo $row_Markers['Lat']; ?></td> <td><p> <select multiple name="waypoints" id="waypoints"> <?php do { ?> <option selected value="<?php echo $row_Markers['Lat'] . ", " . $row_Markers['Lng']?>"><?php echo $row_Markers['Lat'] . ", " . $row_Markers['Lng']?></option> <?php } while ($row_Markers = mysql_fetch_assoc($Markers)); $rows = mysql_num_rows($Markers); if($rows > 0) { mysql_data_seek($Markers, 0); $row_Markers = mysql_fetch_assoc($Markers); } ?> </select> </p> <p><?php echo $row_Markers['Name']; ?></p></td> </tr> <?php } while ($row_Markers = mysql_fetch_assoc($Markers)); ?> </table> <p> </p></td> <td><?php echo $row_Route['Name']; ?></td> <td><?php echo $row_Route['Details']; ?></td> <td><?php echo $row_Route['RouteCode']; ?></td> </tr> <?php } while ($row_Route = mysql_fetch_assoc($Route)); ?> </table> </body> </html> <?php mysql_free_result($Markers); mysql_free_result($Route); ?>
(즉, 첫 번째 동적 PHP 테이블의 열 중 하나는 아래의 PHP/HTML을 참조 두 번째 MySQL의 테이블
의 데이터를 두 번째, 중첩 된 동적 PHP 테이블을 포함 (두 번째 표는 첫째 테이블의 쉼표로 구분 된 필드에 나타납니다 에서 즉, 하나의 ID)는 중첩 테이블에서 하나 개의 항목 만있을 경우
- : 지금까지 나는 다음과 같은 상황이 발생 페이지를 실행 , 그러면 완벽하게 렌더링됩니다.
- 그러나 둘 이상 (예 : 쉼표로 구분 된 개의 ID에 여러 개의 ID가있는 경우)은 첫 번째 항목을 무한대로 렌더링하고 브라우저를 중단합니다.
내가 뭘 잘못하고 있니? 분명히 중첩 테이블은 내가하려는 것을 수행하는 올바른 방법이 아닙니다! n00b하지만 무엇입니까?
관련 PHP 코드를 제공해 주실 수 있습니까? – hank
또한 원하는 쿼리 결과의 체계를 제공하십시오. – Roy
좋습니다, 장군님에 대해 이야기하는 것이 아니라 구체적으로 말하기가 쉽습니다. 원래 게시판을 편집합니다 – user1259798