> Tous les forumsForum des Webmasters

 Création d'une base de données?Sujet résolu
3 pages : [1] 2 3 ... Fin
Bas de la page Page Précédente Page Suivante 
Statut du sujet : RESOLU Imprimer
 ogd
  Posté le 18/04/2008 @ 11:09  
 Astucien

2059 Messages

Hello!

J'ai un projet pour mon site: Je voudrais proposer à nos visiteurs d'ecouter un extrait des tubes que nous diffusons...

donc sur ma page j'aurais un lien "ecouter"

Il faut que ce lien ouvre un pop up qui contienne ces données:

-pochette du titre

-nom d el'artiste

-nom du titre

-appel du fichier mp3 dans le player (qui sera je pense du style dewplayer)

Je risque d'avoir un nombre important d'artistes, donc je ne vais pas créer un pop up pour chaque...

J'imagine donc qu'il me faut passer par une base de données qui permettra d'appeler les bonnes données dans le pop up en fonction d'une id présente dans le lien?

Quelqu'un peut il m'aider à mettre ce système en place?

-création de la base de donnée.

-code du lien

-code du popup pour faire apparaitre les donnees

-formulaire simple pouralimenter la base de données

je ne pense pas avoir oulié quelque chose mais je suis ouvert à vos idées et conseils.

Merci

Ogd

 Afficher le profil de ogd Envoyer un message privé à ogd
 
 
Publicité
 tirikou  Posté le 18/04/2008 à 11:54  
Astucien


1086 Messages

Bonjour,

Oui le mieux est la base de données.

Pour créer une base c'est très simple dans phpmyadmin.

Il te faut ensuite créer une table avec des champs dans lesquels tu stockes tes infos.

Pour le popup je suis PARTISAN du faux popup en php qui permet de l'afficher même si javascript est désactivé.

Un exemple est dispo sur mon site en signature en allant sur Web site puis en cliquant en haut à droite sur "me remercier".

C'est simple à faire. Je pourrais te filer un script.

Pour le lien c'est selon.

