Seite 1 von 1

problem beim var assignen.

Verfasst: 07.05.2006 15:51
von the-virus
Hi leute

ich hoffe das hier ist das richtige forum.

ich bastel an einem team bewerbungs system mit dirketer einbindung ins phpBB
bei der detailansich wird die datei mit datei.php?action=details&id=2413 aufgerufen
wenn ich mir die id dann per get hole
und zum weiterverarbeiten neu assigne, wird diese im tpl nicht angezeigt
relevanter phpcode: http://phpfi.com/116508
template: http://phpfi.com/116510

in line 4 hol ich die id.
in zeile 58 wird sie neu assigned.

in zeile 60 des templates will ich die id dann weiter verarbeiten:

Code: Alles auswählen

<a href="bewerbung_view.php?action=addcomment&id={bid}"><span class="gensmall">Eigenen Kommentar Hinzufügen</span></a><br/>
da zeigt er in der ausgabe den inhalt den {bid} haben sollte aber nicht an
jemand eine idee woran es liegen könnte?

mfg.
virus

Verfasst: 07.05.2006 19:23
von S2B

Code: Alles auswählen

$template->assign_var('bid', ''.$id.'');
Was soll das machen? *duck*

Außerdem gilt für alle Superglobalen das:

Code: Alles auswählen

$id = (isset($_GET['id'])) ? intval($_GET['id']) : 0;
Die DB-Klasse wird auch nicht einheitlich verwendet, so findet man z.B. mysql_error() im Code. :-? Und

Code: Alles auswählen

if($status1 == "0")
ist auch noch verbesserungswürdig.

In MySQL-Queries kannst du nicht && verwenden, wie du es von PHP gewohnt bist, sondern musst AND nehmen (das gleiche gilt für || (OR) und != (<>)). Es kann sein, dass es teilweise funktioniert, es ist aber auf jeden Fall nicht Teil des SQL-Standards.

Die Template-Datei wird, soweit ich das sehe, in diesem Teil des Codes nicht eingelesen, wenn du das an keiner anderen Stelle machst, wird sie also auch nicht angezeigt.

Wenn diese Dinge den Fehler nicht beheben sollten, liegt der Fehler wahrscheinlich an einer anderen Stelle als der von dir geposteten. :wink:

Verfasst: 07.05.2006 19:33
von the-virus
S2B hat geschrieben:

Code: Alles auswählen

$template->assign_var('bid', ''.$id.'');
Was soll das machen? *duck*
hatte ich auch so bereits geändert
S2B hat geschrieben: Außerdem gilt für alle Superglobalen das:

Code: Alles auswählen

$id = (isset($_GET['id'])) ? intval($_GET['id']) : 0;
hatte ich auch so bereits geändert
an der verwendung von $id kann es aber nicht liegen weil ich es auch mit $bewerberid getestet hatte.
S2B hat geschrieben: Die DB-Klasse wird auch nicht einheitlich verwendet, so findet man z.B. mysql_error() im Code. :-? Und

Code: Alles auswählen

if($status1 == "0")
ist auch noch verbesserungswürdig.

In MySQL-Queries kannst du nicht && verwenden, wie du es von PHP gewohnt bist, sondern musst AND nehmen (das gleiche gilt für || (OR) und != (<>)). Es kann sein, dass es teilweise funktioniert, es ist aber auf jeden Fall nicht Teil des SQL-Standards.
flüchtigkeits fehler. hat sonst aber trotzalledem funktioniert
S2B hat geschrieben: Die Template-Datei wird, soweit ich das sehe, in diesem Teil des Codes nicht eingelesen, wenn du das an keiner anderen Stelle machst, wird sie also auch nicht angezeigt.
naja der teil oben ist nur ein ausschnit. templates werden natürlich definiert.
S2B hat geschrieben: Wenn diese Dinge den Fehler nicht beheben sollten, liegt der Fehler wahrscheinlich an einer anderen Stelle als der von dir geposteten. :wink:
naja wo soll der fehler liegen? die variable kann ich für den php code setzen. nicht aber assignen für die weitere verarbeitung im template

Verfasst: 08.05.2006 15:07
von S2B
Wie sieht denn jetzt deine vorletzte Zeile aus (nur interesse halber)?

Was gibt denn

Code: Alles auswählen

echo $id;
direkt vor dem $template->assign_var() aus?

Verfasst: 09.07.2006 14:06
von Phil5
Moin und guten tag bin neu hier :D *in die runde wink*

Hab son ähnliches Problem mit der variablen zuweisung:

Code: Alles auswählen


$sql = ("SELECT * FROM phpbb_albums");

if( !($result = $db->sql_query($sql)) )
{
	message_die(GENERAL_ERROR, 'Could not query Album Information', '', __LINE__, __FILE__, $sql);
}

else
{
while($row = $db->sql_fetchrow($result)) {

$template->assign_block_vars('album', array(
'ARTIST'=> $row['Artist'],
'CD' =>$row['Album'],
'DATE' =>$row['Date'],
 'URL' =>$row['url']

));

										}
}
Das Template ist initialisiert. Das Problem ist folgendes: Die Seite wird angezeigt, keine Fehlermeldung, aber leider auch im Template keine Ergebnisse. Im Template steht für die Spalte Artist {album.ARTIST}. Hab vor und nach der Ausgabe zum Überprüfen noch nen Text reingegeben. Der wird angezeigt.

Wenn ich allerdings den PHP Code im Template angebe, wird alles angezeigt und normal ausgelesen. Hat jemand ne Idee wiso ich keine Template Variablen bekomm ?

Verfasst: 09.07.2006 14:10
von S2B
Zeig mal bitte deine Template-Datei. :wink:

Verfasst: 09.07.2006 14:13
von Phil5
Template:

Code: Alles auswählen

<HTML>

Text davor
<table width="900">
<tr>
<td width ="25%">{album.ARTIST}</td>
<td width ="25%">{album.CD}</td>
<td width ="25%">{album.DATE}</td>
<td width ="25%">{album.URL}</td>
</tr>
</table>
Text danach

</HTML>

Verfasst: 09.07.2006 14:13
von kratzer54847

Code: Alles auswählen

<HTML> 

Text davor 
<table width="900">
<!-- BEGIN album --> 
<tr> 
<td width ="25%">{album.ARTIST}</td> 
<td width ="25%">{album.CD}</td> 
<td width ="25%">{album.DATE}</td> 
<td width ="25%">{album.URL}</td> 
</tr>
<!-- END album -->  
</table> 
Text danach
</HTML>
versuchs mal so

Verfasst: 09.07.2006 14:19
von Phil5
Yeah cool danke :D Da hätt ich sicher noch ne weile gesucht. Auf jedenfall funtzt es :D

Dankeschön