Beitrag von Schoppi (154 Beiträge) am Donnerstag, 12.Februar.2004, 13:51.
Variablenkollaps
Ich übergebe in der Navigation mit der URL Variablen:
http://URL&cmd=all&Id==$Id
In diesem Beispiel ist die Id 173
Das ganze dient lediglich der Identifizierung.
AUf der Seite wird nun mit <loop> eine andere Datenbank ausgelesen, die ALLE Inhalte ausgeben soll. Nun sucht <loop> aber in der Datenbank die Id (Bsp: "173"), die aber nicht vorhanden ist, weil nur 50 Einträge in der Datenbank stehen. Somit gibt <loop> nichts aus, es sei denn die übergebene Id existiert (Bsp: "45").
Kann ich die Variablenübergabe für den <loop> ausschalten/deaktivieren???
Antworten
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 12.Februar.2004, 14:48.
Re: Variablenkollaps
einfacher wäre die Variable (Parameter in der URL) umzubenennen... ;-)
Antworten
Beitrag von Schoppi (154 Beiträge) am Donnerstag, 12.Februar.2004, 14:52.
Re: Variablenkollaps
Irrtum.
die Identifikation in der übergebenen URL mithilfe einer anderen Variable (z.B. Feldname) sorgt dafür, dass im <loop> die Fehlermeldung erscheint "Feldname" in Datenbank nicht vorhanden...
Egal wie ich die URL Variable übergebe
Antworten
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 12.Februar.2004, 15:23.
Re: Variablenkollaps
klar - logo - hatte übersehen, dass du das ja mittels ID== zuweist, weis es mal ID= zu....
Antworten
Beitrag von Schoppi (154 Beiträge) am Donnerstag, 12.Februar.2004, 17:28.
Re: Variablenkollaps keine Lösung
bei einem "=" verschwindet die notwendige Variablenübergabe mit der URL, der Inhalt der Datenbank2 wird komplett ausgegeben. Problem somit leider nur verdreht.
Wer kann helfen?
nochmal zusammenfassend mein Problem:
Ich übergebe in der Navigation mit der URL Variablen: http://URL&cmd=all&Id==$Id In diesem Beispiel ist die Id 173. Alsoerscheint der Link: http://URL&cmd=all&Id==173.
Das ganze dient lediglich der Identifizierung.
AUf der Seite wird nun mit <loop> eine andere Datenbank ausgelesen, die ALLE Inhalte ausgeben soll. Nun sucht <loop> aber in der Datenbank die Id "173", die aber nicht vorhanden ist, weil nur 50 Einträge in der Datenbank stehen. Somit gibt <loop> nichts aus, es sei denn die übergebene Id existiert (Bsp: "45").
Kann ich die Variablenübergabe für den <loop> ausschalten/deaktivieren???
Antworten
Beitrag von hempelr (1976 Beiträge) am Donnerstag, 12.Februar.2004, 20:24.
Re: Variablenkollaps keine Lösung
Antworten
Beitrag von Schoppi (154 Beiträge) am Donnerstag, 12.Februar.2004, 21:37.
Re: Variablenkollaps keine Lösung
Fast:
Richtig ist:
Identifizierung eines Users erfolgt, er hat z.B. die Id 173 (aus der UserDB) Diese Id wird auf der gelinkten Seite erkannt.
Aber jetzt:
werden auf dieser eben gelinkten Seite mittels <loop> aus einer völlig anderen DB (DB2) ALLE Datensätze geholt, was nicht funzt weil Datensätze mit der Id 173 gesucht werden.
Quelltext verkürzt:
Seitenkopf...Abfrage Name:
<perl>
$Id="";
get "Id==$Id", "Mitglieder";
if ($Id eq $Id)
{
if ($Berechtigung eq "1")
{
out <<EOF;
$Vorname $Nachname
EOF
}
}
</perl>
...Navigationsmenü
<perl>
$Id="";
get "Id==$Id", "Mitglieder";
if ($Id eq $Id)
{
if ($Berechtigung eq "1")
{
out <<EOF;
<a href="http://URL/Template
EOF
out "&Id=",$Id,"\"";
out <<EOF;
">
<span style='font-size:10.0pt;mso-bidi-font-size:10.0pt; font-family:Verdana;mso-bidi-font-family:"Verdana";color:#111111'>
<o:p></o:p></span></a>
EOF
}
}
</perl>
Jetzt kommt die Ausgabe der 2. Datenbank:
<loop db=Download sort=- >
$Titel $Beschreibung $Download
<br></loop>
Seitenende
Die eben geloopte Datenbank 2 (Download) funzt nicht, weil irgendine Id gesucht wird. Ich habe versucht, die Id zu ersetzen mit einem anderen Mummer aus einem Datenbankfeld - gleiches Ergebnis. Loop sucht die in der URL übergebene Variable und soll dies aber nicht tun.
Antworten
Beitrag von hempelr (1976 Beiträge) am Freitag, 13.Februar.2004, 09:59.
Re: Variablenkollaps keine Lösung
also - das ist natürlich etwas komplzierter...
ziemliches Wirrwar, dein Quellcode - ich schlage dir vor, das nochmal genau anzuschaun - da ist vieles, was einfach "Unfug" ist.
Ich erklär dir jetzt mal ein paar Zeilen, dann musst du dich auf den Hosenboden setzen und Programmieren lernen, du wirst kaum jemand finden, der dir für lau ds Programmieren beibringt - da hilft nur lernen, lernen, lernen....
1) $Id="";
Diese Zeile leert die Variable Id - wenn ein Parameter damit übergeben wurde wird dessen Wert auf "nichts" gesetzt, die Variable bleibt aber definiert für das Script
2) get "Id==$Id", "Mitglieder";
Hier holst du die Id "nichts" von oben, also alle Datensätze
3) if ($Id eq $Id)
hier vergleichst du "nichts" mit "nichts" - das ist also immer wahr und damit sinnlos
Nun geh mal dein Script durch und mach was draus oder such dir jemand, den du mit damit beauftragen kannst, das zu machen
Ruben
Antworten