Cherche script php pour affichage aléatoire
Résolu/Fermé
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
-
3 mars 2009 à 14:51
Nat_astuciosités Messages postés 128 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 14 janvier 2010 - 4 mars 2009 à 13:24
Nat_astuciosités Messages postés 128 Date d'inscription dimanche 21 septembre 2008 Statut Membre Dernière intervention 14 janvier 2010 - 4 mars 2009 à 13:24
A voir également:
- Cherche script php pour affichage aléatoire
- Script vidéo youtube - Guide
- Easy php - Télécharger - Divers Web & Internet
- Affichage double ecran - Guide
- Windows 11 affichage classique - Guide
- Comment agrandir l'affichage de l'écran - Guide
4 réponses
zoby44
Messages postés
818
Date d'inscription
vendredi 3 novembre 2006
Statut
Membre
Dernière intervention
7 avril 2010
199
3 mars 2009 à 19:03
3 mars 2009 à 19:03
Salut, voila un script que j'utilise régulièrement :
Pour cet exemple, il faut créer une table images avec id | description | url
formulaire.html
reception.php
Ne pas oublié de mettre le chmod du dossier_image en 777
affichage.php
Edit : j'avais pas vu de c'était juste pour du texte, mais le principe reste le même pour l'inscription dans la bdd et l'affichage.
Pour cet exemple, il faut créer une table images avec id | description | url
formulaire.html
<form action="reception.php" enctype="multipart/form-data" method="post"> <input type="file" name="image"/> <textarea name="description"></textarea> <input type="submit"/> </form>
reception.php
<?php $nom_image = $_FILES['image']['name']; $destination = "dossier_image/".$nom_image; if (move_uploaded_file($_FILES['image']['tmp_name'], $destination)) { if ( mysql_query('INSERT INTO images VALUES("","'.$_POST['description'].'","'.$destination.'")')) { echo "Image envoyée avec succès"; } } else { echo "Erreur lors de l'envoi de l'image"; } ?>
Ne pas oublié de mettre le chmod du dossier_image en 777
affichage.php
<?php $sql = mysql_query('SELECT * FROM images ORDER BY rand()'); if ($data = mysql_fetch_array($sql)) { echo '<img src="'.$data['url'].'"/><br/>'; echo $data['description']; } ?>
Edit : j'avais pas vu de c'était juste pour du texte, mais le principe reste le même pour l'inscription dans la bdd et l'affichage.
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 mars 2009 à 14:55
3 mars 2009 à 14:55
Tu peux faire ça avec une base de données (id en auto-increment, texte) sur laquelle tu fais un tirage aléatoire. L'interface d'admin constitue simplement en un formulaire dans lequel tu saisis ton texte et qui l'ajoute à la BD.
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
10
3 mars 2009 à 18:34
3 mars 2009 à 18:34
merci pour ta réponse.
Donc, il faut que je crée une base de données et que je trouve le moyen d'y insérer tous mes textes.
après ça se complique, il faut un code qui va chercher un des textes de façons aléatoire pour l'afficher.
et pour terminer, un formulaire avec un code qui va récupérer ce que je vais y écrire pour aller l'insérer dans la bdd.
euh...non, le formulaire d'abord pour remplir la base de données... ;o))
ça a l'air facile présenté comme ça ;o))
Moins évident quand on n'y connait presque rien en php. ;o))
Bon il ne me reste plus qu'à chercher ;o))
Merci
Donc, il faut que je crée une base de données et que je trouve le moyen d'y insérer tous mes textes.
après ça se complique, il faut un code qui va chercher un des textes de façons aléatoire pour l'afficher.
et pour terminer, un formulaire avec un code qui va récupérer ce que je vais y écrire pour aller l'insérer dans la bdd.
euh...non, le formulaire d'abord pour remplir la base de données... ;o))
ça a l'air facile présenté comme ça ;o))
Moins évident quand on n'y connait presque rien en php. ;o))
Bon il ne me reste plus qu'à chercher ;o))
Merci
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 mars 2009 à 22:57
3 mars 2009 à 22:57
Effectivement, si tu n'y connais rien, ça va demander un peu de boulot...
Le formulaire pour remplir est simpliste : un champs texte (textarea) pour saisir ton texte et un bouton submit. À la réception, un tout petit bout de code pour insérer dans la BD (tu trouveras plein d'exemples là-dessus sur le web). Pour l'affichage, tu tires une valeur aléatoire entre 1 et le nombre de tuples dans la base et tu vas chercher le texte d'id correspondant dans la base. Pas si compliqué.
Une autre solution qui t'évite une base de données alors que tu n'en as besoin que pour ça, tu peux utiliser des fichiers : ton formulaire se contente de recopier le contenu de la textarea dans un fichier qu'il numérote par exemple textex, avec x valant initialement 1 et incrémenté à chaque ajout. Pour suivre la valeur de x, tu peux te faire un fichier id par exemple dans lequel tu places l'id du dernier texte rentré.
Ensuite, tu fais un tirage aléatoire de x compris entre 1 et la valeur dans le fichier id et tu affiches textex.
Si tu ne fais pas mumuse avec 4000 textes, ça devrait être bon.
Si tu n'as pas bien compris fais moi signe.
Le formulaire pour remplir est simpliste : un champs texte (textarea) pour saisir ton texte et un bouton submit. À la réception, un tout petit bout de code pour insérer dans la BD (tu trouveras plein d'exemples là-dessus sur le web). Pour l'affichage, tu tires une valeur aléatoire entre 1 et le nombre de tuples dans la base et tu vas chercher le texte d'id correspondant dans la base. Pas si compliqué.
Une autre solution qui t'évite une base de données alors que tu n'en as besoin que pour ça, tu peux utiliser des fichiers : ton formulaire se contente de recopier le contenu de la textarea dans un fichier qu'il numérote par exemple textex, avec x valant initialement 1 et incrémenté à chaque ajout. Pour suivre la valeur de x, tu peux te faire un fichier id par exemple dans lequel tu places l'id du dernier texte rentré.
Ensuite, tu fais un tirage aléatoire de x compris entre 1 et la valeur dans le fichier id et tu affiches textex.
Si tu ne fais pas mumuse avec 4000 textes, ça devrait être bon.
Si tu n'as pas bien compris fais moi signe.
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
10
3 mars 2009 à 23:20
3 mars 2009 à 23:20
C'est qu'à terme, il risque d'y avoir beaucoup, beaucoup de petits textes ;o))
c'est vraiment si lent que ça ?
c'est vraiment si lent que ça ?
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
3 mars 2009 à 23:24
3 mars 2009 à 23:24
Lent... Pas tant, mais c'est quand même lourd à mettre en place (connection à la BD > requête > calcul du résultat > retour du résultat > traitement du résultat).
Mais je ne dis pas que les performances seraient meilleures avec des fichiers (pis c'est le bordel 350 fichiers dans un répertoire ^^), juste que un BDD pour une table de deux champs, ça fait un peu pitié ;-p.
Après, si quelqu'un avait une solution intelligente et sexy, ce serait bien !
Mais je ne dis pas que les performances seraient meilleures avec des fichiers (pis c'est le bordel 350 fichiers dans un répertoire ^^), juste que un BDD pour une table de deux champs, ça fait un peu pitié ;-p.
Après, si quelqu'un avait une solution intelligente et sexy, ce serait bien !
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
10
>
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
3 mars 2009 à 23:53
3 mars 2009 à 23:53
loll, on va dire que c'est pour m'entrainer, 1 table de 2 champs c'est très bien pour un début ;o))
Puis, qui sait, si ça m'inspire, je rajouterai peut être d'autres tables par la suite ;o))
petite question en passant, j'ai crée la page formulaire, si j'ai bien compris, je fais le lien vers ma page "réception" qui elle va écrire dans la base de données... j'ai bon ?
Mais pour ecrire dans la base de données, en fait j'ai pas besoin de grand chose, enfin si j'ai bien compris.....
je dois juste utiliser :
mysql_query ("INSERT INTO bdd value( ' ' , ' ??' ) ");
?? : là je sais pas quoi mettre, comment lui dire d'y mettre mon "message" écrit dans la boite de texte ?
Puis, qui sait, si ça m'inspire, je rajouterai peut être d'autres tables par la suite ;o))
petite question en passant, j'ai crée la page formulaire, si j'ai bien compris, je fais le lien vers ma page "réception" qui elle va écrire dans la base de données... j'ai bon ?
Mais pour ecrire dans la base de données, en fait j'ai pas besoin de grand chose, enfin si j'ai bien compris.....
je dois juste utiliser :
mysql_query ("INSERT INTO bdd value( ' ' , ' ??' ) ");
?? : là je sais pas quoi mettre, comment lui dire d'y mettre mon "message" écrit dans la boite de texte ?
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
135
>
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
4 mars 2009 à 00:13
4 mars 2009 à 00:13
Page ajout_message.php (ta table s'appelle tableMessages(id, msg))
Tu peux bien sûr améliorer ce script, mais ça devrait déjà faire ce que tu veux...
<?php // On vérifie si le formulaire a été validé if ( isset( $_POST['message'] ) ) { // Connexion à la base de données // Contrôle de la validité de message et échappement des caractères interdits // Insertion dans la base : // INSERT INTO tableMessages ( 'msg' ) // VALUES ( $_POST['message'] ); // Si code de retour OK echo '<p>Message ajouté.</p>"; // Si erreur echo "<p>Il y a eu une erreur lors de l'ajout du message.</p>'; } else { // Sinon on affiche le formulaire ?> <form method="post" action="ajout_message.php"> <textarea rows="5" cols="50" name="message"> Saisis ton texte. </textarea> <input type="submit"> </form> <?php } ?>
Tu peux bien sûr améliorer ce script, mais ça devrait déjà faire ce que tu veux...
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
10
>
pyschopathe
Messages postés
1974
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
22 mars 2010
4 mars 2009 à 00:16
4 mars 2009 à 00:16
merci, je vais essayer ça, parce que là j'ai utilisé ça :
$message= $_POST['message'];
mysql_query("insert into astucios_texte values ('' , '$message')") ;
j'ai testé, j'ai ecrit mon texte et j'ai envoyé.
je n'ai pas eu de messages d'erreur, mais il n'y a rien qui est arrivé dans ma base , je sais pas ou ça c'est perdu loll
au moins avec ton code, j'aurai un retour ;o))
merci
Edit : Bon ça fonctionne ce que j'ai fait, mais je voudrais à la fin, renvoyer sur ma page "formulaire", j'ai essayé avec header location mais ça ne fonctionne pas.
$message= $_POST['message'];
mysql_query("insert into astucios_texte values ('' , '$message')") ;
j'ai testé, j'ai ecrit mon texte et j'ai envoyé.
je n'ai pas eu de messages d'erreur, mais il n'y a rien qui est arrivé dans ma base , je sais pas ou ça c'est perdu loll
au moins avec ton code, j'aurai un retour ;o))
merci
Edit : Bon ça fonctionne ce que j'ai fait, mais je voudrais à la fin, renvoyer sur ma page "formulaire", j'ai essayé avec header location mais ça ne fonctionne pas.
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
10
>
Nat_astuciosités
Messages postés
128
Date d'inscription
dimanche 21 septembre 2008
Statut
Membre
Dernière intervention
14 janvier 2010
4 mars 2009 à 01:31
4 mars 2009 à 01:31
C'est bon, j'ai trouvé ;o)))
ça fonctionne avec ob_start et ob_flush, fallait le trouver celui là loll
Pourtant j'avais viré tout le html de la page...
Bon, me reste plus qu'à m'attaquer à l'affichage, mais d'abord rajouter un troisième champ. finalement je vais mettre un titre pour aller avec mes textes ;o))
ça fonctionne avec ob_start et ob_flush, fallait le trouver celui là loll
Pourtant j'avais viré tout le html de la page...
Bon, me reste plus qu'à m'attaquer à l'affichage, mais d'abord rajouter un troisième champ. finalement je vais mettre un titre pour aller avec mes textes ;o))
3 mars 2009 à 22:50
3 mars 2009 à 23:04
3 mars 2009 à 23:09
Pour le 777, désolé, mais ça fait trop pas propre, sûr qu'il y a moyen de faire autrement sans laisser l'accès à tout le monde : suffit de voir qui a besoin d'accéder au répertoire, les mettre dans un groupe et donner à ce groupe la propriété (et les droits) nécessaires, rien de plus.
En même temps, les images sont rarement des ressources critiques mais c'est pour le principe : 777 c'est (99% du temps) le MAL !
3 mars 2009 à 23:07
Merci pour vos réponses.
Je vais utiliser une bdd quand même, maintenant que je l'ai faite.
je viens de la créer, j'ai mis 2 champs, id et texte.
et là je suis sur le site du zéro pour avancer pour le reste. ;o))
J'ai compris le principe, il ne me reste plus qu'à appliquer.
Merci pour le modèle de code, je vais m'en inspirer un peu et essayer de le comprendre.
Merci psychopate pour les explications.
je viendrais appeler au secours si je m'en sors pas ;o))
3 mars 2009 à 23:18