php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 02-09-2003, 01:23
HämZli
 Junior Member
Links : Onlinestatus : HämZli ist offline
Registriert seit: May 2003
Beiträge: 50
HämZli ist zur Zeit noch ein unbeschriebenes Blatt
HämZli eine Nachricht über ICQ schicken
Standard [SQL allgemein] Mysteriöse Datenabfrage aus MySQL

Also ich habe eine MySQL Datenbank die Informationen enthält.

nun hab ich folgendes Formular;

Code:
<form name="suchanfrage" method="post" action="searchrequest.php">
......
<input type="text" name="search" maxlength="255" size="30">
......
<input type="radio" name="control" value="name">
......
<input type="submit" name="eintragen" value="Suchen">
.... solll heißen, dass ich unwichtige infos weggelassen hab.

das ist nun nen formular mit textfeld namens "search" und einem Kontrollkästchen namens control mit value name.

die datei searchrequest an die die variablen $search und $control geschickt werden sieht folgender maßen aus:

Code:
<?php
	
		include ("config.php");

		
if($search == '')
   {
   $text_search = "Bitte geben Sie einen Suchbegriff ein!<br>\n";
   include("eintragfehler.php");
   }

else
{

$link = mysql_connect($db_host, $db_user, $db_password);
		if ( ! $link )
		die ( "Keine Verbindung zu MySQL-Server");
		
mysql_select_db($db_name, $link)
		or die ( "Konnte $db_name nicht öffnen: ".mysql_error() );

$anfrage = mysql_query( "SELECT * FROM $db_table_daten WHERE $control=$search" );


$ausgabe = mysql_num_rows( $anfrage );

mysql_close( $link );		

};
ich hab beim ersten formular natürlich noch mehr kontrollkästchen, die tun aber nix zur sache. das value der kästchen hab ich immer so gewählt, wie die einzelnen spalten in der datenbanktabelle heißen. $control ist in diesem fall "name" und si heißt auch eine spalte in meiner tabelle.
im mysql_query ergibt sich dann folgende WHERE definition, da $control = name ist:

WHERE name=$search und $search ist der text aus dem textfeld.

die ausgabe der suergebnisse sieht wie folgt aus:

Code:
print "<table width=570 border=0 cellspacing=0 cellpadding=0 align=center>\n";
while ( $datensatz = mysql_fetch_array( $anfrage ) )
	{
	if($datensatz[logo] == '')
		{
		$logoausgabe = "&nbsp;";
		}
		else
		{					
		$logoausgabe = "<img src=$datei_url/$datensatz[logo]>";
		};
	print "<tr>\n";
	print "<td width=420 height=15 class=info_ueberschrift>&nbsp;<a href=ausgabe.php?action=$datensatz[id]>$datensatz[name]</a></td>\n";
	print "<td rowspan=4 width=150 height=150 align=center valign=top class=allgemein_text>$logoausgabe</td>\n";
	print "</tr>\n";
	print "<tr>\n";
	print "<td width=420 height=90 class=verzeichnis_contentmitte valign=top><br>$datensatz[infobeschreibung]</td>\n";
	print "</tr>\n";
	print "<tr>\n";
	print "<td width=420 height=15 class=verzeichnis_contentmitte valign=top>\n";
	print "<div align=right>--&gt; weitere Infos <a href=ausgabe.php?action=$datensatz[id]>HIER</a> oder unter: <a href=http://$datensatz[url]>$datensatz[url]</a></div>\n";
	print "</td>\n";
	print "</tr>\n";
	print "<tr>\n";
	print "<td width=420 height=15 class=verzeichnis_content>Bewertung</td>\n";
	print "</tr>\n";
	print "<tr>\n";
	print "<td width=420><font color=#CCCCFF>$datensatz[id]</font></td>\n";
	print "<td width=150 align=center valign=top class=allgemein_text>&nbsp;</td>\n";
	print "</tr>\n";   
	}
print "</table>\n";


print "$control<br>";
print "$search";
die letzten beiden printbefehle dienen nur zur controlle.....

ich habe verschiedene datensätze zu testzwecken in meiner datenbank, unteranderem eine mit dem name Test, eine mit dem Namen 1234 und eine mit 123 4.

wenn ich jetzt in mein textfeld von formular "Test" eingebe kommt folgende fehlermeldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in c:\archiv\privat\webdesign\hps\pph\verzeichnis\searchrequest.php on line 33

die letzten beiden printbefehle die zur kontrolle dienen zeigen aber die richtigen werte an nämlich "name" und "Test"

gebe ich ins textfeld "1234" ein, findet er einen Datensatz und gibt ihn wie gewünscht aus.

Gebe ich aber "123 4" ein, gibt es den gleichen fehler wie oben.

die datensätze Test und 123 4 gibt es aber.

Es sieht so aus, als ob er nicht nach Buchstaben suchen kann, sondern nur nach Zahlen. kann das sein.

kann mir da jemand helfen?????

Vielen Dank
HämZli
Mit Zitat antworten
  #2 (permalink)  
Alt 02-09-2003, 02:53
graf
 Senior Member
Links : Onlinestatus : graf ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 529
graf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

PHP-Code:
echo "<br>#######################<br>";
$query "select .... ";
echo 
$query."<p>";

mysql_query($query) or die(mysql_error());
echo 
"<br>#######################<br>"
ändere deinen code mal ab und poste was zwischen den #### steht.

und noch der standard:
sql-fehler ohne die funktion mysql_error() zu finden, macht keinen spass.
und wahrscheinlich wäre dein post, dann auch 30 zeilen kürzer.
Mit Zitat antworten
  #3 (permalink)  
