Aide php SELECT * FROM plusieurs database
PL
-
A.Nonymous -
A.Nonymous -
Bonjour,
J'ai plusieur base de donnée avec 1 table dans chacune d'elle.
J'aimerais faire en sorte de faire une requête SQL en les joignants les unes des autres. J'ai esseyer plusieurs facon et J'ai vraiment du mal !
Voila le code :
<?php
include 'connect_to_mysql.php';
if ($search == "") { echo '<div align="center"><h3>blabla</h3></div>'; } else {
// the table to search
$table = "upload";
// explode search words into an array
$arraySearch = explode(" ", $search);
// table fields to search
$arrayFields = array(0 => "titre", 1 => "titre");
$countSearch = count($arraySearch);
$a = 0;
$b = 0;
$query = "SELECT * FROM ".$table." WHERE (";
$countFields = count($arrayFields);
while ($a < $countFields)
{
while ($b < $countSearch)
{
$query = $query."$arrayFields[$a] LIKE '%$arraySearch[$b]%'";
$b++;
if ($b < $countSearch)
{
$query = $query." AND " ;
}
}
$b = 0;
$a++;
if ($a < $countFields)
{
$query = $query.") OR (";
}
}
$query = $query.")";
$query_result = mysql_query("". $query . " LIMIT 0, 20");
// print title
echo '<h3>Résultats de recherche</h3>'."\n\n";
if(mysql_num_rows($query_result) < 1)
{
echo '<p>Désoler, aucun article trouvé pour "'.$search.'"</p>';
}
else
{
echo '<p>Résultat de recherche pour "'.$search.'"</p>'."\n\n";
// output list of articles
while($row = mysql_fetch_assoc($query_result))
{
// output whatever you want here for each search result
echo 'blabla';
}
}
}
?>
Tout fonctionne très bien mais dans une seuil base de donnée, j'aimerais pouvoir faire la recherche dans tous mes bases de donner.
Merci de votre coup de main !
Pierre-luc.
J'ai plusieur base de donnée avec 1 table dans chacune d'elle.
J'aimerais faire en sorte de faire une requête SQL en les joignants les unes des autres. J'ai esseyer plusieurs facon et J'ai vraiment du mal !
Voila le code :
<?php
include 'connect_to_mysql.php';
if ($search == "") { echo '<div align="center"><h3>blabla</h3></div>'; } else {
// the table to search
$table = "upload";
// explode search words into an array
$arraySearch = explode(" ", $search);
// table fields to search
$arrayFields = array(0 => "titre", 1 => "titre");
$countSearch = count($arraySearch);
$a = 0;
$b = 0;
$query = "SELECT * FROM ".$table." WHERE (";
$countFields = count($arrayFields);
while ($a < $countFields)
{
while ($b < $countSearch)
{
$query = $query."$arrayFields[$a] LIKE '%$arraySearch[$b]%'";
$b++;
if ($b < $countSearch)
{
$query = $query." AND " ;
}
}
$b = 0;
$a++;
if ($a < $countFields)
{
$query = $query.") OR (";
}
}
$query = $query.")";
$query_result = mysql_query("". $query . " LIMIT 0, 20");
// print title
echo '<h3>Résultats de recherche</h3>'."\n\n";
if(mysql_num_rows($query_result) < 1)
{
echo '<p>Désoler, aucun article trouvé pour "'.$search.'"</p>';
}
else
{
echo '<p>Résultat de recherche pour "'.$search.'"</p>'."\n\n";
// output list of articles
while($row = mysql_fetch_assoc($query_result))
{
// output whatever you want here for each search result
echo 'blabla';
}
}
}
?>
Tout fonctionne très bien mais dans une seuil base de donnée, j'aimerais pouvoir faire la recherche dans tous mes bases de donner.
Merci de votre coup de main !
Pierre-luc.
A voir également:
- Aide php SELECT * FROM plusieurs database
- Borland database engine - Télécharger - Édition & Programmation
- Win setup from usb - Télécharger - Utilitaires
- Easy php - Télécharger - Divers Web & Internet
- No available networks no response from server iron tv pro - Forum TV & Vidéo
- Apply update from adb traduction ✓ - Forum Téléphones & tablettes Android
1 réponse
S'il y a plusieurs bases de données, pourquoi aucun changement de base n'est visible dans le code fourni ?
Si je me fie uniquement au titre de la demande, je suggérerais de faire :
SELECT * FROM db1.upload
UNION ALL
SELECT * FROM db2.upload
UNION ALL
SELECT * FROM db3.upload
Ce qui ne fonctionnera que si les 3 tables ont la même structure (ou tout du moins le même nombre de champs)
Si je me fie uniquement au titre de la demande, je suggérerais de faire :
SELECT * FROM db1.upload
UNION ALL
SELECT * FROM db2.upload
UNION ALL
SELECT * FROM db3.upload
Ce qui ne fonctionnera que si les 3 tables ont la même structure (ou tout du moins le même nombre de champs)