"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

mysql werte auslesen ?!

bBU.CyTrobIc 12.11.2003 - 22:03 1670 30
Posts

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
scheint jetzt zu funktionieren.. einen fehler bekomm ich noch wenn ich keine suchbegriffe eingegeben habe. sollte aber leicht zu beheben sein.

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
du solltest mysql_fetch_assoc verwenden.. danach enthält das array row die informationen des datensatzes: $row['columnname']

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
welche notice?

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
die, die standardmässig nicht angezeigt wird, aber trotzdem auftritt, wenn du eine nicht initialisierte variable abfragst ;)

mat

Administrator
Legends never die
Avatar
Registered: Aug 2003
Location: nö
Posts: 25422
jaja.. error_reporting(E_ALL) freak :p ;)

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
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

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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...
Bearbeitet von watchout am 13.11.2003, 01:31

Ringding

Pilot
Avatar
Registered: Jan 2002
Location: Perchtoldsdorf/W..
Posts: 4300
Zitat von watchout
oh, sorry....

Dafür gibt's keine Entschuldigung :)

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
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
Bearbeitet von watchout am 13.11.2003, 05:19

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
damit kann ich das aber nur als "ganzes" ausgeben oder ? nicht formatiert oder ?

bBU.CyTrobIc

#include "billrulz.h"
Avatar
Registered: Oct 2000
Location: Hamburg
Posts: 1875
ich hab nen problem aufm anderen server der nimmt die nicht an.

watchout

Legend
undead
Avatar
Registered: Nov 2000
Location: Off the grid.
Posts: 6845
was nimmt er nicht an?
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz