8796 sujets

Développement web côté serveur, CMS

Bonsoir j'aurai besoin de votre aide je bloque Smiley decu

J'ai donc ma chaine qui et comme ceci


$machaine = "sonore_76=3837864&sonore_agenda=96758&sonore_galerie=82168";


Et je voudrais récupérer les chiffres donc 3837864 , 96758, 82168

J'ai donc fait


$array = explode("&", $machaine);
//-- Se qui m'affiche
Array
(
    [0] => sonore_76=3837864
    [1] => sonore_agenda=96758
    [2] => sonore_galerie=82168
)


Je n'arrive pas a enlever sonore_76= , sonore_agenda= , sonore_galerie=,
si quelqu'un aurai une idée en sachant que sonore_76 etc... peuvent changer

Merci pour votre aide.
Salut,

$machaine = "sonore_76=3837864&sonore_agenda=96758&sonore_galerie=82168"; 
preg_match_all('#=([0-9]+)#', $machaine, $matches); // On cherche tous les chiffres précédés de =
print_r($matches[1]); // Le résultat est un tableau

Modifié par Heyoan (11 Oct 2009 - 10:27)
Merci beaucoup pour ton aide par contre j'ai déjà un foreach qui permet d'afficher les nom des databases j'ai donc font ceci qui fonctionne parfaitement comment afficher mon $matches[1] dans mon tableau qui se trouve dans le foreach?


/* Liste des noms des databases */
$database = $listdatabase->fetch_body();
$database = str_replace('list[]=', '', $database);
$name = explode('&', $database);

foreach ($name as $key => $databasename) {
					
echo("<tr>
	<td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\">".$databasename."</td>
	<td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td>
	<td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td>
	<td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td>
	<td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"><input name=\"select0\" value=\"".$name."\" type=\"checkbox\"></td>
</tr>");

}

Modifié par subzeros (11 Oct 2009 - 12:59)
Ben comme je ne sais pas ce que contiennent $name et $databasename ni ce que tu voudrais obtenir comme code html au final c'est une question un peu difficile ! Smiley langue
$name récupére le nom des base de données tout comme $databasename ennsuite j'ai se tableau


<table border="0" width="100%" cellspacing="1" cellpadding="5">
<tr>
	<td class="tdh1" align="center">Database</td>
	<td class="tdh1" align="center">Nombre d'utilisateur</td>
	<td class="tdh1" align="center">Backup</td>
	<td class="tdh1" align="center">Taille</td>
	<td class="tdh1" align="center">Sélectionner</td>
</tr>


Et donc j'ai ceci


/* Liste des noms des databases */ 
$database = $listdatabase->fetch_body(); 
$database = str_replace('list[]=', '', $database); 
$name = explode('&', $database); 
 
foreach ($name as $key => $databasename) { 
                     
echo("<tr> 
    <td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\">".$databasename."</td> 
    <td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td> 
    <td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td> 
    <td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"></td> 
    <td class=\"tdh2\" align=\"center\" nowrap=\"nowrap\"><input name=\"select0\" value=\"".$name."\" type=\"checkbox\"></td> 
</tr>"); 
 
}
Oui mais ça ne m'éclaire pas plus : d'après ton code $databasename ne contient que le nom d'une base donc quelle est la variable qui contient la chaîne à splitter ?
Je sais pas si sa peut t'aider mais en faisant un


echo "<pre>";
print_r ($databasename);
echo "</pre>";
//-- Affiche la liste des noms de base de données
sonore_76
sonore_agenda
sonore_galerie


La principale variable est $name
Modifié par subzeros (11 Oct 2009 - 14:41)
En clair tu n'as plus les valeurs...

A priori je dirais que le problème de base est que tu n'as pas normalisé ta table. Il suffirait d'avoir quelque chose comme :

table databases :
id_database
nom_database
valeur (je ne sais pas ce que c'est)
etc...

au lieu d'une chaine qui englobe tout et ce serait bien plus simple :
$sql = 'select name_database, valeur from databases order by name_database';
$result = mysql_query($sql);
while($row = mysql_fetch_assoc($result)) {
   echo '<p>nom : '.$row['database_name'].' / valeur : '.$row['valeur']."<p>\n";
}

Modifié par Heyoan (11 Oct 2009 - 14:51)