j'ai un bout de code qui me sort le contenus d'une table mysql selon un critère de recherche.
Voici mon bout de code:
while($data = mysql_fetch_assoc($requete))
{
echo 'nom:'.$data['nom'].'
position:'.$data['position'].'
id;'.$data['id'].' ';
}
il me faudrait le position et l'id qui suivent (dans le prochain passage de l'id). Et la je nage, est 'il possible de demander se résultat à mysql ?
Ou faut t'il que je copie tout dans un tableau et que je fasse le traitement après coup ?
Je vous remercie d'avance
# .
Posté par Vincent ORDY . Évalué à 2.
Deuxième solution: utiliser mysql_data_seek
# modifie ta requete
Posté par NeoX . Évalué à 2.
mysql_fetch_assoc($requete) est de te renvoyer le resultat de $requete sous forme de tableau associatif.
1 ligne = 1 tableau
si tu as 5 lignes de resultat à ta requete, tu auras 5 fois
echo 'nom:'.$data['nom'].'position:'.$data['position'].'id;'.$data['id'].' ';
si tu veux les infos de la ligne suivante, il te faut alors faire une requete qui fait d'office le +1
ou bien ,si c'est pour trouver le dernier, et creer le suivant simplement
faire une requete avec LAST (ca te trouve le dernier)
comment je le coderais ?
# Auto-increment
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Exemple ta table :
Tu met l'attribut auto-increment a ton champ id et le problème est réglé.
Tu auras just a faire une requête comme ça pour ajouter une ligne a la fin :
INSERT `nom_table` (`nom`, `fonction`) VALUES ('trou', 'badour');
[^] # Re: Auto-increment
Posté par Ecran Plat (site web personnel) . Évalué à 1.
Mais j'ai trouver la solution, un tableau multi-dimensionnel.
Je poste ma solutions si cela peut aider certain:
En fait j'utilise cela pour pouvoir changer l'ordre dans un menu c'est pour cela que je devait connaître mes voisins (pour pouvoir échanger leurs case position (pour monter au descendre).
Tout cela tourne dans un plugin de catalogue en ligne pour un CMS fait maison.
Merci quand même de vos pistes.
[^] # Re: Auto-increment
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Mais si j'étais toi, je me prendrais pas le chou...
Tu t'arrange pour récupérer le bloc de donnée dans un tableau associatif.
Je connais pas trop les commandes mysql parce que j'utilise mdb2 mais ça dois être possible.
Ensuite tu te fait une boucle autour du tableau.
Créer l'objet mdb2 :
$dsn = array(
//SQL type database
'phptype' => 'mysqli',
//SQL hostname
'hostspec' => 'localhost',
//SQL login
'username' => 'username',
//SQL password
'password' => 'password',
//SQL database name
'database' => 'database',
//SQL charset
'charset' => 'UTF8'
);
$options = array(
'debug' => 2,
'portability' => MDB2_PORTABILITY_ALL
);
$db = MDB2::singleton($dsn, $options);
Exemple :
$sql = 'SELECT * FROM '.$table.' WHERE rubrique LIKE \''.$rubrique.'\' ORDER BY position';
Ensuite tu fait un :
$res = $db->getAll($sql, null, array(), null, MDB2_FETCHMODE_ASSOC);
if (MDB2::isError($res))
trigger_error('sql error: '.$res->getMessage(), E_USER_ERROR);
Ensuite :
foreach($res as $key => $value)
{
echo $value['id'].' => '.$value['blabla'].'';
if (isset($res[$key-1]))
//ton précédent est $res[$key-1]
;
if (isset($res[$key+1]))
//ton suivant est $res[$key+1]
;
}
Bon après regarde si tu as pas la même chose en commande mysql direct.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.