मैं डेटाबेस से स्थान नामों की अल्पविराम से अलग सूची वापस करने का प्रयास कर रहा हूं।

अब तक मेरे पास SQL ​​​​कथन है जो मुझे पता है कि काम करता है क्योंकि यह phpMyAdmin में परीक्षण किए जाने पर सही परिणाम देता है।

अब मैं परिणामों को वापस करने और PHP में स्क्रीन पर मुद्रित करने का प्रयास कर रहा हूं।

मेरे पास जो कोड है वह केवल पहला परिणाम लौटाता है।

 $sql = "SELECT user_locations.location_id, location.name AS LocName FROM user_locations INNER JOIN location ON user_locations.location_id=location.id WHERE user_id = '" . $id . "'";
 $query = mysqli_query($conn, $sql);
 while ($row = $query->fetch_assoc()) {
    $array[] = $row['LocName'];
    $comma_separated = implode(",", $array);
    return $comma_separated;
 }  
-1
Jack Crozz 22 जिंदा 2020, 01:24

1 उत्तर

सबसे बढ़िया उत्तर

आपको अपने while लूप के बाहर implode और return को हटाना होगा, अन्यथा आपका लूप पहले मान के बाद रुक जाएगा:

$sql = "SELECT user_locations.location_id, location.name AS LocName 
        FROM user_locations 
        INNER JOIN location ON user_locations.location_id=location.id 
        WHERE user_id = '" . $id . "'";
$query = mysqli_query($conn, $sql);
while ($row = $query->fetch_assoc()) {
    $array[] = $row['LocName'];
}  
$comma_separated = implode(",", $array);
return $comma_separated;

ध्यान दें कि आप GROUP_CONCAT:

$sql = "SELECT GROUP_CONCAT(location.name) AS LocName
        FROM user_locations 
        INNER JOIN location ON user_locations.location_id=location.id
        WHERE user_id = '" . $id . "'";
$query = mysqli_query($conn, $sql);
$row = $query->fetch_assoc();
$comma_separated = $row['LocName'];
return $comma_separated;

ध्यान दें कि आपके $id मान के स्रोत के आधार पर, आपको तैयार स्टेटमेंट

-1
Nick 21 जिंदा 2020, 22:47