[PROBLEME] ID AUTO INCREMENT & Photos Miniatures

Invité
Invité n'ayant pas de compte PHPfrance

04 nov. 2005, 03:58

Bonsoir à tous !

Voila 4 ans que je me tâte de me lancer dans le php, et vla que je me suis lancé y'a 2 semaines et j'ai attaqué ma première base de donnée ! je sais pas comment j'ai fait lol, mais ça avance..car entre mysql, phpmyadmin, php, dreamweaver, flash, photoshop, mon cerveau bouillone anormalement depuis quelques jours...

j'aurais aimé vous demander s'il serait possible de me dire comment faire pour palier à mon pb ! si ça se trouve c'est tout bête ! mais je ne trouve pas comment faire !

en gros je collectionne des vinyls ! rien ne me motivait plus pour apprendre le php de me faire une base de donnée qui va servir :D

sur un de mes templates nommé "BASE.php" j'y ait ajouté le code suivant afin que mes screenshots soient en thumbnails/miniature sur ma page, avec une simple fonction de popup !

Code : Tout sélectionner

<SCRIPT LANGUAGE="JavaScript"> <!-- function PopupImage(img) { titre="::: aD².DB :::"; w=open("",'image','width=400,height=400,toolbar=No,scrollbars=no,resizable=yes'); w.document.write("<HTML><HEAD><TITLE>"+titre+"</TITLE></HEAD>"); w.document.write("<SCRIPT language=javascript>function checksize() { if (document.images[0].complete) { window.resizeTo(document.images[0].width+10,document.images[0].height+30); window.focus();} else { setTimeout('checksize()',250) } }</"+"SCRIPT>"); w.document.write("<BODY onload='checksize()' onblur='window.close()' onclick='window.close()' leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>"); w.document.write("<TABLE width='100%' border='0' cellspacing='0' cellpadding='0' height='100%'><TR>"); w.document.write("<TD valign='middle' align='center'><IMG src='"+img+"' border=0 alt='Image bientôt disponible...'>"); w.document.write("</TD></TR></TABLE>"); w.document.write("</BODY></HTML>"); w.document.close(); } //--> </SCRIPT>
puis pour lancer la fonction un lien que voici :

Code : Tout sélectionner

<A href="javascript:PopupImage('./screenshots/AUDI0_PLUGZ/ID_<?php echo $row_mabd['id']; ?>.jpg')"><img src="./screenshots/AUDI0_PLUGZ/ID_<?php echo $row_mabd['id']; ?>.jpg" alt="Image bientot disponible..." width="150" height="100" border="0" class="image"></a>
en gros j'uploade mes screenshots avec un nom bien spécifique "ID-" suivi du numéro ID du vinyl de ma base

or, le soucis c'est un peu dur à expliquer c'est que j'ai 200 vinyls ! et via ce code là, lorsque j'affiche ma page php, le vinyl ID-4 aura le même screenshot que le ID-14 ou le ID-40 car le chiffre 4 est pris en compte comme ID-4 sur n'importe quelle fiche..je sais pas si je suis clair, il est tard, j'espère que oui ! :)

si quelqu'un peut m'aider je lui en serais reconnaissant !
merci ;)

Petit nouveau ! | 7 Messages

04 nov. 2005, 04:14

oups, désolé je m'étais pas logué je suis l'auteur du message ci-dessus !

merci pour une éventuelle réponse !

