plusieurs requêtes sur la même page

Répondre
jackbocar
le 04/05/2006 à 11:49
jackbocar
Bonjour,

Je voudrais savoir si je peux mettre dans la même page plusieurs requêtes de bases de données ?

Je m'explique, j'ai des pages de textes qui sont visiblement trop long pour ma table, j'ai un carré gris qui s'affiche et me dit : la quantité de données est trop importantes pour un affichage correct.

Alors, j'ai coupé ma page en 4 et j'ai fait pour chaque partie de page :

ID infos_1
ID infos_2
ID infos_3
ID infos_4

Lorsque j'appelle ma page, j'ai deux solutions que je maîtrise :
Des liens en bas de page ou placer dans ma page 4 requêtes :

Alors, si je procède de cette manière, est-ce une bonne solution ou y en à t'il une autre plus efficace ?

Merci de votre aide

Jack Bocar

<?php
$sql = 'SELECT id, nom, commentaire FROM infos WHERE id = "1"';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];
$commentaire=$data['commentaire'];
$commentaire = nl2br($commentaire);

echo '<span class="nom">'. stripslashes(htmlentities(trim ($nom).'</span>';
echo '<span class="comm">'. stripslashes(htmlentities(trim ($commentaire).'</span>';
}
mysql_free_result($resultat);
?>

<?php
$sql = 'SELECT id, nom, commentaire FROM infos WHERE id = "2"';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];
$commentaire=$data['commentaire'];
$commentaire = nl2br($commentaire);

echo '<span class="nom">'. stripslashes(htmlentities(trim ($nom).'</span>';
echo '<span class="comm">'. stripslashes(htmlentities(trim ($commentaire).'</span>';
}
mysql_free_result($resultat);
?>

<?php
$sql = 'SELECT id, nom, commentaire FROM infos WHERE id = "3"';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];
$commentaire=$data['commentaire'];
$commentaire = nl2br($commentaire);

echo '<span class="nom">'. stripslashes(htmlentities(trim ($nom).'</span>';
echo '<span class="comm">'. stripslashes(htmlentities(trim ($commentaire).'</span>';
}
mysql_free_result($resultat);
?>

<?php
$sql = 'SELECT id, nom, commentaire FROM infos WHERE id = "4"';
$resultat = mysql_query($sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
$data = mysql_num_rows($resultat);

while ($data = mysql_fetch_array($resultat)) {
$id=$data['id'];
$nom=$data['nom'];
$commentaire=$data['commentaire'];
$commentaire = nl2br($commentaire);

echo '<span class="nom">'. stripslashes(htmlentities(trim ($nom).'</span>';
echo '<span class="comm">'. stripslashes(htmlentities(trim ($commentaire).'</span>';
}
mysql_free_result($resultat);
?>
LA GLOBULE
le 04/05/2006 à 12:24
LA GLOBULE
Ben une seule requete SQL avec des OR 1 2 3 4, puis tu affiches les résultats.
Vu qu'à chaque fois, tu fais les memes echo, je vois pas ce qui t'empeche de faire çà.
jackbocar
le 04/05/2006 à 14:30
jackbocar
Bonjour,

Merci La Globule, je ne sais pas comment faire, j'ai recherché dans la doc Mysql, je n'ai pas vu
cette ligne avec OR 1 OR 2 Or 3 Or 4, je n'ai vu

que cette ligne : 7.2.5 Comment MySQL optimise la condition OR
et, je n'ai rient trouvé qui puisse fonctionner avec ma table.

Jack Bocar
LupusMic
le 04/05/2006 à 14:33
LupusMic
Au fait, quel est le type de la colonne ? Varchar(255) :-D ?
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
jackbocar
le 04/05/2006 à 14:38
jackbocar
Bonjour,

Ma table :

CREATE TABLE `informations` (
`id` int(11) NOT NULL auto_increment,
`nom` varchar(255) NOT NULL default '',
`infos` text NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 ;

Jack Bocar
jackbocar
le 04/05/2006 à 15:52
jackbocar
Bonjour,

J'ai trouvé la solution :

$sql = 'SELECT id, nom, infos FROM informations WHERE id in (1, 2, 3, 4)' ;

Il n'y a pas de OR, mais ça fonctionne super !!!

Jack Bocar
Bzh
le 04/05/2006 à 15:54
Bzh
Préférer de mettre les mots clé de SQL en majuscule:

SELECT id, nom, infos FROM informations WHERE id IN (1, 2, 3, 4)


Bye
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours