Pb mssql_fetch_object [Résolu]

Signaler
Messages postés
15
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
2 février 2009
-
Messages postés
15
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
2 février 2009
-
Bonjour à tous,

Je suis novice en ce qui concerne la programmation en Php.
Mon problème est le suivant :
Je fais une requête de sélection dans une table, et je souhaite insérer les résultats dans une autre table.

 $SQL = "SELECT ... FROM ... WHERE ...;";
 $rs = mssql_query($SQL, $link);

la fonction : mssql_num_rows($rs) me renvoie le bon nombre de lignes

mais la fonction : mssql_fetch_object($rs, MSSQL_ASSOC) me renvoie false

Voici une partie du code :

echo "Nbr lignes :".mssql_num_rows($rs).";
while ($row = mssql_fetch_object($rs, MSSQL_ASSOC));
{
         $SQL2 = "INSERT INTO TABLE (CHAMP1, CHAMP2, CHAMP3) VALUES (";
         $SQL2 .= $row->CHAMP1.", '";
         $SQL2 .= $row->CHAMP2."', '";
         $SQL2 .= $row->CHAMP3.");";
         echo $SQL2."\n";
         $rs2 = mssql_query ($SQL2, $link);

}

Si quelqu'un pouvait m'aider à comprendre ...

Merci d'avance.

14 réponses

Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Il y a ça aussi :
(le ";")

while ($row = mssql_fetch_object($rs, MSSQL_ASSOC));
{
=>
while ($row = mssql_fetch_object($rs, MSSQL_ASSOC))
{

Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut Skwalig,

mssql_fetch_object($rs, MSSQL_ASSOC)
=>
mssql_fetch_object($rs);

Cordialement,

Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Pour la petite info supplémentaire :
mssql_fetch_object te retourne un objet. Les propriétés des objets ne peuvent pas être des nombres, c'est donc implicitement un MSQL_ASSOC

Kohntark -
Messages postés
15
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
2 février 2009

Je l'avais rajouté parce que j'avais le problème sans

 
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
enfin plutôt ça hein :
while ($row = mssql_fetch_object($rs))
{

Kohntark -
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Et puis :

         $SQL2 = "INSERT INTO TABLE (CHAMP1, CHAMP2, CHAMP3) VALUES (";
         $SQL2 .= $row->CHAMP1.", '";
         $SQL2 .= $row->CHAMP2."', '";
         $SQL2 .= $row->CHAMP3.");";
         echo $SQL2."\n";
         $rs2 = mssql_query ($SQL2, $link);

Le dernier apostrophe n'est pas fermé et il n'y en a pas à la valeur du CHAMP1 (mais c'est peut être normal ?)

Kohntark -
Messages postés
12
Date d'inscription
mercredi 3 août 2005
Statut
Membre
Dernière intervention
26 avril 2009

bonjour
désolé si je me parachute dans cette discution mais j'ai vu que vous discuté des probléme de BD
j'ai un trés garnd si il y a quelqu'un qui peux m'aidé merci d'avance
je veux récupéré des information d'une table qui fais 180 enregistrement et je veux seulement aficher 6
l'afichage dans une seule ligne ou une seule colonne et facile
Mais moi je veux tous afichier dans 3ligne et 2colenne,
et je veux pas afiché chaque infis dans une celule maisle résulta de toute la rekéde dans une celule merci d'avance

BENMOUISSA Soufiane PROSOFTR</sup>
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut Sppirite,

Tu devrais poster un nouveau sujet pour ton pb, avec un peu plus d'infos (parce que pour l'heure je ne comprends pas grand chose)
Précise la structure de ta base et les champs que tu souhaites récupérer.

Kohntark -
Messages postés
12
Date d'inscription
mercredi 3 août 2005
Statut
Membre
Dernière intervention
26 avril 2009

<?php
$rs = 'SELECT  *  FROM   etudiant    ';
$rq = mysql_query($rs);
while($info = mysql_fetch_array($rq))
{
?>
echo info['nom'];,
echo info['prenom'];,
echo info['age'];

  <?php } ?>

se code permet d'afficher les information comme suite


Nom1<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>,
Prenom1,
Age1,

----

Nom2,
Prenom2,
Age2,

----

Nom3,
Prenom3,
Age3,

----

…,
…,



moi je cherche a afficher comme suit
Nom1 - Prenom1- Age1, Nom2 - Prenom2 - Age2, ----
Nom3 - Prenom3 - Age3, Nom4 - Prenom4 - Age4, ----
….., …., ----
…, ….

BENMOUISSA Soufiane PROSOFTR</sup>
Messages postés
12
Date d'inscription
mercredi 3 août 2005
Statut
Membre
Dernière intervention
26 avril 2009

voila je pense comme message et claire.........

BENMOUISSA Soufiane PROSOFTR</sup>
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
Salut,

Oui, c'est clair, mais je pense toujours que tu aurais dû ouvrir un
nouveau sujet pour ne pas interférer avec la question initiale qui n'a
rien à voir.

Il suffit de faire un truc comme ça :


$i = 0;

echo '';

while (...) {

   echo ''.info['nom'].'&nbsp;'.info['prenom'].'&nbsp;'.info['age'].', ';

  $i++;

  if ($i == 2) {

    echo '----
';

    $i = 0;

  }

}
echo '
';

Kohntark -
Messages postés
12
Date d'inscription
mercredi 3 août 2005
Statut
Membre
Dernière intervention
26 avril 2009

Merci 1000 fois, et désolé si je me suis parachuté mais seulement j'avais besoin de la solution

BENMOUISSA Soufiane PROSOFTR</sup>
Messages postés
15
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
2 février 2009

Merci Kohntark,
C'était tellement évident que je ne le voyait pas :)

Sinon Sppirite pour ton pb, j'aurais fais un truc dans le style :

<?php
$rs = 'SELECT  *  FROM   etudiant    ';
$rq = mysql_query($rs);
$col=0;
?>
<?php
while($info = mysql_fetch_array($rq))
{
    $col++;
    if ($col==2)
    {
        $col=0;
        echo '';
        echo '----
';
    }
?>
<?php echo info['nom']." - ".info['prenom']." - ".info['age'];; ?>,
<?php } ?>

J'ai pas testé, y a peut-être quelques modifs à faire, mais ça doit s'approcher du résultat que tu souhaites.

 
Messages postés
15
Date d'inscription
mercredi 9 juin 2004
Statut
Membre
Dernière intervention
2 février 2009

désolé, j'avais pas vu qu'il y avait déjà une réponse ...
Merci encore Kohntark pour la solution.