Warum geht das nicht ---->

Begonnen von Kartoffelbrei, 15 Juni 2003, 02:29:58

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Kartoffelbrei

<?php

$result = sql_query("select membername from ".$prefix."_clanmembers where membername like $uname");
if (sql_num_rows($result, $dbi)==0) {
    include("header.php");
   echo "Kacke wars du bist nicht dabei alter";
    include("footer.php");
}

if (sql_num_rows($result)>0) {
   
    echo "GOILLLLLLLLLLLLLLL es duuuuuuuuuuuuuud";
   include("footer.php");
}
?>



hab da mal so folgendes mit php versucht.
aber versteh nicht wiedo der mir das nicht frisst ????
weiß auch garnicht ob man das so machen kann.
habs jetzt eben mal so in etwa aufgebaut wie ichs in C schreiben würde....

Andi

Hi Kartoffelbrei

1. das Feld membername ist sicher ein String?
- dann muss die DB Abfrage so lauten:
select membername from ".$prefix."_clanmembers where membername='$uname'
- also die Variable $uname in einfachen Anführungszeichen,
- den Operator Like solltest Du nur verwenden, wenn Du mit Platzhaltern suchst.

2. Du verwendest die phpNuke Funktionen sql_query und sql_num_rows
- diesen Funktionen musst Du immer als zweiten Wert das Datenbankhandling $dbi mit übergeben.
- also sql_query("select blabla...", $dbi); oder sql_num_rows($result, $dbi)

3.  anstatt ein 2tes mal if(sql_num_rows) zu verwenden, genügt ein else

4. im "else-zweig" includest Du zwar die footer.php aber nicht die header.php

5. weiss ja nicht, ob das das ganze script ist...
- falls ja, musst Du sicherstellen, dass vor irgendeiner Datenbankabfrage die mainfile.php includet wird

Hoffe, das hilft Dir weiter ;)
schön´s Grüssle, Andi

Kartoffelbrei

tach,

habe es wie folgt gemacht :


<?php // Member Abstufung Beta

include("header.php");

$result = sql_query("select membername from \\\".$prefix.\\\"_clanmembers where membername=\\\'$uname\\\'");

if (sql_num_rows($result, $dbi)==0) {
   echo "du bist kein member";
   echo "$uname";
    include("footer.php");
}

if (sql_num_rows($result, $dbi)>0) {
    echo "du bist ein member";
   echo "$uname";
   include("footer.php");
}
?>



so, nu kommt aber folgende fehlermeldung :

Warning: Missing argument 2 for sql_query() in /testsite/includes/sql_layer.php on line 194
du bist kein member

also das mit "du bist kein member" passt ja soweit. nur wieso kommt da die WARNING meldung ?
was mach ich denn falsch ?
kann es sein dass die tabelle mit bestimmten argumenten anlegen muss ?

gruß
brei

Andi

Zitat2. Du verwendest die phpNuke Funktionen sql_query und sql_num_rows
- diesen Funktionen musst Du immer als zweiten Wert das Datenbankhandling $dbi mit übergeben.
- also sql_query("select blabla...", $dbi); oder sql_num_rows($result, $dbi)

 ;)  ;)
schön´s Grüssle, Andi

jubilee

Nope .....
Nicht bei sql_num_rows !
Hier die Definition aus sql_layer.php
 
Zitatfunction sql_num_rows($res)

 ;)
MfG
jubilee

Andi

bin ich blind...... :redhead:

$result = sql_query(sqlanweisung,$dbi);
$num = sql_num_rows($result);

Sorry  :knockout:
schön´s Grüssle, Andi

Kartoffelbrei

äääääääää aber watt ist dann mein fehler ?
habs doch soweit richtig oda ?

und noch was wegen dem $uname.... :
also mit uname iwll ich den momentanen namen haben mit dem man sich eingeloggt ist.
aber wie ich gerade herausfinden musste geht das ja auch nicht.... hmmmm
aber erstmal zu meinem kleinen code.... wieeeso tut datt nisch ?
und was hat das mit dem dpui denn genau auf sich ?
was macht das ?

