8768 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai vu que mysql_result deviendrait bientôt obsolète. J'ai donc essayé de replacer cette fonction mais impossible... je ne comprends pas comment faire pour remplacer cette fonction en php 5.5 tout en restant en mode procédurale.

Voici la partie du code concernée:


$query = "SELECT * FROM $tbljeu"; 
$result = mysqli_query($IdConn,$query); 
$nb = mysqli_num_rows($result); 

if ($nb > 0)
{
	$j=0;
	while ($j<$nb)
	{
		$num=mysql_result($result,$j,"num");
		$numasso=mysql_result($result,$j,$tabCat[$type]);
		echo "<br>Pour obtenir le numéro $num , il faut le jouer avec le chiffre $numasso";
		$j++;
	}
}


J'aimerai bien entendu rester en mode procédural et remplacer ces deux lignes avec un code compatible php 5.5 :

$num=mysql_result($result,$j,"num");
$numasso=mysql_result($result,$j,$tabCat[$type]);


Je vous remercie mille fois par avance ! Je suis bloqué depuis plusieurs heures et rien à faire, je n'y parviens pas.

Gh.


EDIT : j'ai vu que le manuel PHP disait qu'il fallait utiliser : bool mysqli_data_seek ( mysqli_result $result , int $offset )
pour avoir une equivalence avec mysql_result.
Avez vous une idée de comment faire avec mon exemple ci-dessus s'il vous plait ?
Modifié par ghostya (26 Jul 2015 - 22:29)
J'ai trouvé ceci :

function mysqli_result($res, $row, $field=0) {
    $res->data_seek($row);
    $datarow = $res->fetch_array();
    return $datarow[$field];
} 


Est ce qu'en déclarant cette fonction dans mon code, il me suffira alors de remplacer tous les mysql_result par mysqli_result pour que tout fonctionne correctement ?

Merci encore.
Modifié par ghostya (26 Jul 2015 - 22:47)
Regarde du coté de PDO


	function get_rows($sql)
	{
		$bdd = new PDO('mysql:host=TON_HOST;dbname=TA_BASE_DE_DONNEE;charset=utf8', 'USER', 'PASSWORD');
		$resultats=$bdd->query($sql);
		$resultats->setFetchMode(PDO::FETCH_OBJ);
		return $resultats;
	}
   
   function execute_sql($sql)
   {
		$bdd = new PDO('mysql:host=TON_HOST;dbname=TA_BASE_DE_DONNEE;charset=utf8', 'USER', 'PASSWORD');
		$sth = $bdd->prepare($sql);
   		 $sth->execute();
   }


Ensuite tu créer ta requête
par exemple une requête SELECT

$sql = "SELECT domaine FROM ma_table_test"
$resultats = get_rows($sql); // get_rows pour le return résultat

       while($resultat = $resultats->fetch())
      {
            $resultat->domaine // domaine étant le nom d'une colonne de ma table
       }
$resultats->closeCursor();

Modifié par JENCAL (27 Jul 2015 - 10:34)
Merci pour ton aide, cela dit j'ai bien signalé que je ne voulais pas passer par de l'objet mais rester en procédural.

Je mets le post en résolu car je pense que la fonction de substitution donnée par le manuel php fonctionne.

Merci encore et bonne journée.