En fait tu transmets une variable GET (par exemple l'id) qui est récupérée. Une requete extrait les infos attachée à l'id et tu les affiches.

Un lien est du type index.php?tube=1

Cela créé une variable $_GET['tube'] qu'il faut ensuite extraire (protéger) puis tester et enfin passer en argument d'une requette.

Voila pour déblayer le terrain

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 18/04/2008 à 12:46  
Astucien

2059 Messages

Merci pour tes conseils...

Je viens de créer la base de données ...

Mais je ne sais pas quoi faire pour créer ma table...

On me demande plain d'infos

En fait, je pense que ma table devrait contenir 5 champs:

-ID - Artiste - Titre - Image - mp3

Mais est ce qu'une seule table suffit? et quels éléments mettre (varach etc...)

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 18/04/2008 à 13:25  
Astucien


1086 Messages

Donc tu crées 5 champs en vachard en lui donnant comme valeur 250.

Pense à cocher tout au bout de ta ligne id "clé primaire" et auto-increment.

Si tu penses que tu devras updater ta base,fixe tous les champs sauf id sur NULL = NULL.

A priori une seule table va largement suffire.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 tirikou  Posté le 18/04/2008 à 13:27  
Astucien


1086 Messages

Oupssss,

pour le champ id met plutot INT que vachard et fixe à 9 la taille. Cela voudra dire que tu pourras avoir un nombre de "tubes" à 9 chiffres pour tes visiteurs !

Si c'est trop met 5 tu pourras changer plus tard.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 18/04/2008 à 16:36  
Astucien

2059 Messages
alors...

J'ai créé ma base, ma table, le champ ID sans problème...

Pour le champs artiste, j'entre ceci:

champs: artiste

Type : varchar

valeurs: 250

Null: Null

Extra: auto_increment

primary key

et il me retourne cette erreur:

Erreur

requête SQL:

ALTER TABLE `mp3` ADD `artiste` VARCHAR( 250 ) NULL AUTO_INCREMENT PRIMARY KEY COMMENT 'nom de l artiste'

MySQL a répondu:Documentation

#1063 - Incorrect column specifier for column 'artiste'

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 18/04/2008 à 16:52  
Astucien

2059 Messages

ah vi...

en fait il aime pas le auto increment sur les autres champs..

Mais je dois choisir leprimary key pour tous les champs ou juste pour le ID

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 18/04/2008 à 17:36  
Astucien

2059 Messages

voilà, mes 5 champs sont créés...

J'ai créé un formulairepour intégrer mes données dans la bdd...

il fonctionne et renvoie bien les données dans les champs de la bdd...

Je peux egalement lire les donnees;..

Lundi gros chantier pour la suite du script, merci pour votre aide et si durant le week end, vous avez des conzseils à me prodiguer, merci d'avance!

Bon week end



Modifié par ogd le 18/04/2008 18:31
Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 18/04/2008 à 18:15  
Astucien


1086 Messages

Désolé pour le retard.

L'auto increment ne se met que sur 1 champ. L'ID.

Pour le reste je regarde et je poste

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 tirikou  Posté le 18/04/2008 à 18:19  
Astucien


1086 Messages
C'est une erreur Sql ou fromulaire ?
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 18/04/2008 à 18:33  
Astucien

2059 Messages

oups désolé, on s'est croisé....

Non plus d'erreur pour le moment ajout et lecture des donnees ok...

Pas si compliqué que ca finalement sql mais j'aurais srement des questions lundi...

Merci encore

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 22/04/2008 à 12:56  
Astucien

2059 Messages

Hello!

J'espère que vous avez passé un bon week end?

Alors voilà...

J'ai un souci car dès que j'affiche la page qui contient le formulaire, cela incrémente la base d'un nouvel Id, sans données accociees bien sur, puisque je n'ai rien remplit...

Mais ce qui fait que mon nombre d'id augmente au fur et à mesure que j'ouvre la page de mon formulaire...

Second souci du jour, je voudrais pouvoir, a partir du tableau qui liste les donnees, mofifier certaines de celles ci en cas d'erreur de saisie....

Enfin, dans ma base, 2 champs sont consacres à des url..

Est ce que je peux ne mettre que la fin des url, et plus tard, quand il s'agira de les appeler, dire au script voulu qu'il faut rajouter le debut?

Ce qui me permettrait de ne pas avoir à chaque fois à mettre l'url entiere, relativement longue, avec source d'erreur...

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 22/04/2008 à 13:27  
Astucien


1086 Messages

Bonjour,

Si ta table s'incrémente c'est que le traitement du fromulaire se fait dès l'ouverture. C'est sans doute un problème de test d'existenbce de varaibles envoyés qui est erroné.

En général une page de formualire commence par

Si $_Post tralala existe et si $_Post ...

Alors on traite

Ensuite seulement on soumet le formulaire vierge.

Je doute que tu puisses modifier des données contenues dans un tableau d'affichage. Par contre tu peux créer un bouton qui t'affiches les données à modifier dans un formulaire de modification.

Il faudra que dans ta base tes champs (sauf ton champs "Clé primaire" soient fixés à DEFAULT=NULL sinon tu risqueras des erreurs.

Pour le stockage de tes liens ta solution est parfaitement possible.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 22/04/2008 à 17:07  
Astucien

2059 Messages
tirikou a écrit :

Bonjour,

Si ta table s'incrémente c'est que le traitement du fromulaire se fait dès l'ouverture. C'est sans doute un problème de test d'existenbce de varaibles envoyés qui est erroné.

En général une page de formualire commence par

Si $_Post tralala existe et si $_Post ...

Alors on traite

Ensuite seulement on soumet le formulaire vierge.

oui, il y avait une erreur dans mon code qui es modifié à présent, Merci.

Je doute que tu puisses modifier des données contenues dans un tableau d'affichage. Par contre tu peux créer un bouton qui t'affiches les données à modifier dans un formulaire de modification.

Il faudra que dans ta base tes champs (sauf ton champs "Clé primaire" soient fixés à DEFAULT=NULL sinon tu risqueras des erreurs.

normalement, tels que tu m'a aidé à les créer, ils le sont...

Tu pourrais m'aider un peu concernant ce bouton? et concernant un bouton égalemetn pour supprimer un champs complet...

L'idéal serait que dans mon tableau, en face de chaque ligne de champs, je puisse ajouter un bouton pour supprimer cette ligne ou pour la modifier, via un formulaire, cela jel'ai compris au moins.

Pour le stockage de tes liens ta solution est parfaitement possible.


Merci je le note dans un coin de ma tête quand l'heure sera venie de créer mes requêtes...

ah oui, autre chose, pour sécuriser un minimum le dossier qui contient ces pages php, est ce qu'un simple htaccess+htpwd est suffisant?

J'ai également lu qu'il me fallait interdire les injection sql etc dans mon formulaire, quezako?

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 22/04/2008 à 17:37  
Astucien


1086 Messages

T'es gourmand quand tu t'y met ...

Bon allons y !

Pour le bouton modif ou supprimer.

Lorsque tu récupères tes données pour les afficher tu utilise une requete.

Il te suffit de mettre un bouton ou un lien en face de chaque ligne contenant l'id de la ligne.

En cliquant sur ce bouton ou ce lien tu récupère : Si $post modif existe >> ouvrir formulaire >> récupérer les valeurs des champs >> Préremplir les champs (si c'est un lien ce sera une variable $get).

Ensuite récupérer les valeurs des nouveaux champs envoyer et utiliser une requete update.

Pour supp c'est encore plus simple tu récupères $post supprimer (qui contient l'id de la ligne à supprimer ou de la valeur d'un champ à supprimer), tu fais une sécurité "Etes vous sur ?" puis sur oui une requete DELETE.

Tout va bien ???

Htacces est largement suffisant pour protéger ces pages.

Pour l'injection sql, il est vraiment indispensable de protéger les valeurs envoyées par les champs de tes formulaires. S'il n'y a que toi qui les utilise et aucunement les visiteurs laisse tomber mais si c'est le contraire, toute variable $post définie par un utilisateur DOIT être protégée.

Ici tuto sur l'injection sql

Pour les $get c'est un impératif systématique. Te pose même pas la question, protège les !

J'utilise $truc_bidule = mysql_real_escape_string(htmlspecialchars($_GET['truc_bidule']))

A noter que l'injection sql n'est possible qu'à condition que la valeur de la variable envoyée soit utilisée dans une requête.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 23/04/2008 à 09:16  
Astucien

2059 Messages

Hello!

Je suis désolé, tu va me trouver gonflant, mais j'ai regardé pas mal de tutos depuis hier, lu pas mal de forums, mais je ne comprends pas comment créer ce bouton pour qu'il apparaisse dans chaque ligne du tableau pour effacer la ligne correspondante...

A la limite, si je ne peux pas modifier la base, c'est pas trop grave, mais il faudrait au moins que je puisse supprimer la ligne comprenant une erreur pour la recréer...

J'ai aussi un souci dans le sens ou dans mon tableau, les id apparaissent dans n'importe quel ordre, mais je pense pouvoir résoudre ce souci, en tous cas je vais essayer de me débrouiller pour ca..

mais pour le delete, si tu pouvais m'aider?

voici le code de ma page:

<body bgcolor="#005B7B">

<p align="center">
<img border="0" src="../images/dindex/logofpforum.jpg" width="196" height="196"></p>
<p align="center">Panel de Gestion des Mp3</p>
<div align="center">
<center>
<table border="1" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" width="600" id="AutoNumber1" height="50">
<tr>
<td width="150" height="50" align="center" background="menu.jpg">
<a href="accueil.php"><font color="#000000">Accueil</font></a></td>
<td width="150" height="50" align="center" background="menu.jpg">
<a href="newmp3.php"><font color="#000000">Ajout de titre</font></a></td>
<td width="150" height="50" align="center" background="menu.jpg">
<a href="liste.php"><font color="#000000">Liste</font></a></td>
</tr>
</table>
</center>
</div> &nbsp;

</center>

<?

include("sql1.inc");
mysql_connect($host, $user, $pass);
mysql_select_db("$bdd")
or die("Ouverture base impossible");

{
$mp3=mysql_query("SELECT * FROM mp3 ");
}
mysql_close;

//création du tableau


echo"<CENTER></p>
<TABLE BORDER=5 bgcolor='#cococo'bgcolor='#cococo' bordercolorlight='#FFFFFF' width='850' style='border-collapse: collapse' bordercolor='#111111' cellpadding='0' cellspacing='0';>";
echo"<TR>";
echo"<TD width='50'><CENTER><B>ID";
echo"<TD width='150'><CENTER><B>Artiste";
echo"<TD width='150'><CENTER><B>Titre";
echo"<TD width='200'><CENTER><B>Visuel";
echo"<TD width='200'><CENTER><B>Mp3";
echo"<TD width='100'><CENTER><B>Date";


while ($ligne=mysql_fetch_object($mp3))

{
echo"<TR>";
echo"<TD width='50'><CENTER><B>$ligne->ID";
echo"<TD width='150'><CENTER><B>$ligne->artiste"; echo"<TD width='150'><CENTER><B>$ligne->titre";
echo"<TD width='200'><CENTER><B>$ligne->img";
echo"<TD width='200'><CENTER><B>$ligne->son";
echo"<TD width='100'><CENTER><B>$ligne->date";


echo"<BR>";

}

?>
</body>

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 23/04/2008 à 10:26  
Astucien


1086 Messages

Le plus simple pour le delete est de faire un lien.

Dans ta boucle qui liste tes résultats et les affiche tu inséres l'affichage de l'id.

a href = ma_page.php?action=supp&id=<?php echo $recup['id']; ?>>Supprimer /a

ma_page.php est ta page courante que tu recharges.

Ce qui te permet sur son clic de récupérer :

Si $_GET action == supp AND $_GET id != ""

DELETE FROM ma_table WHERE id = $_GET id

Pour l'ordre des id tu tries tes enregistrements non ? ORDER BY ...

Mais si tu les veux dans un ordre qui n'est pas trié sur l'Id c'est normal qu'ils soient en désordre et cela n'a aucune gravité.

Comme le champ id est défini comme clé primaire il ne peut y avoir aucun doublon donc aucune chance de delete un autre enregistrement que celui désigné.

Attention, ici le delete efface tous les champs d'un enregistrement. Donc toute la ligne concernée.



Modifié par tirikou le 23/04/2008 10:30
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 23/04/2008 à 11:21  
Astucien

2059 Messages

Donc j'ajoute ceci:

echo"<TD width='50'><CENTER><B>
Si $_GET action == supp AND $_GET id != ""
DELETE FROM mp3 WHERE id = $_GET id
";

Mais j'ai ce message:

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /xxxxxx/sql/liste.php on line 67

J'ai essayé en modifiant:

<a href='liste.php?action=supp&id=<?php echo $recup['id']; ?>'>Suppr</a>

IF $_GET ['action'] ==supp AND $_GET['id']!=''

DELETE FROM mp3 WHERE id = $_GET['id']

Mais toujours pareil.

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 23/04/2008 à 12:35  
Astucien


1086 Messages

Attention,

Pense bien à protéger ta variable GET

Si $get existe alors $id = mysql_real_escape_string(htmlspecialchars($_GET['id']));

Ensuite dans ta requete il faut mettre les quotes et la concatenation

$req = 'Delete From ma_table Where id = " '.$id.' " ';

ou $req = "delete from ma_table where id = '$id' ";

En fait le problème vien de la variable $get passée direct dans la requete

Ceci devrait marcher si tu veux conserver $get

$ req = "delete from ma_table where id = ' ".$_Get['id']." ' ";

Après cela dépende si tu utilises les quotes ou les doubles quotes pour écrire ta requete



Modifié par tirikou le 23/04/2008 12:44
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 23/04/2008 à 12:54  
Astucien

2059 Messages

Je suis désolé,

Je vois bien que tu y mets toute ta gentillesse et toute ta patience, mais je suis d eplus en plus perdu...

peut etre que je m'attaque a trop gros pour moi, mais la je nage complet...

En fait avant de proteger, il faudrait dejà que j'arrive à créer la fonction, et là, c'est pas gagné, ...

J'ai toruvé plein de tutos pour le faire en formulaire...mais j'arrive pas à adapter pour un lien...

concernant ton code, il me semble bien différent de ce que j'ai vu, plus proche de ce que je cherche aussi, mais j'arrive pas à l'utiliser...

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 23/04/2008 à 15:17  
Astucien


1086 Messages

Aller, on fait un dernier essai ?

Je te mets en lien le tuto d'un mini tchat du site du zero qui ressemble à la structure que tu veux.

Structure de ton interface :

// On commence par effacer les enregistrement demandés

Si tu as une variable $get action == supp

récupération de la valeur de $get (l'id à effacer) puis requete delete

// On verifie si on a quelque chose à insérer dans la base

Sinon si $post insert existe on récupère les valeurs des différents champs à insérer

On les insère INSERT INTO ....

Dans tous les cas on affiche le contenu de la table (par exemple limité aux 10 dernières insertions) avec un lien

a href="ma_page.php?action=supp&id=...."> Supp /a

dans tous les cas aussi on affiche le formulaire

Donc en envoyant le formulaire on insère dans la table en rechargeant la même page et l'on affiche les 10 derniers enregistrements avec la possibilité de les effacer.

Si l'on veut effacer un enregistrement on clique sur le lien "Supp" qui envoie la variable $getaction = supp et déclenche le delete.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 23/04/2008 à 16:10  
Astucien

2059 Messages

Merci pour ta patience,

Je regarde ca demain car levé depuis 5H ce matin, j'ai plus les yeux en face des trous...

Bonne après midi

Je donne des nouvelles demain dans la matinee.

Merci

ogd

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 24/04/2008 à 12:20  
Astucien

2059 Messages

Hello!

Bon...J'ai relu le lien que tu m'as donné, je l'avais déjà lu par moi même, mais peut être pas correctement...

J'ai aussi posé ma question à une autre personne...

De vos aides conjointes, j'en arrive à ça:

Dans la page de ma liste:

echo"<CENTER></p>
<TABLE BORDER=5 bgcolor='#cococo'bgcolor='#cococo' bordercolorlight='#FFFFFF' width='850' style='border-collapse: collapse' bordercolor='#111111' cellpadding='0' cellspacing='0';>";
echo"<TR>";
echo"<TD width='50'><CENTER><B>ID";
echo"<TD width='150'><CENTER><B>Artiste";
echo"<TD width='150'><CENTER><B>Titre";
echo"<TD width='200'><CENTER><B>Visuel";
echo"<TD width='200'><CENTER><B>Mp3";
echo"<TD width='100'><CENTER><B>Date";
echo"<TD width='100'><CENTER><B>Suppr.";

while ($ligne=mysql_fetch_object($mp3))

{ echo"<TR>";
echo"<TD width='50'><CENTER><B>$ligne->ID";
echo"<TD width='150'><CENTER><B>$ligne->artiste";
echo"<TD width='150'><CENTER><B>$ligne->titre";
echo"<TD width='200'><CENTER><B>$ligne->img";
echo"<TD width='200'><CENTER><B>$ligne->son";
echo"<TD width='100'><CENTER><B>$ligne->date";
echo"<TD width='100'><CENTER><B><a href='supprimer.php?ID=$ligne->ID'>Suppr</a>";

dans mon fichier supprimer.php :

{
$ID = (isset($_GET['ID'])) ? abs(intval($_GET['ID'])) : 0;
$req_del = "DELETE FROM mp3 WHERE ID=' ".$_GET['ID']." ' ";
}

Quand je clique sur le lien suppr, je vais bien sur la page supprimer.php avec l'id de la ligne voulue

mais la requête ne semble pas être lue, d'ailleurs la ligne de données n'est pas supprimée...

Ai je fais une erreur de synthaxe?

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 24/04/2008 à 17:26  
Astucien


1086 Messages

Je crois que c'est plutot cela :

$req_del = 'DELETE FROM mp3 WHERE ID=" '.$_GET['ID'].' " '

or die ('Erreur requette_delete:'.mysql_error());

Pense à mettre cette deuxième ligne et elève bien le point à la fin de la première.

C'est assez utile.

OUps ..... n'utilise pas $_get direct dans la requete. fais $id = $get id et appelle $id dans ta requete initiale.

Cela devrait fonctionner.

Sinon prends la mienne mais avec $id.

Sql n'aime pas les $_post et $_get

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 25/04/2008 à 17:12  
Astucien

2059 Messages

Bon...

je n'avance toujours pas...

Mon code dans la page supprimer.php

{
$ID = $_GET['ID'];
$req_del = 'DELETE FROM mp3 WHERE ID="$ID" '
or die ('Erreur requete_delete:'.mysql_error());
}

en fait, je n'ai pas de message d'erreur ni php ni mysql, simplement la page reste vide, comme si elle ne lisait pas l'ordre qu'on lui donne

J'ai vérifié l'url, elle contient bien l'id de la ligne qu'on veut supprimer, les majuscules sont bien respectees:

url/supprimer.php?ID=4

Mais, si elle ne pouvait pas executer le delete, il devrait bien me donner le message Erreur requete_delete

non?

Merci

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 25/04/2008 à 17:44  
Astucien


1086 Messages

$req_del = " DELETE FROM mp3 WHERE ID='$id' ";


print $req_del;

die ('Erreur requette_delete:'.mysql_error());

mysql_query($req_del);

Le print va arreter ta requete et l'afficher.

Post son résultat

Au fait tu te connectes bien à ta bdd dans ta page supprimer.php .

Que ta page reste vide me semble normal puisque tu appelles une page qui ne contient que la requete. Donc rien ne s'affiche.

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 25/04/2008 à 17:58  
Astucien

2059 Messages

oui,je te rassure, je me connecte bien à ma bdd

avec ton script, j'obtiens :

$req_delErreur requette_delete:

Pourrait au moins expliquer ce qui se passe la bête...

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 25/04/2008 à 18:05  
Astucien

2059 Messages

Heuuu, je viens d'essayer autre chose...

mon code:

$ID = (isset($_GET['ID'])) ? abs(intval($_GET['ID'])) : 0;
$req_del = "DELETE FROM mp3 WHERE ID=' ".$_GET['ID']."' ";
$ok=mysql_query($req_del);
if ($ok){echo 'Requête exécutée';}
else {echo 'Impossible d\'exécuter cette requête...';}

les 2 premieres lignes sont celles que j'avais ce matin, telles quelles...

sauf que la..ca marche...

Si j'enleve les 3 dernieres lignes, ca ne marche plus...

pourtant, elles ne sont la que pourafficher les résultats de la requete...

ou alors elle influent sur l'actino de la requete?

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 25/04/2008 à 18:14  
Astucien


1086 Messages

Non c'est ce que je viens de voir il manquait dans mon code $delete = mysql_query($req_del)

C'est donc uniquement ce $delette qui manquait.

Si tu essaies avec seulemen en otant les deux dernières lignes cela fonctionne aussi.

En fait $req_del définit la requete à exécuter.

$delete = mysql_query($req_del) exécute la requete.

En ne faisant pas mysql_query ta requete était définie mais n'était pas exécutée donc pas d'erreur mais pas d'exécution.

Tu peux faire en une seule ligne avec

$ req_del = mysql_query(ta_requete)

Désolé j'a pa vu !!!!



Modifié par tirikou le 25/04/2008 18:17
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 25/04/2008 à 18:48  
Astucien

2059 Messages

c'est rien, ca m'aura permis de découvrir tellement de choses...

J'ai un dernier souci, qui doit etre du meme ordre:

mon code:

{
$ID = (isset($_GET['ID'])) ? abs(intval($_GET['ID'])) : 0;
$mp3=mysql_query("SELECT * FROM mp3 WHERE ID=' ".$_GET['ID']." ' ");
$ok=mysql_query($mp3);
if ($ok){echo 'Affichage avec succès !';}
else {echo 'Impossible d afficher les données...';}
}

ensuite j'appelle via les echo mes données là ou je les veux dansma mise en page...

Mais il me dit impossible d'afficher les données

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 25/04/2008 à 19:14  
Astucien


1086 Messages

Déjà, ces deux lignes sont redondantes :

$mp3=mysql_query("SELECT * FROM mp3 WHERE ID=' ".$_GET['ID']." ' ");
$ok=mysql_query($mp3);

Tu exécutes deux fois ta requete. C'est pas top ! Pas top du tout

Là c'est du délire :

$mp3=mysql_query("SELECT * FROM mp3 WHERE ID=' ".$_GET['ID']." ' ");

Dans un premier temps tu proteges la variable $_get id :

$ID = (isset($_GET['ID'])) ? abs(intval($_GET['ID'])) : 0;

Mais dans ta requete tu l'utilises telle quel ($_get id) !

A quoi ça sert ?????

En tout cas cela ne peut pas fonctionner à cause du début de ce post.

Il faut que $mp3 = select ....

Puis tu l'éxécutes $ok = mysql_query($mp3)

Ou alors tu testes direct if($mp3) avec $mp3 = mysql_query(select ....)

Houba houba hop !



Modifié par tirikou le 28/04/2008 12:32
Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 28/04/2008 à 18:55  
Astucien

2059 Messages

J"'ai bien lu ton mesage, je me penche dessus demain.

Merci pour le temps que tu consacres à ce post !

Bonne fin de journée

Ogd

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 ogd  Posté le 30/04/2008 à 09:26  
Astucien

2059 Messages

Hello!

Bon, j'ai réussi à le faire marcher:

<?
include("sql/sql.inc");
mysql_connect($host, $user, $pass);
mysql_select_db("$bdd")
or die("Ouverture base impossible");

{
$ID = (isset($_GET['ID'])) ? abs(intval($_GET['ID'])) : 0;
$mp3=mysql_query("SELECT * FROM mp3 WHERE ID=' $ID' ");

}
while ($donnees = mysql_fetch_array($mp3) )

{
?>
<img border="0" src="
../images/dpeople/<? echo $donnees['img'] ?> " width="100" height="100" align="left" hspace="15">

etc...

je ne sais pas si c'est tres beau mais ça a le mérite de marcher

J'ai oublié 2 choses (je crois que là tu va me taper dessus

-sur le bouton supprimer dans le tableau de donnees, je voudrais mettre une sécurité qui me demande de confirmer avant la suppression

-est ce compliqué de créer un bouton qui permette de modifier les différents champs d'un ID, avec le formulaire qui s'ouvre soit dans la même page,soit dans une autre page? Mais je voudrais que les donnees actuelles s'affichent dans les champs du formulaire...

Merci beaucoup pour ton aide qui est précieuse...

Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 30/04/2008 à 11:50  
Astucien


1086 Messages

Euh non c'est pas compliqué ...

C'est même recommandé.

Le principe :

Tu cliques sur supprimer et tu recharges la même page.

Tu récupères ton ID dans un champ input type="hidden" et tu affiches un petit message qui te demande êtes vous sur ? avec un bouton confirm. En cliquant tu exécutes ta requete delete. Et comme toujours on commence toujours par la fin ...

if $post confirm existe alors $id=$post id; delete ...

if $post delete existe alors $id=$post id; rempli le champ hidden avec value="$id" affiche le message de confirm.

dans tous les cas affiche ....

C'est pareil avec GET.

Pour modifier les champs d'un ID ce n'est pas compliqué.

Tu cliques sur un bouton modif (qui envoi l'ID à modifier) qui ouvre un formulaire. Avec une requete select tu récupères la valeur de tes champs et tu préremplis tes champs avec value="<?php echo $recup['champ1']; ?>" etc.

Tu modifies la valeur de tes champs et avec un bouton envoyer tu fais une requete update.

En fait rien n'est vraiment compliqué avec les formulaires mais c'est toujours très long à faire.

Juste une remarque : Le style que tu utilises ici n'est plus valable. Il est préférable d'utiliser style="width: 100px; height: ... avec les propriétés css (text-align= ... au lieu de align= ... par exemple)"

<img border="0" src="../images/dpeople/<? echo $donnees['img'] ?> " width="100" height="100" align="left" hspace="15">

De plus il faut qu'une balise img soit dans une balise bloc comme une balise p

<p><img src="" .../></p>

De plus on prend souvent la peine de mettre border="0" pour éviter la création d'un très très moche cadre bleu.

Enfin, le alt (texte alternatif à l'image) est obligatoire soit pour résumé :

<p><img src="" border="0" alt="" style=""/></p>

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
 ogd  Posté le 02/05/2008 à 12:21  
Astucien

2059 Messages

alors pour le delete:

je ne peux pas faire quelque chose comme ça?

<script language="javascript">
function confirme( identifiant )
{
var confirmation = confirm( "Voulez vous vraiment supprimer cet enregistrement ?" ) ;
if( confirmation )
{
document.location.href = "supprimer.php?ID=$ligne->ID"+identifiant ;
}
}
</script>

puis dans mon tableau: echo"<TD width='100'><CENTER><B>
<a href='#' onClick=\"confirme('".$result->id_personne."')\" ><img border='0' src='poubelle.gif' width='35' height='35'></a>";

j'ai du oublier quelque chose car ca ne marche pas, mais dans l'esprit, ca doit pouvoir fonctionner?

si je confirme il envoie vers supprimer.php?ID=$ligne->ID (c'est ce qu'il affiche et non supprimer.php?ID=38 par ex) donc il n'interprète pas l'appel de l'ID

si je clique sur annuler il ne fais rien ce qui est normal



Modifié par ogd le 02/05/2008 12:46
Afficher le profil de ogd Voir la configuration de ogdEnvoyer un message privé à ogd
 Revenir en haut de la page
 tirikou  Posté le 02/05/2008 à 15:18  
Astucien


1086 Messages

Ah la monzami je peux pas t'aider.

Oui il semble bien que sur le principe cela soit bon mais connais pas javascript assez pour corriger une syntaxe.

Désolé

Afficher le profil de tirikouEnvoyer un message privé à tirikou
 Revenir en haut de la page
Haut de la page 
3 pages : [1] 2 3 ... Fin
Haut de la page Page Précédente Page Suivante 
Inscrivez-vous !
- Posez vos questions

- Résolvez vos problèmes

- Aidez les autres

- Participez et créez vos discussions

- Dialoguez en privé avec d'autres membres

- Suivez vos sujets préférés

- Affichez les signatures des membres

TOUT EST GRATUIT !

Je crée mon compte




Vous avez besoin d'aide ?
Des centaines d'experts sont à votre disposition sur les forums PC Astuces pour vous aider gratuitement, 24h/24, 7j/7.

Les derniers sujets résolus !
 

 > Tous les forumsForum des Webmasters

 
Forum PC Astuces© 1997-2009 WebastucesAller en haut de la page