Php Problem: SQL Variable im Script leer
Hallo Gemeinschaft,
habe mir ein user management php script (Xavier) - gekauft
und möchte es in dieses script einsetzen, damit ich je nach dem wer sich anmeldet die sql query ändern kann
wenn ich mich im im loginscript anmelde dann kann ich hier den usernamen mir anzeigen lassen - script geht also
nun mein Problem
der username =admin wird angezeigt
doch wenn ich oben im scrip mir den usernamen anzeigen lassen, dann ist die sql Variable leer
wenn ich oben echo $session->username; auskommentiere, dann geht das script wieder
habe mir ein user management php script (Xavier) - gekauft
und möchte es in dieses script einsetzen, damit ich je nach dem wer sich anmeldet die sql query ändern kann
wenn ich mich im im loginscript anmelde dann kann ich hier den usernamen mir anzeigen lassen - script geht also
<?php
include('C:\xamppneu\htdocs\test\zugang\admin\includes\controller.php');
$form = new Form;
echo $session->username;
class Core {
/* */
private static $config_file = "conf.ini";
/* */
//var $db_conf;
private static $link = null;
/**
*
* @param type $file
*/
public static function getDBConfig() {
$conf = parse_ini_file(Core::$config_file);
return $conf;
//die(var_dump($conf) );
//exit;
//$db_conf = array();
//$this->db_conf = $conf;
}
public static function connectDB() {
$conf = Core::getDBConfig();
//$link = mysql_connect($conf["host"], $conf["user"], $conf["password"]) or die("Could not connect: " . mysql_error());
/*$link = mysql_connect (MYSQL_HOST,
MYSQL_BENUTZER,
MYSQL_KENNWORT,
MYSQL_DATENBANK);*/
//Core::$link = new mysqli(MYSQL_HOST, MYSQL_BENUTZER, MYSQL_KENNWORT, MYSQL_DATENBANK);
Core::$link = new mysqli($conf["host"], $conf["user"], $conf["password"], $conf["name"]);
//mysql_set_charset('utf8', $link);
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
if (!Core::$link->set_charset("utf8")) {
printf("Error loading character set utf8: %s\n", Core::$link->error);
} else {
//printf("Current character set: %s\n", Core::$link->character_set_name());
}
// select our database
// select our database
//mysql_select_db(MYSQL_DATENBANK) or die(mysql_error());
Core::$link->select_db($conf["name"]);
}
nun mein Problem
der username =admin wird angezeigt
doch wenn ich oben im scrip mir den usernamen anzeigen lassen, dann ist die sql Variable leer
wenn ich oben echo $session->username; auskommentiere, dann geht das script wieder
public static function getStaffList() {
$sql = "SELECT * FROM staff where surname = 'Piet'";
$result = mysql_query($sql);
if (!$result) {
return 'Error: ' . mysqli_error(Core::$link);
}
$return = array();
while ($myrow = mysqli_fetch_assoc($result)) {
if ($myrow['birthday'] !== '0000-00-00') {
$myrow['birthday'] = date("d.m.Y", strtotime($myrow['birthday']));
} else {
$myrow['birthday'] = '';
}
$return[] = $myrow;
}
//mysql_free_result($result);
//$result->close();
return $return;
}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6935101900
Url: https://administrator.de/contentid/6935101900
Ausgedruckt am: 21.11.2024 um 20:11 Uhr
23 Kommentare
Neuester Kommentar
Hallo @martenk,
bitte überarbeite den Titel deines Postings. "Php Problem" ist überhaupt nicht aussagekräftig!
Ich verweise in diesem Zusammenhang nochmal auf unsere Forumsregeln: Wie Du eine Frage richtig stellst.
Du hast als Beitragsart "Frage" gewählt, die ich hier aber auch nicht finden kann, kein einziges Fragezeichen... Bitte ebenfalls überarbeiten und richtig ausformulieren!
Grüße
tomolpi
Moderator
bitte überarbeite den Titel deines Postings. "Php Problem" ist überhaupt nicht aussagekräftig!
Ich verweise in diesem Zusammenhang nochmal auf unsere Forumsregeln: Wie Du eine Frage richtig stellst.
Du hast als Beitragsart "Frage" gewählt, die ich hier aber auch nicht finden kann, kein einziges Fragezeichen... Bitte ebenfalls überarbeiten und richtig ausformulieren!
Grüße
tomolpi
Moderator
Er stellt hier keine Fragen, seine Beiträge sind meist eh nur Arbeitsanweisungen ans Forum 🐟 ... Just ignore ... Friday is coming.
Zitat von @martenk:
ich wollte es so in der Art haben
ich wollte es so in der Art haben
if($session->username ="admin"){$sql = "SELECT * FROM staff surname = 'Piet'";}
if($session->username ="julia"){$sql = "SELECT * FROM staff surname = 'Julia'";}
Lesen und verstehen!
Unterschied zwischen
Comparison Operators
und
Assignment Operators
Dann geht auch dir ein Licht auf.
Hausaufgabe ...
=> https://www.php-einfach.de/
=> https://www.php-einfach.de/php-tutorial/php-sessions/
=> https://www.php-einfach.de/
=> https://www.php-einfach.de/php-tutorial/php-sessions/
nur wenn ich die variable abfrage, geht die query nicht mehr
Beschäftige dich mal mit PHP Headers und "Headers already sent", wenn man in den Backend Controller Files etwas per echo ausgibt, damit bringst du das ganze System an sich zu Fall ...
Wie schon gesagt
Model–view–controller concept
https://www.w3schools.com/sql/sql_where.asp
Tschö.
Model–view–controller concept
"SELECT * FROM staff surname = 'Piet'"
Setzen 6, SQL Syntax Error!https://www.w3schools.com/sql/sql_where.asp
Tschö.
By the way :
https://www.w3schools.com/sql/sql_where.asp
"SELECT * FROM staff surname = 'Piet'"
Setzen 6, SQL Syntax Error!https://www.w3schools.com/sql/sql_where.asp
Zitat von @6247018886:
Er stellt hier keine Fragen, seine Beiträge sind meist eh nur Arbeitsanweisungen ans Forum 🐟 ... Just ignore ... Friday is coming.
Er stellt hier keine Fragen, seine Beiträge sind meist eh nur Arbeitsanweisungen ans Forum 🐟 ... Just ignore ... Friday is coming.
Ich bewundere deine Geduld ;)
@martenk
Du kannst mir den neuen Titel gerne mitteilen, ich kann das dann abändern.
Mit Popcorn ist es gerade noch erträglich .
Moin,
Wo kommt $session her?
Die Funktion gibt es nicht.
So ganz klar ist mir das Problem aber ohnehin nicht … Versuchst du die Bedingungen in der Methode getStaffList einzubauen? Woher soll dort $session herkommen?
Viele Grüße
Tobias
Wo kommt $session her?
$result = mysql_query($sql);
Die Funktion gibt es nicht.
So ganz klar ist mir das Problem aber ohnehin nicht … Versuchst du die Bedingungen in der Methode getStaffList einzubauen? Woher soll dort $session herkommen?
Viele Grüße
Tobias
Zitat von @AlterNeuerSack:
$sql = "SELECT * FROM staff surname = 'Piet'"
Ich vermisse dass WHERE, Ihr nicht?
$sql = "SELECT * FROM staff surname = 'Piet'"
Ich vermisse dass WHERE, Ihr nicht?
Wurde schon erwähnt...
Zitat von @6247018886:
By the way :
https://www.w3schools.com/sql/sql_where.asp
By the way :
"SELECT * FROM staff surname = 'Piet'"
Setzen 6, SQL Syntax Error!https://www.w3schools.com/sql/sql_where.asp
Btw. an den TO: ich würde dir dringend dazu raten Codes aus einem Skript das du gekauft hast hier nicht zu veröffentlichen, das kann dich teuer zu stehen kommen!
@martenk
Das Sichtbarkeitsverhalten von PHP weicht von dem von anderen Sprachen ab. Um eine globale Variable in einer Klassenmethode zu verwenden, mußt Du den Gültigkeitsbereich der Variable mit der Direktive global erweitern, siehe https://www.php.net/manual/de/language.variables.scope.php
Ich würde allerdings ein Pattern verwenden, das dann ersetzt wird:
Das Sichtbarkeitsverhalten von PHP weicht von dem von anderen Sprachen ab. Um eine globale Variable in einer Klassenmethode zu verwenden, mußt Du den Gültigkeitsbereich der Variable mit der Direktive global erweitern, siehe https://www.php.net/manual/de/language.variables.scope.php
public static function getStaffList() {
global $session;
if($session->username =="admin"){$sql = "SELECT * FROM staff surname = 'Piet'";}
Ich würde allerdings ein Pattern verwenden, das dann ersetzt wird:
public static function getStaffList() {
global $session;
$sql=str_replace('%surname%',Core::$link->real_escape_string($session->username),
"SELECT * FROM staff surname = '%surname%'");