IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

insertion de 30 valeurs [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut insertion de 30 valeurs
    Bonjour, j'ai un problème : je n'arrive pas à insérer une ligne composée de 30 valeurs dans une table à 30 colonnes .
    Les 15 premières colonnes de la table sont destinées à recevoir des données dont le type est varchar,
    et les 15 dernières colonnes de la table sont destinées à recevoir les données des photos dont le type est
    longblob (donc les données des photos représentent une quantité importante d'octet à insérer dans la table) .

    Je sais qu'il n'y a pas d'erreur dans ma requète insert car lorsque j'insère seulement les 15 premières valeurs
    dans les 15 premières colonnes de la table, et bien ça marche nickel;
    de méme, lorsque j'insère seulement les 15 dernières valeurs dans les 15 dernières colonnes de la table,
    et bien ça marche nickel aussi.

    Par contre, lorsque j'insere toutes les valeurs, càd les 15 premières et les 15 dernières dans ma table,
    et bien ça ne marche pas :
    donc je me suis poser la question : est-ce que, en général, qu'il y a une limite de taille des données pour
    l'insertion dans une table ?
    Si oui, est-ce qu'il y a un moyen d'augmenter cette limite pour je puisse insérer des quantité importantes de
    données ?

    Merci d'avance à tous les webmasters , j'espère avoir été assez clair dans mon problème

    Cordialement

  2. #2
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2005
    Messages
    357
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2005
    Messages : 357
    Par défaut
    Salut,
    Tu nous montre ton code stp ?

  3. #3
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    Code de la page insert.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
     
    <?php session_start();
     
    include($_SESSION[nomDeDomaine].'/database.php');
     
    /***On addslashes les valeurs$_SESSION[] car s'il y a des apostrophes, et bien l'insertion ne marchera pas:**/
    $_SESSION[type]=addslashes($_SESSION[type]);
    $_SESSION[marque]=addslashes($_SESSION[marque]);
    $_SESSION[modele]=addslashes($_SESSION[modele]);
    $_SESSION[version]=addslashes($_SESSION[version]);
    $_SESSION[boiteDeVitesse]=addslashes($_SESSION[boiteDeVitesse]);
    $_SESSION[texture]=addslashes($_SESSION[texture]);
    $_SESSION[couleurExterieure]=addslashes($_SESSION[couleurExterieure]);
    $_SESSION[description]=addslashes($_SESSION[description]);
    $_SESSION[peinture]=addslashes($_SESSION[peinture]);
    $_SESSION[energie]=addslashes($_SESSION[energie]);
    $_SESSION[annee]=$_SESSION[anneeImmatriculation];
     
    $tabOption=array(
    "abs"=>"ABS",
    "airbag"=>"airbag(s)",
    "climatisation"=>"climatisation",
    "alarme"=>"alarme",
    "verouillageCentralise"=>"verrouillage centralisé",
    "regulateurDeVitesse"=>"régulateur de vitesse",
    "siegesElectriques"=>"sièges électriques",
    "vitresElectriques"=>"vitres électriques",
    "sellerieCuir"=>"sellerie cuir",
    "jantesAlliage"=>"jantes alliage",
    "gps"=>"GPS",
    "radioCD"=>"radio CD",
    "toitOuvrant"=>"toit ouvrant",
    "antiDemarrage"=>"anti-démarrage",
    "directionAssistee"=>"direction assistée",
    "antiPatinage"=>"anti-patinage",
    "attacheRemorque"=>"attache remorque",
    "mirroirsChauffants"=>"miroirs chauffants",
    "siegesChauffants"=>"sièges chauffants",
    "vitresTeintees"=>"vitres teintées");
     
     
    /*On crée les 2 variable ci-dessous pour pouvoir créer $listeDeChampOption et $listeDeValeurOption dans la boucle for,
    c'est pour construire une partie la requète insert:*/
    $listeDeChampOption='';
    $listeDeValeurOption='';
     
    foreach($tabOption as $nameOption =>$textOption)
    {
    /**On affiche que les options qui on été cochées, car ce sont les seules qu'on va insérer:**/
      if($_SESSION[$nameOption]!='')
      {$_SESSION[$nameOption]==addslashes($_SESSION[$nameOption]);
       $listeDeChampOption=$listeDeChampOption.$nameOption.",";
       $listeDeValeurOption=$listeDeValeurOption."'".$_SESSION[$nameOption]."',";}
    } 
     
     
     
    /***Code pour lire uniquement les photo jointes afin de les insérer dans la base de données:***/
    $i=1;
    for($i=1;$i<=$_SESSION[nombreDePhoto];$i++)
    {
    $photo[$i]=fopen('c:/server/apache/htdocs/photo/photo'.$i.'.jpg','rb');
    $size[$i]=filesize("c:/server/apache/htdocs/photo/photo".$i.".jpg");
    $readPhoto[$i]=fread($photo[$i],$size[$i]);
    $readPhoto[$i]=addslashes($readPhoto[$i]);
     
     
    /****On crée les parties du code de la requète insert:*****/
    $champRequete[$i]="namePhoto".$i.",sizePhoto".$i.",photo".$i.",";
    $valeurRequete[$i]="'photo".$i.".jpg','".$size[$i]."','".$readPhoto[$i]."',";
     
    }
     
    $totalChampRequete=implode("",$champRequete);
    /**On supprime la dernière virgule:**/
    $totalChampRequete=rtrim($totalChampRequete,","); 
     
    $totalValeurRequete=implode("",$valeurRequete);
    /**On supprime la dernière virgule:**/
    $totalValeurRequete=rtrim($totalValeurRequete,","); 
     
     
     
    /****Maintenant on insert le tout:******/
    $request="insert into annonce
     (marque,type,modele,version,puissanceFiscale,energie,boiteDeVitesse,
      moisImmatriculation,annee,
      nombreDePorte,
      peinture,couleurExterieure,texture,
      $listeDeChampOption
      description,kilometrage,prix,
      $totalChampRequete)
     values
     ('$_SESSION[marque]','$_SESSION[type]','$_SESSION[modele]','$_SESSION[version]','$_SESSION[puissanceFiscale]','$_SESSION[energie]','$_SESSION[boiteDeVitesse]',
      '$_SESSION[moisImmatriculation]','$_SESSION[annee]',
      '$_SESSION[nombreDePorte]',
      '$_SESSION[peinture]','$_SESSION[couleurExterieure]','$_SESSION[texture]',
       $listeDeValeurOption
      '$_SESSION[description]','$_SESSION[kilometrage]','$_SESSION[prix]',
       $totalValeurRequete)";
    $result=mysqli_query($connection,$request) or die("no request");
     
     
     
    ?>

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Les index non numeriques prennent des guillemets.

    Sinon pour ton probleme, commence par afficher l'erreur mysql et afficher ta requete finale.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $request="INSERT INTO annonce
     (marque,type,modele,version,puissanceFiscale,energie,boiteDeVitesse,
      moisImmatriculation,annee,
      nombreDePorte,
      peinture,couleurExterieure,texture,
      $listeDeChampOption
      description,kilometrage,prix,
      $totalChampRequete)
     values
     ('".$_SESSION['marque']."','".$_SESSION['type']."','".$_SESSION['modele']."','".$_SESSION['version']."','".$_SESSION['puissanceFiscale']."','".$_SESSION['energie']."','".$_SESSION['boiteDeVitesse']',
      '$_SESSION['moisImmatriculation']."','".$_SESSION['annee']',
      '$_SESSION['nombreDePorte']',
      '$_SESSION['peinture']."','".$_SESSION['couleurExterieure']."','".$_SESSION['texture'] . "'," . $listeDeValeurOption . $_SESSION['description']."','".$_SESSION['kilometrage']."','".$_SESSION['prix']. "'," .$totalValeurRequete . ")";
    $result=mysqli_query($connection,$request) or die("no request" . mysql_error() . '<br/>' . $request);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    J'ai ajouter ceci dans ma requète (ce qui est en gras) :
    $result=mysqli_query($connection,$request) or die("no request". mysql_error() . '<br/>' . $request);

    Et voilà ce qui est affiché:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    no request
    insert into annonce (marque,type,modele,version,puissanceFiscale,energie,boiteDeVitesse, moisImmatriculation,annee, nombreDePorte, peinture,couleurExterieure,texture, abs,airbag,climatisation,alarme,verouillageCentralise,regulateurDeVitesse,siegesElectriques,vitresElectriques,sellerieCuir,jantesAlliage,gps,radioCD,toitOuvrant,antiDemarrage,directionAssistee,antiPatinage,attacheRemorque,mirroirsChauffants,siegesChauffants,vitresTeintees, description,kilometrage,prix, namePhoto1,sizePhoto1,photo1,namePhoto2,sizePhoto2,photo2,namePhoto3,sizePhoto3,photo3,namePhoto4,sizePhoto4,photo4,namePhoto5,sizePhoto5,photo5,namePhoto6,sizePhoto6,photo6,namePhoto7,sizePhoto7,photo7,namePhoto8,sizePhoto8,photo8,namePhoto9,sizePhoto9,photo9,namePhoto10,sizePhoto10,photo10) values ('alfa romeo','Berlines / Coupés / Voiturettes','146','sport','122','diesel','Automatique', 'janvier','2009', '2', 'metal','jaune','alcantara', 'ABS','airbag(s)','climatisation','alarme','verrouillage centralisé','régulateur de vitesse','sièges électriques','vitres électriques','sellerie cuir','jantes alliage','GPS','radio CD','toit ouvrant','anti-démarrage','direction assistée','anti-patinage','attache remorque','miroirs chauffants','sièges chauffants','vitres teintées', 'aaaaaaaaaaaaaaaa zsdf sdfdsf sdf ds f sd fs dfdsfffffffff','12000','390000', 'photo1.jpg','14923','ÿØÿà\0JFIF\0\0H\0H\0\0ÿÛ\0C\0    $ &%# #\"(-90(*6+\"#2D26;=@@@&0FKE>J9?@=ÿÛ\0C  =)#)==================================================ÿÀ\0 `\"\0ÿÄ\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÄ\0C\0\0\0\0!1A\"Qaq2‘#BR¡±Á3bÑ$r‚áðCS’%5²4csÂÿÄ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0ÿÄ\0+\0\0\0\0\0\0\0!1A\"2Qa#BRq‘¡±ÿÚ\0 \0\0?\0ùšÌÈçÔTĈy¡¤ARyT²††C‰Hõi¦-¦¼ÉñùÔƒg9çâ(yú×s¾õdÙ0ÅwÎELØñÿ\0ž\0Þ<ƒ¿#åBå0•4M¾NAô¢ áò¥Kc˜ÅG\'<þu]ˆ¿‘¡†Á<³P\'\0þt1+)Ècõ®™Øžöž*v²»ÓòÄT´3ã¶+ݸ+‚1\\ÖaH¨“öFÓð °é±õ© ó<ê!{þT̲ÜÌ#… ¹äi2Ûà®j÷‡ðx¢‡Þ¯ÈÒ9D?SûU*¿á¼ Ñeâj&»eÊÀNçåÐyšª»»{É2U#Œ|1Æ0«þþu1CÏã…ûébóä•ï7=ÈW³ˆl\0Ø‘Hâ§Œu¯bºŽq*J1ÕÕ½Ñ TtÑk‡z\"•®Å:B\"½¦¥ó¯|êˆD\\ÓSǝpŠ„Dq\\À5?s #ŠæKuìUh„1^À©æ3B@]’ž•îÄt4äu11xŠç4͉¦HÄÿ\0‹5àà¥xJwäk«.\"=*r_ ·Qé^ ‘FY×;çé]2#ƒ’ VØI~˜ç;0ÇZé ×Z0GpQVÙ1’H¨Ú/TI*ࣰô5Ñ{p§wϨ¢{¡9Ó!nàîÊj·/É5^‰ é:ãéRþð ᣠ›wÆF=(,ާOÒ§l²wÚò<·‘?Æ s\\,ÙÖ1ài ëèED‘ÿ\0 _ÆŠùšòYH‘4}ФÐÒ>ÚP9’Êê~#QK^O\"¯(#YžCh]yEL\\¿R wÞTŽòf‹ìSì`N±ÍMD¨âHóÄzÔ²Œ~!WÜgö+šŽw¦û5<Æ}(2D–jÕPÒØ1œùT—ž+  Wc\\¹ÏAVÊH=µ¤—/Üdô«ûK†á‘é·XÄ„nꤑóëK[“îɍSÒ?MÝÎOú*³vñ$y%‘žF.ìrÌÛ“QÓåD\"¹¦µ¤’Ò3·¾X2µÏ• ²#ʽ*!UŽ<ª:|¨„W1T@eqÒ½*ž+„T!yTHò©cÌ׈ª,Ž+„yTñµr¡b¼}*F¹P„qã\\©똡dV4PóÅ,ŠÄl6ô¢/ʰR5C_ Úð×4/Jò†<±R‡Aš©&pC“³ ׌Âk¤œòÅxgΫl¨‡g\'E?-ë¿j:¸ôÍ\\§* ºÒyU6ÿ\0E©_±q3¯65.Ü““Œd\\ÆF ~T) /Žî*\'ýÛ¯ ¼o^\0 8®áa€p}k†Õ ÷d©õ+ì·ŒäÛÎ¢Ë ”Ÿ¥ÝYw>•ŽE<ô¨¥zdu^ÑǁpHá¶}9½–^`JᝆÀšg\"Ÿo³†)1Ò cuæµ/x`9ƒëR÷¯`~Œ s£«}èýº‘ºš‹261W¿è—¦Esâj@3I¢C M TRIåµ^Yp¡Õ0Éðþ´qoH©\\‰YpòpÎ6ñ¤#ÞFô?*j™p¿*ËB53Ÿå£Ï‰c”H·oEå²ÿ\0…‹ü¢ˆWzœ ¦Þ1º*zklþ(Ey` ×4Ñ´ï\\+½B€•®£¨é¨@Ej:hÅw®i¨@:w®hÅwÍDŠÅpŠ)UT 2µÌQ4׈ÍQ`ÈÚ¹Š!1P€ñ\\ ÔÈÂ<ª™b¸jxò®`P{ÙeÔnG’þõ|Ö‘¿Ç7ªŠÍû7wî9)¯XqŽu¡V=µ@ÿ\0&XúŒ3=´ùú|·ö•´E¸M£ó¶‹ä¸¡dw•>LE6¼N7ŽQþzüX¬±ö6Ò:ßÛ|yyÑWQÓ{hÓõ Óog*OÂÒ¯ú³@>ÎÆÌÁ.üJ ^ «fÿ\0ª¨\"¹ ')

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Effectivement si tu passes les données de plusieurs photos dans la requete tu depasses peut etre les limites de taille.
    Regarde par ici :
    http://mysql.developpez.com/faq/?pag...RS_MAX_requete
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre très actif
    Inscrit en
    Février 2009
    Messages
    205
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 205
    Par défaut
    Merci à toi sabotage pour ton lien, et je me doutait de la cause du problème.

    Dans le topo vers lequel tu m'as dirigé, j'ai vu ceci :

    "Quelle est la quantité maximum de données que je peux stocker dans une ligne ? [haut]

    auteur : Florian
    La taille totale de toutes les colonnes contenant des types simples (nombres, CHAR/VARCHAR, ENUM, etc.), est limitée à environ 65 000 octets.


    Les champs de type TEXT et BLOB ne "consomment" qu'environ 1 à 4 octets par colonne.
    "


    ..... je pense que le problème vient de l'existence de cette limite

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. débutant-Insertion dans table valeurs saisies sur formulaire
    Par Michel Hubert dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 09h07
  2. [Oracle] Insert avec récupération valeur de la cle
    Par Silvia12 dans le forum Oracle
    Réponses: 2
    Dernier message: 11/03/2006, 03h28
  3. Réponses: 3
    Dernier message: 14/12/2005, 15h17
  4. [debutant][code] insert multiple de valeurs
    Par topaze dans le forum Oracle
    Réponses: 9
    Dernier message: 29/11/2005, 15h22
  5. [MySQL] Pb d'insertion d'une valeur de champ select dans une Bdd
    Par Mimisator dans le forum PHP & Base de données
    Réponses: 20
    Dernier message: 20/10/2005, 18h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo