Node erstellen (PHP)
am 05.10.2011 - 17:22 Uhr in
Guten Tag,
leider fand ich zu meinem speziellen Problem kein eigenes Thema.
Ich nutze Drupal 7.8.
Es wird zur Zeit (als Test) php-code in einer Node ("Einfache Seite") ausgeführt.
Dabei soll eine Funktion realisiert werden, welche in folgende Punkte aufgeteilt werden kann:
- SQL-Abfrage: Benutzer mit den meisten Userpoints.
- Diesem Benutzer soll eine neue Node erstellt werden.
Beide Funktionen voneinander getrennt (in zwei verschiedenen Nodes) funktioniert ohne Probleme.
Um Punkt 2 zu realisieren ist es allerdings nötig den Punkt 1 in der gleichen Node auszuführen.
Hier entsteht mein Problem:
Ab dem Zeitpunkt, in welchem ich den code zum Erstellen der Node in die Schleife zum Abfragen der UIDs lege, (sql-Abfrage) wird keine node mehr erstellt.
Anbei der von mir verwendete Code, welcher keine Node erstellt.
Ich bin über jeden Ansatz zur Lösung des Problems dankbar.
Mit freundlichem Gruß
Hoamer
<?php
function node_erstellen ($userid)
{
$node = new stdClass();
$node->title = 'Testnode';
#you must set a content type!
$node->type = 'page';
#set author of node (if not set: anonymous)
$node->uid = $userid;
#show node on frontpage
$node->promote = 1;
#save the node; and get the new nid
node_save($node);
$nid = $node->nid;
echo "FÄRTISCH";
}
$link = mysql_connect('localhost', 'xx', 'xx');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db("xx");
$result = mysql_query("SELECT `uid` FROM `userpoints` ORDER BY points DESC");
$zaehler=0;
while ($row = mysql_fetch_array($result, MYSQL_NUM))
{
echo "$zaehler, ";
node_erstellen (row[0]);
if ($zaehler==0)
{
break;
}
$zaehler++;
}
mysql_close($link);
?>
- Anmelden oder Registrieren um Kommentare zu schreiben
Mal ganz davon abgesehen, ob
am 05.10.2011 - 19:07 Uhr
Mal ganz davon abgesehen, ob das was mit deinem Problem zu tun hat oder vielleicht auch nicht:
<?php
$link = mysql_connect('localhost', 'xx', 'xx');
if (!$link) {
die('keine Verbindung möglich: ' . mysql_error());
}
mysql_select_db("xx");
$result = mysql_query("SELECT `uid` FROM `userpoints` ORDER BY points DESC");
?>
Was soll das denn? Du solltest dich erstmal gründlich mit Drupals DB-Schicht auseinandersetzen, bevor du hier Abfragen abfeuerst. Das was du da machst ist nämlich hinten und vorn falsch (zumindest bei Drupal)
<?php
$zaehler = 0;
//.....
if ($zaehler==0)
{
break;
}
$zaehler++;
?>
Und was bezweckst du damit?
Gut - oder auch nicht.Ich
am 06.10.2011 - 11:07 Uhr
Gut - oder auch nicht.
Ich werde mich damit auseinandersetzen. Vielleicht verstehe ich dann auch, warum das dermaßen falsch ist.
Aber danke, dass du mich drauf aufmerksam gemacht hast.