XML genereren met PHP

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kristof s

Kristof s

06/11/2007 15:01:00
Quote Anchor link
Doel : als je pagina opent een formuliertje voor het zoeken, klik je op verzenden dan moet je XML generen met de gevonden gegevens.

ik kan niet anders dan heel de code plakken want ik weet niet of ik juist bezigben of totaal fout, het werkt alvast niet.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
$action
= $_GET['action'];
// als men op verzenden drukt moet men xml-file genereren
if($action = 'zoeken')
{

// zeggen dat het xml file is
header("Content-type: text/xml");
header("Expires: Mon, 26 Jul 1990 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
?>

<?php
include('config.php');
mysql_connect("$dbhost", "$dbuser", "$passwd") or die ("Het verbinden met de server is mislukt");
mysql_select_db("$dbname") or die ("Het verbinden met de database is mislukt");
$zkterm = $_POST['zoekterm'];

echo '<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">'
;
if(!empty($zkterm))
{


        // als er op submit geklikt wordt
        if($_SERVER['REQUEST_METHOD'] == "POST")
        {

            $zoekterm = mysql_real_escape_string($zkterm);
            $sql = "SELECT PostUser, PostTitle, PostMsg, UserName FROM ".$prefix."posts, ".$prefix."users
            WHERE PostTitle LIKE '%$zoekterm%'"
;
            $resultaat = mysql_query($sql) or die (mysql_error());
            $aantal = mysql_num_rows($resultaat);

            while ($line = mysql_fetch_array($resultaat))
            {
            
                $PostUserId = $line[0];
                $PostTitle = $line[1];
                $PostMsg = $line[2];

                // naam van poster selecteren                
                $sql2 = "SELECT UserName FROM ".$prefix."users WHERE UserId = $PostUserId";
                $resultaat2 = mysql_query($sql2) or die(mysql_error());
                while ($line2 = mysql_fetch_array($resultaat2))
                {

                    $UserName = $line2[0];
                            echo '<channel>
                            <item>
                            <username>'
.$line2[0].'</username>
                            <title>'
.$line[1].'</title>
                            <msg>'
.$line[2].'</msg>
                            </item>
                            </channel>'
;
                }
// afsluiten while ($line2 = mysql_fetch_array($resultaat2))
            } // afsluiten van while ($line = mysql_fetch_array($resultaat))     
        }// afsluiten van if($_SERVER['REQUEST_METHOD'] == "POST")
} // afsluiten if(!empty($zkterm))
echo '
</rss>'
;
}
// afsluiten if($action = 'zoeken')<br />
 // als men niet op verzenden drukt gewoon HTML formulier laten zien

else{
?>

<form id="zoek" action="?action=zoeken" method="post">
<h1> Zoekopdracht </h1>
</br>
Geef een zoekterm in
</br>
<table>
<tr>
    <td width="10%">
    <input type="text" name="zoekterm" />
    </td>
    <td>
    <input type="submit" value="search" />
    </td>
</tr>
</table>
</form>
<?
} // afsluiten van else
?>


Hij geeft mijn formulier niet weer. Er komt enkel 1 regel XML en dat is het dan. Ik weet niet waarom want ik check in de URL naar de action variabele.

Iemand een idee ?
 
PHP hulp

PHP hulp

26/04/2024 07:11:30
 
Frank -

Frank -

06/11/2007 15:06:00
Quote Anchor link
if($action = 'zoeken')

Die = moet een == zijn of zelfs een === wanneer je ook op het type wilt controleren.

$action = $_GET['action']; slaat nergens op, gebruik dan gewoon $_GET['action'] in je vergelijking. Vergeet niet te controleren of deze variabele wel bestaat.
 
Kristof s

Kristof s

06/11/2007 15:09:00
Quote Anchor link
ach domme fout, bedankt !!
 
PHP erik

PHP erik

06/11/2007 15:11:00
Quote Anchor link
Tip: gebruik aub SimpleXML of DOM om XML te genereren. Deze dingen zijn er niet voor niets; het maakt het proces veel makkelijker.

http://nl2.php.net/simplexml
http://nl2.php.net/dom
 

06/11/2007 15:58:00
 
Kristof s

Kristof s

07/11/2007 00:56:00
Quote Anchor link
PHPerik en Webmakerij, bedankt voor de tips. Maar voor deze opdracht gebruik ik men eigen script om die rede dat we het van school uit op deze manier moeten doen. Ik ga jullie links zeker eens bestuderen want ze lijken me erg nuttig. Nogmaals harterlijk bedankt.
 
Kalle P

Kalle P

07/11/2007 02:12:00
Quote Anchor link
Je gaat het wiel toch niet opnieuw uitvinden? (Om maar eens even één van de vaste uitspraken van de laatste tijd van pgFrank te gebruiken - zie je wes bronvermelding). Bekijk die linkjes maar eens goed. Als je bestaande, handige extensies hebt dan moet je die gebruiken. Maarja... scholen.

En hiervoor als de school toch dom is:
http://www.ibm.com/developerworks/library/os-xmldomphp/ .
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.