Alt 02-09-2003, 15:00
HämZli
 Junior Member
Links : Onlinestatus : HämZli ist offline
Registriert seit: May 2003
Beiträge: 50
HämZli ist zur Zeit noch ein unbeschriebenes Blatt
HämZli eine Nachricht über ICQ schicken
Standard

also hab das mal gemacht und dann kommt folgendes:

wenn ich nach Test suche kommt:

#######################
SELECT * FROM daten WHERE name=Test
Unbekanntes Tabellenfeld 'Test' in where clause.



wenn ich nach 1234 suche:

#######################
SELECT * FROM daten WHERE name=1234

#######################



und bei der suche nach 123 4 kommt:

#######################
SELECT * FROM daten WHERE name=123 4
Fehler in der Syntax bei '4' in Zeile 1.



Aber die Erstefehlermeldung versteh ich nicht, denn es gibt in der spalte "name" einen Eintrag Test.....und Syntaxfehler.....was soll das sein????

mysql_error() hab ich jetzt erstmal eingebaut.....stimmt schön...ist sonst nen bischen mühselig ;-)

Danke schonmal

HämZli

Geändert von HämZli (02-09-2003 um 15:21 Uhr)
Mit Zitat antworten
  #4 (permalink)  
Alt 02-09-2003, 15:17
HämZli
 Junior Member
Links : Onlinestatus : HämZli ist offline
Registriert seit: May 2003
Beiträge: 50
HämZli ist zur Zeit noch ein unbeschriebenes Blatt
HämZli eine Nachricht über ICQ schicken
Standard

Vielleicht hat da auch gleich noch einer ne besser Idee, wie man das machen kann...

wie vielleicht erkannt soll das ein suchformular geben... jetzt kann ich ja nur nach exakt den werten suchen, die auch in der tabelle stehen. steht zum beispiel in einer spalte der eintrag "peter martin" und ich nur nach peter such, werde ich ja kein ergebnis bekommen...ich müsste ja genau nach Peter Martin suchen, gibt es dafür vielleicht ne Lösung, damit ich auch nach teilen eines eintrags suchen kann...??

HämZli
Mit Zitat antworten
  #5 (permalink)  
Alt 03-09-2003, 01:26
HämZli
 Junior Member
Links : Onlinestatus : HämZli ist offline
Registriert seit: May 2003
Beiträge: 50
HämZli ist zur Zeit noch ein unbeschriebenes Blatt
HämZli eine Nachricht über ICQ schicken
Standard

frage hat sich erledigt.....bitte keine antworten mehr...
Mit Zitat antworten
  #6 (permalink)  
Alt 03-09-2003, 01:32
graf
 Senior Member
Links : Onlinestatus : graf ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 529
graf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aber um den thread das mysteriöse zu nehmen:

es fehlten die anführungszeichen:
... where name="Test"
etc.
Mit Zitat antworten
  #7 (permalink)  
Alt 03-09-2003, 01:54
HämZli
 Junior Member
Links : Onlinestatus : HämZli ist offline
Registriert seit: May 2003
Beiträge: 50
HämZli ist zur Zeit noch ein unbeschriebenes Blatt
HämZli eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von graf
aber um den thread das mysteriöse zu nehmen:

es fehlten die anführungszeichen:
... where name="Test"
etc.
FALSCH, das funzt auch ohne....hättest du dir meinen thread richtig durchgelesen, hättest du gelesen, dass die suche funktioniert, aber nur bei manchen suchworten...

Das Prob ist auch nicht ganz gelöst, ich hab jetzt nur aus

PHP-Code:
...where $control=$search 
hab ich

PHP-Code:
..where $control LIKE %$search
gemacht. kommt dem, was ich wollte, eh näher...!
Mit Zitat antworten
  #8 (permalink)  
Alt 03-09-2003, 02:02
graf
 Senior Member
Links : Onlinestatus : graf ist offline
Registriert seit: Mar 2003
Ort: Hamburg
Beiträge: 529
graf ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn du meinst ...
dann wurschtel mal ohne anführungszeichen weiter
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

Projektmanagement Damals und Heute
Projektmanagement Damals und HeuteWerfen Sie einen Blick auf das, was sich verändert hat, und entdecken Sie, wo die Zukunft dieses Gebietes hinsteuert.

18.01.2021 | Berni

Arbeitsmanagement-Tools
Arbeitsmanagement-ToolsWarum jedes Team Arbeitsmanagement-Tools benötigt. Man schätzt, dass 25% eines durchschnittlichen Mitarbeiter-Tages durch ineffiziente Arbeit vergeudet werden.

11.12.2020 | Berni


 

Aktuelle PHP Scripte

Formmailer Bootstrap 4

Mit dem Formmailer kann man sich eMails über seine Seite zukommen lassen.

08.07.2021 arne-home | Kategorie: PHP/ Formular
Fehlerseite Bootstrap 4

Bei Aufruf einer nicht existierenden Seite, teilen Sie Besuchern mit einer eigenen Fehlerseite mit, dass die gewünschte Seite nicht gefunden wurde. Die eigene Fehlerseite sollte dasselbe Design wie die Website haben. Zudem sollte ein Link zur Startseite a

04.07.2021 arne-home | Kategorie: PHP/ Counter
Upload Bootstrap 4

Mit dem PHP - Uploadscript kann man schnell und einfach Bilder und Dateien auf den Webserver hochladen.

04.07.2021 arne-home | Kategorie: PHP/ File
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:41 Uhr.