Voila , suite a la récupération de diverse information comme le nom , prenom l’adresse , etc . .
Je voudrais afficher le contenu de ma base sur une page , mais version tableau
NOM | Prenom | Adresse . .
Toto | titi | 32 rue mimi … . etc
Pour faciliter la lecture donc, parce que quand j’affiche ma base de facon classique avec une boucle for dans un if ou l’inverse, ( bref ) et bien, les résultat sont par exemple :
Nom :
Prenom:
Adresse
et ca pour chaque pour personne, donc au bout de qq personne ca commence a faire long a lire . . donc voila, si qqun a une solution :s
2ieme question : Sur un champ ID, comment réinitialiser le numéro a 0 ( ID etant de type auto_inscrement ) vu que j’ai fais des test, le 1er numéro généré est par exemple 39 , 40 etc . . . alors quee finalement je n’ai que 2 nouveau enregistrement . . comment on remet ca a 0 ?
edit2: j’ai vu qu’il y a un truc : “Données CSV pour Ms Excel” y’aurait t il un moyen simple de faire passer la base de donné en donnée ms exel , chaque info mise dans une colonne ?
Pour générer un tableau, ben tu crées un tableau :
<table>
<tr><th>Prenom</th><th>Nom</th></tr>
tu boucles sur les enregistrements de ta base et tu affiches une ligne juste pour chaque enregistrement :
echo ‘<tr><td>’, $prenom, ‘</td><td>’, $nom, ‘</td></tr>’;
Ensuite tu fermes les balises ouvertes…
</table>
Pour un champ autoincrement d’une table MyISAM, tu mets “ALTER TABLE tatable AUTO_INCREMENT=0”
Pour générer un CSV, il suffit de mettre tes champs les uns à la suite des autres avec un SELECT , séparés par un ‘;’ pour Excel (un enregistrement par ligne).
Ok super. Jver essayé ca merci. Par contre pour le auto increment, je suis pas sur d’avoir bien saisi. de plus c’et une Base MySQL pas MyISAM , je sais même pas ce que c’est une base MyISAM
Genre la , il y a un probleme, les tr / td n’apparaissent pas de la bonne couleur sous l’editeur que j’utilise ( NotePad )
edit : <tr> <td etc . . . ce sont des balise php ? parce que sinon il faudrait refermer a chaque fois ?> <tr><td> <?php Non ?
En fait si j’ai bien compris tu veux simplement exporter tout le contenu de ta base dans un tableau, cela va surement causer quelques soucis. Tu devrais plutot générer un tableau pour chaque table. Pour cela renseigne toi sur les fonction mysql_fetch_array(); et mysql_fetch_row(); elle te permettront de parcourir lignes et colonnes de tes tables. Voila bon courage !!
coucou! je me tente une réponse pour tes problemes, si je comprend bien, tu veux afficher toutes les infos d’une table de ta base de donnée (ou sinon, tu peux les sélectionner!!), donc avec requête!! en gros, moi je ferais :
Pour ton aute probleme, moi, j’ai une solution radical, je vide tous les champs d ma table : tu lances une requête sur ta base dans ta base : TRUNCATE `ta_table`
et quand tu refais des enregistrement, ton champs id repars à 0
$fichier =fopen('C://.../fichier.csv','a+'); // Url de type absolu
$sql = mysql_query("SELECT * FROM matable");
while($fetch=mysql_fetch_array($sql))
{
fwrite($fichier, $fetch['champ'].";".$fetch['champ2'].";".$fetch['champ3"]);
fwrite($fichier, "\n");
}
fclose($fichier);
Attention l’url du fichier à mettre dans la fonction fopen(); doit être de type absolu, si tu n’as pas cette url tu peux la récupérer en utilisant la fonction realpath();
Le paramètre “a+” de la fonction fopen(); signifie que si le fichier n’existe pas il sera créé, et que si il existe déjà le contenu existant sera effacé.
Dans excel une ligne correspond à un enregistrement, le "\n" permet de faire ce saut de ligne, le petit hic : Sous windows "\r\n" sous linux "\n".
J’éspère que ca réponds à ta question et que ce topic peut passer en mode [RESOLU], allez @+
PS : Dernière petite précision, tu peux obtenir le nom des colonnes (des champs), grâce à la fonction mysql_field_name, ca t’évite d’avoir à les saisir manuellement.
Avec ma méthode tu as juste a changer ta requête c’est là l’intéret, tu n’as pas a te taper 15 lignes d’affectations de variables ^^
J’édite pour te dire que j’ai développé un ptit script qui réinitialise automatiquement tes id. Tu changes “tatable” par le nom de ta table et “id” par le nom du champ de ton identifiant.
<?php
$sql = mysql_query("SELECT MAX(id) AS maxid FROM tatable ORDER BY id ASC");
$maxid = mysql_result($sql,0,"maxid");
$indice = 0;
$sql = mysql_query("SELECT * FROM tatable");
while($fetch = mysql_fetch_array($sql))
{
$id = $fetch["id"];
if($newSql = mysql_query("UPDATE tatable SET id=$indice WHERE id=$id"))
{
$indice++;
echo "Enregistrement $id remis à $indice<br>";
}
}
mysql_close();
?>
Le principe :
Je vais chercher l’id qui a la plus grande valeur
Je créé une variable indice, des qu’on va changer un id elle augmente de 1
Je vais chercher tous les enregistrement et je les trie de la plus petite a la plus grande valeur
Pour chaque enregistrement je change son id pour le mettre a $indice, ensuite $indice = $indice + 1;