Ecrire données sql dans fichier texte

Fermé
Koin - 10 juil. 2009 à 05:31
 Koin - 10 juil. 2009 à 15:43
Bonjour à tous!!! :D

Bon voila je me lance pour mon 1er message dans un forum. Cela fait maintenant 3 jours que je cherches mes réponses sans arriver à les trouver... donc... me voila =^.^=

Voici la situation, j'ai un projet personnel qui est de réaliser un site internet permettant aux utilisateurs de créer un blog.
Dans mon scripte, j'en suis au stade où j'ai déjà regroupé les variables (php). Mon but est de pouvoir laisser le choix aux internautes des liens qu'ils auront sur leur blog.
Je veux maintenant les enregistrer dans une table SQL appelée "liens", pour ensuite les écrirent dans un fichier nommer "lien.php". Ensuite je ferai simplement un include pour l'intégrer en tant que menu.

C'est donc ici que je bloc... Je n'arrive pas à regrouper les infos de ma table sql "liens" et les écrirent dans mon fichier "lien.php". Je suppose que je dois passer par un array afin de pas écrire 200 lignes (car je laisse le choix d'avoir jusqu'à 20 liens).

Je précise que je débute en php et que j'utilise parfois des fonction qui me dépasse un peu :p

Voici le code:
<?php
mysql_connect("server", "login", "password");
mysql_select_db("db");

$presence_adresse=mysql_query("UPDATE liens //ici je fais un UPDATE au cas ou l'utilisateur ai déjà une entrée dans ma table sql
SET lien1='$menu1',
lien2='$menu2',
lien3='$menu3',
lien4='$menu4',
lien5='$menu5',
lien6='$menu6',
lien7='$menu7',
lien8='$menu8',
lien9='$menu9',
lien10='$menu10',
lien11='$menu11',
lien12='$menu12',
lien13='$menu13',
lien14='$menu14',
lien15='$menu15',
lien16='$menu16',
lien17='$menu17',
lien18='$menu18',
lien19='$menu19',
lien20='$menu20'
WHERE adresse='$adresse'");
if($presence_adresse) { if(mysql_affected_rows()==0) // sinon je fais un INSERT
							{mysql_query("INSERT INTO liens VALUES ('', '$adresse', NOW(), '$menu1', '$menu2', '$menu3', '$menu4', '$menu5', '$menu6', '$menu7', '$menu8', '$menu9', '$menu10', '$menu11', '$menu12', '$menu13', '$menu14', '$menu15', '$menu16', '$menu17', '$menu18', '$menu19', '$menu20')");
  }
}
// Jusqu'ici le code semble bien fonctionné (j'espère ne pas dire de bêtise) :p
//Maintenant que les variables sont dans ma table, je voudrai récupéré lien1, lien2.....,lien20 pour les écrirent (fputs) dans un fichier "lien.php"
$lire_liens = mysql_query("SELECT lien1, lien2, lien3, lien4, lien5, lien6, lien7, lien8, lien9, lien10, lien11, lien12, lien13, lien14, lien15, lien16, lien17, lien18, lien19, lien20 FROM liens WHERE adresse='$adresse' AND $lire_liens is not NULL"); // Requête SQL


$mes_liens = fopen("../zclient/lien.php", "w");

while ($reponse_liens = mysql_fetch_array($lire_liens) )
	{
	fputs($mes_liens, '<p><a href=\"index.html\">');
	fputs($mes_liens, $reponse_liens);
	fputs($mes_liens, '</a><br /></p>');

	}

fclose($mes_liens);
mysql_close();
?>


Voila. Si quelqu'un pense à une autre manière pour procéder je suis ouvert ^^.
J'ai choisi cette façon car c'est ce qu'il m'a sembler le plus évident...

J'espère na pas trop dire de bêtise xp
A voir également:

7 réponses

resalut Messages postés 784 Date d'inscription vendredi 26 juin 2009 Statut Membre Dernière intervention 21 janvier 2010 55
10 juil. 2009 à 09:00
pourquoi les ecrire dans un fichier et pas les rappatrier de ta bdd kan le blog est apeler ?
0
Crisu Messages postés 83 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 mars 2011 40
10 juil. 2009 à 09:11
Même remarque que resalut ....
Pourquoi passer par l'écriture d'un fichier alors que les bases de données sont justement là pour travailler "directement" avec tes données ?
Tu include toujours ton fichier lien.php que tu construit avec ta base.
0
ah oui j'avais oublier de préciser ça...

C'est le 1er site que je vais faire en utilisant grandement ma Base de Donnée, alors je n'ai pas d'expérience, mais j'ai cru comprendre que utiliser sql ralenti grandement la rapidité du site (ce que je voudrai éviter).
C'est pour ça que j'avais pensé à cette solution d'écrire dans un fichier ^^
0
Crisu Messages postés 83 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 mars 2011 40
10 juil. 2009 à 15:00
D'après moi, ce sera plus lent en écrivant dans un fichier qu'au travers d'une base de données, car avec ton fichier il faut l ouvrir, l'écrire, le fermer et y acceder (accès disque dur).
Et puis si le sql ralentissait autant que ca les pages Web ... il n'existerai pas ou en s'en servirai que peu ... ce qui est bien loin d'être le cas ;)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Vu comme çà c'est vrai que... :p

Je vais essayer sans. Auriez-vous une idée pour afficher les liens que l'internaute aurai choisi avec une boucle? Car je ne voudrai pas afficher des liens vide si il ne choisi que 5 liens sur les 20 possible...
0
Crisu Messages postés 83 Date d'inscription mercredi 23 juillet 2003 Statut Membre Dernière intervention 30 mars 2011 40
10 juil. 2009 à 15:26
Il te suffit dans ta requete de selctionner que le champs qui ne sont pas vide ex :
select champLien from MaTable where champLien !=''

Avec ca tu n'a mm pas besoin de verifier dans ta boucle puisque la requete te retourne que les champs rempli.
0
euh... c'est pas bon ça?? o.O
$lire_liens = mysql_query("SELECT lien1, lien2, lien3, lien4, lien5, lien6, lien7, lien8, lien9,
 lien10, lien11, lien12, lien13, lien14, lien15, lien16, lien17, lien18, lien19, lien20
 FROM liens WHERE adresse='$adresse' AND $lire_liens is not NULL");
0