2011-05-07 3 views
0

c'est encore moi avec une autre requête.Si cela va être trop complexe alors je ne vais même pas déranger ... donc voici la requête.echo php code dans le fichier xml

J'ai le titre, l'artiste, le nom de la personne & message de dévouement stocké dans mysql.Peut être c'est stupide..il est possible de créer un fichier xml pour récupérer les quatre informations ci-dessus de la base de données. J'ai codé le ci-dessous sur le fichier XML, mais je ne sais pas ce qui manque. Le config.php a des informations de connexion à la base de données.

Un grand merci pour votre aide !!!! Nev

<?php 

require("config.php"); 



$i=0; 
$db = "SELECT * FROM songlist WHERE songtype='S' ORDER BY date_added DESC LIMIT 50"; 
$db = "SELECT songlist.artist, songlist.title, requestlist.name, requestlist.msg FROM songlist, requestlist WHERE requestlist.name <> '' and requestlist.songID = songlist.ID ORDER BY requestlist.t_stamp DESC LIMIT 20"; 
$count = 1; 

    while($results = $db->row()) 
    { 
     $count++; 

     if(($count % 2)== 0) 

?> 
<?php echo('<?xml version="1.0" encoding="utf-8"?>'); ?> 
<playlist version="1" xmlns="http://xspf.org/ns/0/"> 

<trackList> 
    <track> 

     <Song><?php echo $results['title']?></Song> 
     <album><![CDATA[<?php echo $results['artist']; ?>]]></album> 
    </track> 

    </trackList> 

</playlist> 

<? 
$i++; 
} 
?> 
+1

Pouvez-vous nous dire ce qui se passe lorsque vous exécutez ceci? –

+0

Vous devez déplacer le préambule XML au-dessus de la boucle. Seul le ' ...' devrait être imprimé dans la boucle 'while {}'. La fermeture «» et «» devrait également être en dehors de la boucle. – mario

Répondre

0

Vous n'avez pas expliqué votre problème? En outre, j'aurais besoin d'informations sur le format requis pour le XML, ou quelles commandes vous devez envoyer à votre code de base de données.

Il semble que vous ayez également des erreurs de formatage. Je ne peux que deviner ce qui pourrait fonctionner, mais essayez ceci:

1) Au début du fichier, vous semblez avoir oublié la balise de début 2) i semble $ pour être utilisé, supprimez-le() ? 3) Votre déclaration SQL est non seulement entre guillemets, mais devrait être envoyé au code de la base de données (une supposition complète puisque je ne sais pas ce que contient votre config.php serait $ db-> query ("votre sql ici "); 4) supprimer: '); ?> 5) ... en fait cela devient idiot, je devrais probablement juste le réécrire pour vous !!!

La chose est, avant toute chose, je devrais savoir Si vous avez besoin d'utiliser le config.php? Ou si je pouvais coder en utilisant des fonctions PHP natives.

Mais cela pose encore beaucoup de problèmes (puisque je ne connais pas les conditions requises pour le formatage du xml) mais je vais essayer! Alors dites-moi si vous avez besoin d'utiliser votre fichier config.php ou non, alors si non, je vais rapidement coder quelque chose. Sinon, vous allez devoir publier le contenu de config.php

Vive

Ok voici ma meilleure estimation à ce qui pourrait fonctionner:

<?xml version="1.0" encoding="utf-8"?> 
<playlist version="1" xmlns="http://xspf.org/ns/0/"> 
    <trackList> 
<?php 

$DB_SERVER = "localhost"; 
$DB_NAME = "yourdatabasename"; 
$DB_USER = "yourdbuser"; 
$DB_PASSWORD = "yourpw"; 

mysql_connect($DB_SERVER, $DB_USER, $DB_PASSWORD); 
mysql_select_db($DB_NAME); 

$sql = "select * from songlist order by date_added desc limit 10"; 

$res = mysql_query($sql); 

while ($result = mysql_fetch_assoc($res)){ 
    ?> 
     <track> 
      <Song><![CDATA[<?= $result['title']?]]></Song> 
      <album><![CDATA[<?= $result['artist']?>]]></album> 
     </track> 
    <? 
} 
?> 
</trackList> 
</playlist>  

Il suffit de changer le nom de votre base de données, utilisateur et mot de passe , alors vous aurez votre xml. Cependant, vous voudrez peut-être changer votre ligne d'album ci-dessus pour:

+0

Je doute que $ db = "votre sql" fonctionnera! Vous aurez besoin de dire quel cadre de base de données utilise votre fichier config.php, je suppose que vous devrez appeler quelque chose comme $ db-> query ("votre sql") – Jodes

+0

Merci beaucoup pour votre réponse rapide !!! Le fichier config.php est fourni par les modèles SAM Broadcaster. J'ai maintenant remplacé le config.php avec dbconfigxml.php.Below est le code \t \t \t MYSQL \t \t localhost \t \t \t \t *** \t \t *** \t \t *** \t * /?> – Nev

+0

Je vais coder rapidement je pense pas que vous devez utiliser cette dbconfigxml.php, quelque chose que vous pouvez utiliser à la place ... – Jodes

0

D'accord, votre principal problème semble ceci:

$db = "SELECT * .."; 
$db = "SELECT song ..."; 

    while($results = $db->row()) 
    { 

Vous assignez une chaîne là, et immédiatement essayer ensuite de l'utiliser comme une sorte d'interface de base de données. Depuis que je ne sais pas ce qui se passe dans votre script de configuration, ou quelle interface de base de données bizarre que vous utilisez, il est plus facile expliqué à l'utilisation des mysql_functions obsolètes:

$result = mysql_query("SELECT songlist.artist, ... goes here"); 

while($results = mysql_fetch_assoc($result)) 
{ 

Le mysql_query exécute votre instruction SELECT et ne peut alors vous parcourez les résultats avec mysql_fetch_assoc en utilisant la valeur de résultat $ que vous avez obtenue de mysql_query.

Notez que vous devez décider laquelle de vos deux requêtes exécuter réellement ici. Vous ne pouvez pas utiliser simultanément deux requêtes SELECT. (Ou pas dans votre cas au moins.)