mysql werte auslesen ?! - Seite 2

Seite 2 von 3 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/mysql_werte_auslesen_98423/page_2 - zur Vollversion wechseln!


mat schrieb am 12.11.2003 um 23:11

scheint jetzt zu funktionieren.. einen fehler bekomm ich noch wenn ich keine suchbegriffe eingegeben habe. sollte aber leicht zu beheben sein.


mat schrieb am 12.11.2003 um 23:14

du solltest mysql_fetch_assoc verwenden.. danach enthält das array row die informationen des datensatzes: $row['columnname']


watchout schrieb am 12.11.2003 um 23:25

Code: PHP
$tabelle = "ansprechpartner";
$sql = "SELECT * FROM $tabelle WHERE ";

$things = array(
	'x_name' => 'NAME',
	'x_nach' => 'NACHNAME',
	'x_zust' => 'ZUSTÄNDIG',
	'x_stand' => 'STANDORT',); /* usw */
	
$i = 0;
foreach($things as $thingname => $thing)
{
	if($$thingname)
	{
		if($i==0)
		{
			$sql.= $thing.' LIKE '.$thingname;
		}
		else
		{
			$sql.= ' OR '.$thing.' LIKE '.$thingname;
		}
		$i++;
	}
}
/*ab "if($i != 0){  ..." fortfahren...*/ 
ungetestet, aber es sollte funken und ersetzt deinen 500m if-teil...
"thing" ist durch beliebige bezeichnung zu ersetzen die dir logisch erscheint, mir is nix eingfallen :D

btw: ringding, das lob gebührt eher dem mat, der anscheinend nach 50zeichen oder so fix nen <br /> programmiert hat :p

@1. Frage:
Code: PHP
    while($row = mysql_fetch_array($r_sql)){
        echo implode($row,',');
        echo("<br>");
    }


mat schrieb am 13.11.2003 um 00:20

schöner:

Code: PHP
$aInput = array(
    $x_name => 'NAME',
    $x_nach => 'NACHNAME',
    $x_zust => 'ZUSTÄNDIG',
    $x_stand => 'STANDORT'); /* usw */

$szSQL = "";
foreach($aInput as $szInput => $szColumn)
{
	if ($szInput == "")
		continue;

	if ($szSQL != "")
		$szSQL .= ' OR ';

	$szSQL .= " $szColumn LIKE $szInput";
}

if ($szSQL == "")
	die("Bitte Suchbegriffe spezifizieren!");


watchout schrieb am 13.11.2003 um 00:56

ok, wenns so is...:
am schönsten :p

Code: PHP
$aInput = array(
	'x_name' => 'NAME',
	'x_nach' => 'NACHNAME',
	'x_zust' => 'ZUSTÄNDIG',
	'x_stand' => 'STANDORT'); /* usw */
	
$szSQL='';
foreach($aInput as $szInputName => $szColumn)
{
	if(!isset($$szColumn) OR !$$szColumn)
		continue;

	if (!$szSQL)
		$szSQL .= ' OR ';

	$szSQL .= " $szColumn LIKE $szInput";
}

if (!$szSQL)
    die('Bitte Suchbegriffe spezifizieren!');
auf diese weise sollte nichtmal ne notice von php kommen...


mat schrieb am 13.11.2003 um 01:01

welche notice?


watchout schrieb am 13.11.2003 um 01:06

die, die standardmässig nicht angezeigt wird, aber trotzdem auftritt, wenn du eine nicht initialisierte variable abfragst ;)


mat schrieb am 13.11.2003 um 01:09

jaja.. error_reporting(E_ALL) freak :p ;)


Ringding schrieb am 13.11.2003 um 01:10

Und nachdem ich heute mal wieder beim Bekehren bin, merke ich auch gleich an, dass man bei diesem Code ganz leicht durch SQL Injection die Datenbank löschen kann.


watchout schrieb am 13.11.2003 um 01:25

Zitat von Ringding
Und nachdem ich heute mal wieder beim Bekehren bin, merke ich auch gleich an, dass man bei diesem Code ganz leicht durch SQL Injection die Datenbank löschen kann.
oh, sorry....

Code: PHP
$aInput = array(
	'x_name' => 'NAME',
	'x_nach' => 'NACHNAME',
	'x_zust' => 'ZUSTÄNDIG',
	'x_stand' => 'STANDORT'); /* usw */
	
$szSQL='';
foreach($aInput as $szInputName => $szColumn)
{
	if(!isset($$szColumn) OR !$$szColumn)
		continue;

	if (!$szSQL)
		$szSQL .= ' OR ';

	$szSQL .= ' '.$szColumn.' LIKE '%'.mysql_escape_string($szInput).'%'';
}

if (!$szSQL)
    die('Bitte Suchbegriffe spezifizieren!');
sollte dann alles ausschliessen...

edit: mist, escapes... mpf... mat, der kickt mir alle escapes ausn string...


Ringding schrieb am 13.11.2003 um 01:29

Zitat von watchout
oh, sorry....

Dafür gibt's keine Entschuldigung :)


watchout schrieb am 13.11.2003 um 01:33

Zitat von Ringding
Dafür gibt's keine Entschuldigung :)
ok, ich such mir noch ne schöne brücke :(

Edit: Weil ich von gewissen personen darauf angesprochen wurde (:D) hier ein recht guter link (wie ich finde)
http://www.net-security.org/dl/arti...QLInjection.pdf


bBU.CyTrobIc schrieb am 13.11.2003 um 09:37

damit kann ich das aber nur als "ganzes" ausgeben oder ? nicht formatiert oder ?


bBU.CyTrobIc schrieb am 13.11.2003 um 13:20

ich hab nen problem aufm anderen server der nimmt die nicht an.


watchout schrieb am 13.11.2003 um 18:42

was nimmt er nicht an?




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026