olivier88888

Inscris le 12/09/2007 à 09:21
  • Signature
    Olivier
  • Nombre de sujets
    1
  • Nombre de messages
    4
  • Nombre de commentaires
    Aucun
  • Nombre de news
    Aucune
  • Niveau en PHP
    Débutant

Ses dernières news

Aucune news

Ses derniers sujets sur les forums

forum
olivier88888
Bonjour,
j'ai repris une solution de Marjosin et je l'ai adapte' a ma base de donne'es. Je l'ai trafique'e afin de n'avoir que la ligne qui m'interesse afin d'optimiser la chose. Donc j'ai une requete qui marche (teste'e dans phpmyadmin) et qui est la suivante:

SET @pos :=0;
SET @last := NULL;
SELECT * FROM (SELECT fx_leverage, fx_company_name, fx_id,IF( @last = fx_leverage, @pos := @pos , @pos := @pos +1 ) AS position, @last := fx_leverage FROM `fx_data` ORDER BY `fx_leverage` +1 DESC) as result WHERE `fx_id` = 18


Je fais un mysqli_real_connect() de tout la bazard et ca me donne :

Fatal error: Call to a member function fetch_assoc() on a non-object in .... at line 22 (-qui est la ligne en question... bien sur-)

Alors je lis plein de solution avec des next requetes etc mais je suis pas super motive's pour les appliquer parce que j'ai mis une semaine a creer une class qui me gere ma base de donne'es sans probleme (parce que j'utilise tout en japonais, bonjour les problemes...).

Si jamais je separe les SET du reste de la requete ca me dit "Commands out of sync; you can't run this command now" ... ce qui ne m'avance pas des masses non plus.

J'utilise PHP5 et MYSQL 5.0.37.

En gros ma question est simple: c'est quoi la solution magique?

...Sachant que ca peut aller du on ajoute une petite ligne de code apres un truc, ---- a on modifie un peut la requete pour tout faire tenir en une requete qui reste optimise'e, ----a "t'as tout juste oublie' d'ecrire #dksfjldf# apres #oqpirp#. ...

Merci d'avance pour votre aide et j'attends avec impatience vos reponses (je sais pas continuer sans enfait ;)

Olivier
Olivier

Ses derniers messages sur les forums

forum
olivier88888
le 13/09/2007 à 02:32
Sql : rang dans un classement
Merci pour vos reponses.

Enfait, j'utilise deja Mysqli et je dois pas bien comprendre comment passer d'un resultat a l'autre ?!?

J'ai cre'e' un nouveau post pour ce probleme, (double requete sql $ solution magique :P

Merci a vous tous!
Olivier
olivier88888
Merci pour l'interet que tu portes a ma question.

Mon code ca ressemble a ca:
<?php
$query_firm = $db->query("SET @pos :=0,SET @last := NULL;SELECT * FROM (,SELECT fx_leverage, fx_company_name, fx_id,IF( @last = fx_leverage, @pos := @pos , @pos := @pos +1 ) AS position, @last := fx_leverage FROM `fx_data` ORDER BY `fx_leverage` +1 DESC) as result WHERE `fx_id` = 18");
$data_firm = $query_firm->fetch_assoc();
echo "<br>This is the position for leverage of firm #18 : ".$data_firm['position']."<br>";
?>

Et une partie de ma Class ressemble a ca:
<?php
class Database_Connection
{
public function query($sql)
{
$this->ensure_db_connection();
$res = $this->db->query($sql)
or report_error("Error while processing the request.", "Bad SQL statement: $sql<br><br>" . $this->db->error, true);
return $res;
}
public function __get($var)
{
if ($var == "affected_rows")
{
$this->ensure_db_connection();
return $this->db->affected_rows;
}
}
private $db;
private $connected;

private function connect()
{
mysqli_real_connect($this->db, CONFIG_DB_SERVER, CONFIG_DB_USER, CONFIG_DB_PASSWORD, CONFIG_DB_NAME)
or report_error("Unable to connect to the database", mysqli_connect_error(), true);
$this->db->query('SET NAMES utf8')
or report_error("Unable to connect to the database", "Impossible to change character encoding", true);
}

public function ensure_db_connection()
{
if (! $this->connected)
{
$this->connect();
$this->connected = true;
}
}

}
?>


Et j'ai cre'e ma class tout seul comme un grand :) juste que je pensais pas avoir besoin d'un truc a connection multiple.

Merci d'avance pour ton aide,

Olivier
Olivier
olivier88888
Bonjour,
j'ai repris une solution de Marjosin et je l'ai adapte' a ma base de donne'es. Je l'ai trafique'e afin de n'avoir que la ligne qui m'interesse afin d'optimiser la chose. Donc j'ai une requete qui marche (teste'e dans phpmyadmin) et qui est la suivante:

SET @pos :=0;
SET @last := NULL;
SELECT * FROM (SELECT fx_leverage, fx_company_name, fx_id,IF( @last = fx_leverage, @pos := @pos , @pos := @pos +1 ) AS position, @last := fx_leverage FROM `fx_data` ORDER BY `fx_leverage` +1 DESC) as result WHERE `fx_id` = 18


Je fais un mysqli_real_connect() de tout la bazard et ca me donne :

Fatal error: Call to a member function fetch_assoc() on a non-object in .... at line 22 (-qui est la ligne en question... bien sur-)

Alors je lis plein de solution avec des next requetes etc mais je suis pas super motive's pour les appliquer parce que j'ai mis une semaine a creer une class qui me gere ma base de donne'es sans probleme (parce que j'utilise tout en japonais, bonjour les problemes...).

Si jamais je separe les SET du reste de la requete ca me dit "Commands out of sync; you can't run this command now" ... ce qui ne m'avance pas des masses non plus.

J'utilise PHP5 et MYSQL 5.0.37.

En gros ma question est simple: c'est quoi la solution magique?

...Sachant que ca peut aller du on ajoute une petite ligne de code apres un truc, ---- a on modifie un peut la requete pour tout faire tenir en une requete qui reste optimise'e, ----a "t'as tout juste oublie' d'ecrire #dksfjldf# apres #oqpirp#. ...

Merci d'avance pour votre aide et j'attends avec impatience vos reponses (je sais pas continuer sans enfait ;)

Olivier
Olivier

Ses derniers commentaires de news

Aucun commentaire de news

Ses derniers commentaires de sites

Aucun commentaire de sites

Ses derniers commentaires de wall

Aucun commentaire wall
LoadingChargement en cours