Du bist hier: Seitenreport    Forum    Web-Entwicklung    PHP & MySQL    Daten werden nicht übergeben

Daten werden nicht übergeben

Verfasst am: 16. 03. 2012 [19:23]
Marcus
Dabei seit: 27.01.2011
Themenersteller

85 Beiträge
Beitrag hilfreich?

Hallo zusammen!

Wir sind gerade dabei, eine Datenbank für ein Mitgliederverzeichnis zu erstellen.

Diese soll es auch ermöglichen, innerhalb der DB zu suchen.

Unser Formular sieht wie folgt aus:

PHP
<?
$kategorie = $_POST["kategorie"];
$content = $_POST["content"];
// Anhand der übergebenen Kategorie wird eine entsprechende Abfrage generiert
// und das Ergebnis in einer Variablen gespeichert.
mysql_connect("localhost","XXXXX","XXXXX") or die ("Keine Verbindung moeglich");
mysql_select_db("XXXXX") or die ("Die Datenbank existiert nicht");
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
if (isset ($content))
	{
		switch ($kategorie)
		 {
			case "mitglied":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE mitglied = $content");
		 		break;
			case "anrede":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE anrede = $content");
		  		break;
			case "Titel":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE titel = $content");
				break;
			case "vorname":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE vorname = $content");
				break;
			case "name":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE name = $content");
				break;
			case "verein_landesgruppe":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE verein_landesgeruppe = $content");
				break;
			case "geburtsdatum":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE geburtsdatum = $content");
				break;
			case "strasse":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE strasse = $content");
				break;
			case "plz":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE plz = $content");
				break;
			case "ort":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE ort = $content");
				break;
			case "land":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE land = $content");
				break;
			case "email":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE email = $content");
				break;
			case "homepage":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE homepage = $content");
				break;
			case "telefon":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE telefon1 = $content");
				break;
			case "handy":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE handy = $content");
				break;
			case "mitgliedsbeitrag_gezahlt":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE mitgliedsbeitrag_gezahlt = $content");
				break;
			case "bemerkungen":
				$erg = mysgl_query("SELECT mitglied, vorname, name FROM Mitgliederverzeichnis WHERE bemerkungen = $content");
				break;
		 }
		 if ($erg)
		  {
				while($row = mysql_fetch_array($erg))
		   	  			{
					    	echo $row[0];
	    	     	    	echo ' ';
    	     				echo $row[1];
	    	     	    	echo ' ';
	    	     	    	echo $row[2];
	    	     	     ?>
	    	     			<a href="aendern.php?id=<? echo urlencode($row[0]); ?>">Details</a>
	    	     			<br><br>
	    		 		 <?
		   	  			}
		  }
		 else
		  {
			 echo "Es sind keine Datensätze vorhanden";
		  }
	}
else
	{
		echo "Bitte Wählen Sie eine kategorie aus und geben Sie einen Suchtext ein.";
	}
?>


Leider ergibt jede Eingabe eines Suchtextes die Ausgabe des ersten echo-Befehls: 'Es sind keine ....Ä'. Woran kann das liegen?

[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 16.03.2012 um 19:23.]

Portal für Veranstaltungen der Esoterik und Alternativen Verfahren

Mein Blog
 
Verfasst am: 16. 03. 2012 [19:57]
seitenreport
Dabei seit: 28.03.2009

Matthias Gläßner
Premium-Mitglied

1790 Beiträge
Beitrag hilfreich?

Hallo Marcus,

in Zukunft bitte unbedingt die Zugangsdaten aus dem mysql_connect entfernen, wenn Du derartigen Code öffentlich zur Schau stellst. Andernfalls ist Hägger der Schreckliche schneller bei Dir drin, als es Dir lieb ist (zumal die Beiträge hier auch von Suchmaschinen gelesen werden).

Ich habe die Zugangsdaten in Deinem Beitrag gerade mal schnell maskiert.

Beste Grüße,
Matthias

TYPO3 Freelancer | Gründer und Betreiber von Seitenreport
TYPO3 Anfragen: info@matthias-glaessner.de | XING-Profil
 
Verfasst am: 16. 03. 2012 [19:59]
Marcus
Dabei seit: 27.01.2011
Themenersteller

