user10303291
user10303291

Reputation:

Display multiple values from MySQL


Iam a New Beginner of PHP
Here is My Table's Sceenshot.Click Here to see Sceenshot
I want to display All value of "education" .

Such as :

 My 1st value is 53
 My 2nd value is 43
 My 3rd value is 57
 My 4th value is 44

Upvotes: 1

Views: 76

Answers (2)

waterloomatt
waterloomatt

Reputation: 3742

As u_mulder pointed out, you can use explode to split the string into an array of values and then iterate over that list - http://php.net/manual/en/function.explode.php

Below, I have defined a new function called ordinal which will output 1st, 2nd, 3rd etc. given any number.

In addition to that, you can sprintf to format a string with placeholders.

Example http://sandbox.onlinephpfunctions.com/code/1459ec55d6bc9f28a03645625a22261ede093342

EDIT Added code to turn on error reporting.

<?php

// Turn on error reporting
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Turn MySQL errors into PHP exceptions
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Establish DB connection
$db = new mysqli("localhost","username","password","dbname");
$sql = "select * from tbldatingusermaster order by userid desc";
$result = $db->query($sql);

while($data = $result->fetch_object()){
    // Split the list of values into an array
    $arrayOfEducationValues = explode(',', $data->education);

    // Define what you want your output to look like.
    $format = "My %s value is %d \n";

    // Loop over the list of values and then output each one using the 
    // formatted string
    foreach ($arrayOfEducationValues as $key => $education) {
        // `$key` here refers to current index of the array. Since
        // array idexes usually start at 0 you need to add `1` to it.
        echo sprintf($format, ordinal($key+1), $education);
    }
}

/*
* Taken from https://stackoverflow.com/a/3110033/296555
*/
function ordinal($number) {
    $ends = array('th','st','nd','rd','th','th','th','th','th','th');
    if ((($number % 100) >= 11) && (($number%100) <= 13))
        return $number. 'th';
    else
        return $number. $ends[$number % 10];
}

Upvotes: 1

Sanjit Bhardwaj
Sanjit Bhardwaj

Reputation: 893

$education = explode(',', $data->education); // explode it using comma 

for($i=0;$i<count($education);$i++){ // iterate the array
    echo $education[$i];
 }

Upvotes: 0

Related Questions