Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Προσπαθω εδω και ωρες να μου βγει το JSON να εχει μονο url's μεσα, αλλα το καλυτερο που εχω καταφερει εως τωρα ειναι το παρακατω. Οτι αλλο και αν δοκιμασα μου πεταει ενα undefined...  :cry:

 

JSON:

 

 

{  
   "0":{  
      "user_id":2,
      "url":"http://www.omdbapi.com/?t=inception&y=&plot=short&r=json"
   },
   "1":{  
      "user_id":2,
      "url":"http://www.omdbapi.com/?t=matrix&y=&plot=short&r=json"
   },
   "user_id":2,
   "url":"http://www.omdbapi.com/?t=equilibrium&y=&plot=short&r=json"
}

 

 

 

 

 

PHP:

 

 

// Fetch movies for the specified user.
function fetchUserMovies($user_id){
    try {
        global $db_table_prefix;
 
        $db = pdoConnect();
 
        $sqlVars = array();
 
        $results = array();
 
        //$query = "select {$db_table_prefix}user_movies.user_id as user_id from {$db_table_prefix}user_movies where {$db_table_prefix}user_movies.user_id = :user_id";
 
$query = "select * from {$db_table_prefix}user_movies";
 
        $stmt = $db->prepare($query);
 
        $sqlVars[':user_id'] = $user_id;
 
        $stmt->execute();
 
        /* if ($r = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $results = $r;
        }
 
while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $results[] = $r;
        } */
 
$results = $stmt->fetch();
 
        $stmt = null;
 
        return json_encode($results);
 
    } catch (PDOException $e) {
        addAlert("danger", "Oops, looks like our database encountered an error.");
        error_log("Error in " . $e->getFile() . " on line " . $e->getLine() . ": " . $e->getMessage());
        return false;
    } catch (ErrorException $e) {
        addAlert("danger", "Oops, looks like our server might have goofed.  If you're an admin, please check the PHP error logs.");
        return false;
    }
}

 

 

 

 

DB:

 

jjZDYnS.png

 

Δημοσ.
SELECT url FROM {$db_table_prefix}user_movies

// ...

$urls = $stmt->fetchAll(PDO::FETCH_COLUMN, 0);
return json_encode($urls);

Θα σου δώσει

[
    "http://...",
    "http://...",
    "http://..."
]
Δημοσ.

Αφού στο sql query σου έχεις * είναι λογικό.

Απλά αντικατέστησε με:

$query = "select url from {$db_table_prefix}user_movies";
Δημοσ.
select url

σκετο δεν παιζει, πεταει undefined.

 

 

 

επισης οτιδηποτε αλλο εκτος απο 

fetch 

σκετο δεν παιζει (fetchall, fetchcolumn, κλπ..), παλι undefined.

Δημοσ.

PDO::prepare()

// All SQL queries use PDO now
function pdoConnect(){
	// Let this function throw a PDO exception if it cannot connect
	global $db_host, $db_name, $db_user, $db_pass;
	$db = new PDO("mysql:host=$db_host;dbname=$db_name;charset=utf8", $db_user, $db_pass);
	$db->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
	$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
	return $db;
}

Ο κωδικας ειναι απο αυτο το project. Εγω απλα εφτιαξα ενα επιπλεον table για να αποθηκευσω τις ταινιες του καθε χρηστη (στο site μπορει απλα ο καθε χρηστης να φτιαξει μια δικια του movie watchlist). Ετσι τωρα προσπαθω να φτιαξω αλλη μια μεθοδο στο db_functions.php για να παιρνω τα δεδομενα απο το καινουριο table.

Δημοσ.

Πρέπει να δείξεις πραγματικό κώδικα που δε δουλεύει και το error message, από την περιγραφή και μόνο η απάντηση είναι "δε μπορεί να συμβαίνει αυτό".

  • 2 εβδομάδες αργότερα...
Δημοσ.

fixed:

function fetchUserMovies($user_id){
    try {
        global $db_table_prefix;

        $results = array();

        $db = pdoConnect();

        $sqlVars = array();

        $query = "select url from {$db_table_prefix}user_movies where user_id = {$user_id}";


        $stmt = $db->prepare($query);
        $stmt->execute($sqlVars);

        while ($r = $stmt->fetch(PDO::FETCH_ASSOC)) {
            $results[] = $r;
        }

        $stmt = null;
        return $results;

    } catch (PDOException $e) {
        addAlert("danger", "Oops, looks like our database encountered an error.");
        error_log("Error in " . $e->getFile() . " on line " . $e->getLine() . ": " . $e->getMessage());
        return false;
    } catch (ErrorException $e) {
      addAlert("danger", "Oops, looks like our server might have goofed.  If you're an admin, please check the PHP error logs.");
      return false;
    }
}

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...