85 Beiträge
Beitrag hilfreich?

Hallo Matthias!

Danke, das hab ich völlig verpennt! Aber jetzt auch die Daten selbst geändert

[Dieser Beitrag wurde 2mal bearbeitet, zuletzt am 16.03.2012 um 21:33.]

Portal für Veranstaltungen der Esoterik und Alternativen Verfahren

Mein Blog
 
Verfasst am: 17. 03. 2012 [00:34]
Ultima
Dabei seit: 09.07.2010

759 Beiträge
Beitrag hilfreich?

Hi Marcus,

es liegt daran das Strings auch bei SQL in Anführungszeichen gehören. Du kannst dir SQL Fehler so anzeigen lassen:
PHP
echo mysql_error();


Ich hab deinen Code mal etwas gekürzt und optimiert. Du solltest Benutzereingaben immer validieren! (Habs nur so schnell runter getippt, es können noch Fehler drin sein.)

Schöne Grüße
Thomas

PHP
<?php
// Anhand der übergebenen Kategorie wird eine entsprechende Abfrage generiert
// und das Ergebnis in einer Variablen gespeichert.
mysql_connect('localhost','XXXXX','XXXXX') or die ('Keine Verbindung moeglich');
mysql_select_db('XXXXX') or die ('Die Datenbank existiert nicht');
mysql_query('SET NAMES utf8');
 
$kategorie = strtolower($_POST['kategorie']);
$content = mysql_real_escape_string($_POST['content']);
 
// verfügbare Spalten
$validKats=array('mitglied','anrede','titel','vorname','name','verein_landesgruppe','geburtsdatum','strasse','plz','ort','land','email','homepage','telefon','handy','mitgliedsbeitrag_gezahlt','bemerkungen');
 
if(empty($content)){
	echo '$content ist leer!';
}else if(!in_array($kategorie,$validKats)){
	echo 'Bitte Wählen Sie eine kategorie aus und geben Sie einen Suchtext ein.';
}else{
	$erg = mysgl_query('SELECT `mitglied`, `vorname`, `name`
			FROM `Mitgliederverzeichnis`
			WHERE `'.$kategorie.'`="'.$content.'"');
	if(mysql_num_rows($erg)){
		while($row = mysql_fetch_object($erg))
			echo $row->mitglied, ' ', $row->vorname, ' ', $row->name,
				'<a href="aendern.php?id=', urlencode($row->mitglied), '">Details</a><br><br>';
	}else{
		echo 'Es sind keine Datensätze vorhanden';
	}
}
?>


[Dieser Beitrag wurde 1mal bearbeitet, zuletzt am 17.03.2012 um 00:36.]

 




Du bist nicht eingeloggt. Bitte beachte, dass Du eingeloggt sein musst, um Themen zu erstellen oder auf Beiträge zu antworten.

RSS Feed abonnieren

Werde in Echtzeit über neue Foren-Beiträge informiert:



5 Mitglieder waren innerhalb der letzten 15 Minuten online (216 heute gesamt):
impressumx, joerg, psv2002, sexcamamateure, SimonR

Administratoren und Moderatoren:
[keine]

Seitenreport hat 18109 registrierte Mitglieder, 2999 Themen und 29092 Beiträge.
Der aktuelle Mitgliederzuwachs liegt bei durchschnittlich 12 bestätigten Neuregistrierungen pro Tag.
Pro Tag werden im Seitenreport Forum durchschnittlich 1 neues Thema und 8 Beiträge erstellt.
Die Durchschnittszahlen berechnen sich aus den letzten 7 Tagen.

Mehrfach empfohlen

Seitenreport ist einer der bekanntesten SEO und Website Analyse Dienste im deutschsprachigen Raum und wurde u.a. schon empfohlen:
von Mr. Wong im Wong Letter
vom Leserservice der Deutschen Post
vom Technik Blog SiN
und vielen anderen

Partnerprogramm

12% Lifetime Provision auf alle Buchungen von Dir geworbener Mitglieder sowie 0,50 € für jede Registrierung. Eines der besten deutschen Partnerprogramme laut den appCharts von 100partnerprogramme.de. Nimm jetzt teil am Seitenreport Partnerprogramm und verdiene gutes Geld dabei!

* = Partnerlinks