j'en profite juste pour vous poser une question que je pense idiote mais bon, voila ma page est faite avec quelques petites requêtes de faites, seulement mes 200 vinyls s'affichent sur ma page en un bloc via mon template, et ça fait un long temps de chargement et ce n'est que le début étant donné que il n'y a encore quasi aucunes infos pour chaque fiche (qui s'affichent donc sur cette même page) soit une description, et un screenshot...serait il possible de faire en sorte que pour chacuns de mes vynils ça me crée une page html distincte au lieu de tout en vrac sur mon unique et lourde page .php ?

encore merciiiiii pour une éventuelle réponse ! :wink:

ViPHP
ViPHP | 649 Messages

04 nov. 2005, 04:31

Pour le temps de chargement, tu n'as qu'à faire un système de changement de page (10 par page par exemple). Regarde:
<?
session_start();
?>
<?
session_start();
?>
<html>

   <head>
   <title>Livre d'or</title>
   </head>
<?

mysql_connect("localhost", "root", "");
mysql_select_db("database");




//On commence à afficher les trucs


$countmessages = mysql_query("SELECT COUNT(*) AS nbre_vinyls FROM table_vinyls");
$donneescountmessages = mysql_fetch_array($countmessages);

$nombre_de_messages = $donneescountmessages['nbre_messages'];

$nombre_de_messages_par_page = 10;

$nombre_de_pages = ceil($nombre_de_messages / $nombre_de_messages_par_page);



$nombre_de_messages/$nombre_de_pages;
echo 'Page:';

for ($boucle = 1 ; $boucle <= $nombre_de_pages ; $boucle++)


         {
         echo '<a href="page.php?page=' . $boucle . '">' . $boucle . '</a> ';
         }


                    if (isset($_GET['page']))

                                           {
										   $page = $_GET['page'];
										   $premier_message_a_afficher = $nombre_de_messages_par_page*($page - 1);
                                           
										   $username = $_SESSION['user'];
										   
										   $sql = "SELECT * FROM table_vinyls ORDER BY id DESC LIMIT $premier_message_a_afficher, $nombre_de_messages_par_page";
                                           }
										   
					else
					
					                       {
										   $username = $_SESSION['user'];
										   $sql = "SELECT * FROM livreor_messages ORDER BY id DESC LIMIT 0,10";
										   }
//On affiche les trucs
$affichage = mysql_query("$sql");

while($donneesaffichage = mysql_fetch_array($affichage))

         {
		 echo '<div style="border:1px solid black; background-color:white; font-family:Arial;">';
		 echo '<b>' . $donneesaffichage['titre'] . '</b> - <b>' . date('d/m/Y', $donneesaffichage['date']) . '</b><br>';
		 echo '<p>' . $donneesaffichage['description'] . '</p>';
		 echo '</div><br>';
		 }


mysql_close();
		   
		   ?>
		   </body>
		   </html>
C'est un script que j'avais déjà conçu auparavant :wink: Tu en trouverais plein du genre en fouillant le web, ils sont tous sur le même principe. L'important, c'est de bien saisir tout le fonctionnement
Image

Invité
Invité n'ayant pas de compte PHPfrance

04 nov. 2005, 15:11

merci beaucoup pour ta réponse ! :wink:

j'ai lu avec attnetion ton script fort sympathique, seulement je me suis planté j'ai 900 vinyls pas 200, et même en affichant 10 vinyls par page ou 20 çaz sera toujours en "bordel" :?

j'aimerais que pour chaque id de mes vinyls ça me crée une page bien distincte en php ou html...mais je doute que ce soit possible :(

et sinon pour ma première question par rapport à l'ID j'ai été assez clair ? quelqu'un aurait un début de réponse à m'apporter ? pleeease ! :oops:

ViPHP
ViPHP | 649 Messages

04 nov. 2005, 17:36

Mais t'inquiète pas, le système de changement de page est très efficace dans ce cas. Si tu demandes 10 messages par page, il ne chargera que les dix demandés, pas les 900. Pour créer un fichier, tu devrais regarder sur le manuel du côté des trucs du genre fopen() et fwrite(), ça devrais t'aider :wink: http://www.nexen.net/docs/php/annotee/manual.php
Image

Invité
Invité n'ayant pas de compte PHPfrance

05 nov. 2005, 05:11

héhé merci pour tes réponses :wink:
j'étudie le sujet et te tiens au courant :P

Petit nouveau ! | 7 Messages

07 nov. 2005, 15:09

alors comme prévu, compte rendu :)
pas très positif :(

c vraiment compliqué php/mySQL, je crois même que depuis que je me suis lancé ça me rend de + en + dingue....c fou....

j'ai bien étudié les fonctions fopen, et fwrite comme tu me l'as conseillé alexbad ;)

or, franchement j'ai du me faire 100 sites parlant de cela, je ne trouve rien de "accessible" à mon niveau :( ...ça part dans des scripts plutot faramineux et je ne sais donc vraiment pas comment m'y prendre...je ne souhaite en aucuns cas qu'on me ponde un script tout fait, mais je pensais vraiment à la base que lorsque ma base de donnée est faite, ça n'aurait pas été trop difficile de créer une page par fiche...soit par exemple 900 pages php ou html pour chacuns de mes ID...

exemple comme je voudrais ici sur le site de KVRAudio :

ici donc la fonction de recherche de plugz :
http://www.kvraudio.com/get.php

et ici la page (générée auto.?) du plug en question :
http://www.kvraudio.com/get/1701.html

sinon merci beaucoup aussi d'avoir partagé ton script pour les 10 articles par page ce qui dans mon cas comme tu le dis allègerait considérablement les requetes sur ma page qui affiche les 900 d'un coup, or je suis en train de m'apercevoir que en fait il faut vraiment que j'évite plusieurs fiches sur une même page pour l'unique et bonne raison que lorsque j'applique un script sur l'une d'elles, ben il s'applique le même sur toutes les autres...pour être plus clair, j'ai mis un script de votes/note/commentaire sur chacune de mes fiches vinyls (donc toutes sur la même page) et en fait lorsque je réactualise la page, la même note est appliquée à mes 900 vinyls sur la même page..;et j'imagine que tant que je n'aurais pas trouvé un moyen d'avoir une page unique pour chacune de mes fiches, ben ça sera pareil pour tous les scripts que je vais mettre sur chacune de mes fiches....je sais pas si je suis clair mais je l'espère....en + y'a une miniature en "thumnails" pour chacun de mes vinyls sur c'te même page, je t'explique pas le temps de chargement à chaque fois...le pire, c'est que la moindre action que je fais genre "édition d'une de mes fiches", ben ça me recharge donc chaque fois la page....

aurai-je donc mal commencé mon boulot ? y'aurait il fallu que dès le départ tout soit séparé ?

