Pb mssql_fetch_object

Résolu
skwalig Messages postés 15 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 2 février 2009 - 30 janv. 2009 à 16:45
skwalig Messages postés 15 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 2 février 2009 - 2 févr. 2009 à 09:06
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

kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 janv. 2009 à 17:17
Il y a ça aussi :
(le ";")

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

Kohntark -
3
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 janv. 2009 à 17:03
Salut Skwalig,

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

Cordialement,

Kohntark -
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 janv. 2009 à 17:07
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 -
0
skwalig Messages postés 15 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 2 février 2009
30 janv. 2009 à 17:09
Je l'avais rajouté parce que j'avais le problème sans

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 janv. 2009 à 17:18
enfin plutôt ça hein :
while ($row = mssql_fetch_object($rs))
{

Kohntark -
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
30 janv. 2009 à 17:23
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 -
0
sppirite Messages postés 12 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 26 avril 2009
31 janv. 2009 à 05:02
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>
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
31 janv. 2009 à 13:07
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 -
0
sppirite Messages postés 12 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 26 avril 2009
1 févr. 2009 à 19:25
<?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>
0
sppirite Messages postés 12 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 26 avril 2009
1 févr. 2009 à 19:26
voila je pense comme message et claire.........

BENMOUISSA Soufiane PROSOFTR</sup>
0
kohntark Messages postés 3706 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
2 févr. 2009 à 07:13
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 -
0
sppirite Messages postés 12 Date d'inscription mercredi 3 août 2005 Statut Membre Dernière intervention 26 avril 2009
2 févr. 2009 à 07:36
Merci 1000 fois, et désolé si je me suis parachuté mais seulement j'avais besoin de la solution

BENMOUISSA Soufiane PROSOFTR</sup>
0
skwalig Messages postés 15 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 2 février 2009
2 févr. 2009 à 09:05
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.

 
0
skwalig Messages postés 15 Date d'inscription mercredi 9 juin 2004 Statut Membre Dernière intervention 2 février 2009
2 févr. 2009 à 09:06
désolé, j'avais pas vu qu'il y avait déjà une réponse ...
Merci encore Kohntark pour la solution.

 
0