gruß

jubilee

Bitte lesen :
Du kannst an sql_num_rows nur 1 Argument übergeben --->
 
Zitatsql_num_rows($result, $dbi)
 
Das sind aber 2 !
Also bitte so :
 
Zitat$result = sql_query("select membername from \\\".$prefix.\\\"_clanmembers where membername=\\\'$uname\\\'", $dbi);

if (sql_num_rows($result)==0) ....
 
versuchen .

in der Variablen $dbi werden die zum Verbindungsaufbau nötigen Informationen (Connect-Aufruf dbuser, dbhost, dbpasswort )
eingesetzt.
=
Zitat$dbi=@mysql_connect($host, $user, $password);
MfG jubilee


[Editiert am 16/6/2003 von SiteAdmin jubilee]

Kartoffelbrei

so, nu komm ich wieeeeder !!! .....

also habs in allen möglichen variationen versucht und auch in anderen php files geschaut. aber es tut schlicht und ergreifend garnicht :

z.b. wenn ichs so mache :

<?php // Member Abstufung Beta

include("header.php");

$result = sql_query("select membername from \\\".$prefix.\\\"_clanmembers where membername=\\\'$uname\\\'", $dbi);

if (sql_num_rows($result)==0) {
   echo "du bist kein member";
    include("footer.php");
}

if (sql_num_rows($result)>0) {
    echo "du bist ein member";
   include("footer.php");
}
?>

dann kommen nur fehler und zudem wird der user garnciht ausgelesen.
ich kapier das sowieso nciht woher der eigentlich den usernamen (also den namen mit dem man angemeldet ist, hernimmt) erst garnicht frisst.
will ja mit dem ganzen verwirklichen dass er in der tabelle schaut ob der name mit dem man angemeldet ist da drin ist.........

das ist doch das popligste was es gibt, aber ich bekomms einfach nicht hin !
und so wie ihr da geschrieben aht tuts leider auch nicht.......
 :(

waaaaas mach ich denn falsch ????????????????????????

jubilee

Hallo
Warum sind da so viele \\\ drin ?
Zitat$result = sql_query("select membername from \\\".$prefix.\\\"_clanmembers where membername=\\\'$uname\\\'", $dbi);
Versuch mal einfach ---->
 
Zitat$result = sql_query("select membername from ".$prefix."_clanmembers where membername=$uname", $dbi);
 
MfG
jubilee

Andi

Also, wir können hier keine Fehlersuche betreiben, wenn wir nicht wissen welche Fehler kommen. "passiert nix" und "kommen nur Meldungen" nützt keinem was.
- Deinen ganzen bisherigen Code löschen.
- Den Nachfolgenden reinschreiben
- Fehlermeldungen hier posten
 <?php 
// Member Abstufung Beta
include_once("mainfile.php");
include(
"header.php");
error_reporting(15);
$result sql_query("select membername from ".$prefix."_clanmembers where membername='$uname';"$dbi);
if (
sql_num_rows($result)==0) {
echo "du bist kein member";
}
else {
echo "du bist ein member";
}
error_reporting(0);
include(
"footer.php");
?> 

Achso....
die Daten des aktuell angemeldeten Users bekommst Du, indem Du seinen Cookie ausliest. In Nuke geht das so:

$xuser = cookiedecode($_COOKIE['user']);
if (isset($xuser[1])) {
  $uname = $cookie[1];
  }
else {
  $uname = "Anonymer Typ";
  }

Das also vor die Zeile $result = sql_query("select......  schreiben

[Editiert am 17.6.2003 von SiteAdmin Andi]
schön´s Grüssle, Andi

Kartoffelbrei

tach,

also jetzt klappts.
das lag wohl an den ///

hab sowieso nicht verstanden wieso manche gesagt haben die müssen hin.
auf jedenfall funtzt das ganze jetzt genau so wie ich es will  :cool:


gruß
brei