quelque chose me dit que ici ça me concerne à 100% mais c'est plutot "théorique" :?
http://phortail.org/astuces-webmaster-0029.html

ce topic est fort intéressant également par rapport à la mise en cache des fichiers .php en .html or je crois que faut bac+5 pour y arriver :(
http://www.webrankinfo.com/forums/viewtopic_28614.htm

snif, voila 3 jours que je n'avance plus du tout sur mon petit projet perso...et dieu sait que ça me passionne grave mais c vraiment pas facile...pourtant j'arrete pas de faire des tutos c vraiment balèze à comprendre toute cette logique... :oops:

Modérateur PHPfrance
Modérateur PHPfrance | 6037 Messages

07 nov. 2005, 15:53

Pas de panique !
Règle n°2 du webmaster : Toujours commencer par le HTML qu'on veut obtenir....toujours ! :priere:
J'aime apprendre de nouvelles choses.

Petit nouveau ! | 7 Messages

07 nov. 2005, 16:13

ton lien ne marche pas :cry:
merci pour ton reply, mere-teresa

ViPHP
ViPHP | 649 Messages

07 nov. 2005, 23:51

D'accord... pour les fonction fopen(), fwrite(), regarde http://www.siteduzero.com . Ensuite, pour tes "commentaires" sur les vinyls, y'a aussi moyen de tout arranger, c'est certain Sans compter que l'ouverture de nouveaux fichiers chaque fois serait, disons-le, pas très ordonné. Avec php, sky is the limit... enfin, on peut pas aller dans l'espace avec mais.... Pour le php, le site du zéro, c'est une excellente place pour débuter de zéro. Alors, si tu pars pas de zéro, tu passeras par-dessus bien des trucs crois-moi.
Image

ViPHP
ViPHP | 2144 Messages

08 nov. 2005, 09:27

Je ne comprends pas trop ce que tu veux faire, une page par disque pour afficher des infos concernant un vinyl ? si oui, tu n'es pas obligé de créer réellement cette page, tu peux avoir un seul fichier php qui affiche les infos d'un vinyl en fonction d'un id reçu en paramêtre par POST ou GET, c'est beaucoup plus souple et leger à gêrer (900 fichier html c'est déja horriblement lourd surtout si ils ont la même structure, et que ceux certaines infos changes)

Petit nouveau ! | 7 Messages

08 nov. 2005, 13:54

merci pour vos réponses !!!! :D
big thx pour le lien alexbad je cours aller voir ça ! :P
si oui, tu n'es pas obligé de créer réellement cette page, tu peux avoir un seul fichier php qui affiche les infos d'un vinyl en fonction d'un id reçu en paramêtre par POST ou GET
ouiiiii !!!! c exactement ça que je voudrais !!! seulement je croyais que fallait faire page par page ou génerer des pages html en cache!
Oui, c'est cela ! en fait actuellement là seule chose que je suis arrivé à faire, c'est afficher donc la totale de ce que j'ai en vinyl sur une seule page ! donc à chaque refresh, ça me charge donc mes 900 vinyls sur ma page "vinyl.php" avec un

Code : Tout sélectionner

$query_mabd = "SELECT * FROM audio";
..:?..je vous laisse imaginer...d'autant + que les 900 fiches sont complètes :oops:...le must serait comme tu dis que je transforme cette page afin que seuls les titres de chaque vinyl s'affichent de haut en bas...et je viens d'y arriver !!!! :D j'ai remplacé la requête ci-dessus par

Code : Tout sélectionner

$query_mabd = "SELECT titre FROM audio";
...par contre je n'ai pas trouvé comment faire un "<a href" sur chacun des titres donc de cette page "vinyl.php" afin que ça m'envoie sur "vinyl.php?id=51" par exemple...si c possible j'en serais vraiment le plus heureux !

ps : j'utilise dreamweaver ! :oops:

ViPHP
ViPHP | 649 Messages

08 nov. 2005, 14:08

Aussi simple que ça:
<?
mysql_connect("localhost", "root", "");
$query_mabd = mysql_query("SELECT titre, id FROM audio");

while ($donnees = mysql_fetch_array($query_mad))

   {
   echo '<a href="vinyl.php?id=' . $donnees['id'] . '">' . $donnees['titre'] . '</a>';
   }

mysql_close();
?>
Tu vois, j'ai choisis titre et id et j'ai mis un lien vers vinyl.php La page vinyl.php contiendrait une requête du genre:
SELECT * FROM audio WHERE id=$_POST['id']

Voilà!
[/php]
Image

Eléphant du PHP | 219 Messages

08 nov. 2005, 14:28

Tu vois, j'ai choisis titre et id et j'ai mis un lien vers vinyl.php La page vinyl.php contiendrait une requête du genre:
SELECT * FROM audio WHERE id=$_POST['id']

Voilà!
euh, tu veux dire

Code : Tout sélectionner

SELECT * FROM audio WHERE id=$_GET['id']
;)

ViPHP
ViPHP | 649 Messages

08 nov. 2005, 15:47

Oui bien sûr, pas en POST... désolé
Image