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
freelancermap.de - IT Projektvermittlung für Selbständige und Freiberufler
  #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

PHP Marktplatz-Software
PHP Marktplatz-SoftwareEs hat sich viel getan! Die neue Version 7.5.9 unserer PHP Marktplatz-Software ebiz-trader steht ab sofort zur Verfügung.

28.10.2019 | Berni

Die RIGID-FLEX-Technologie
Die RIGID-FLEX-TechnologieDie sogenannte "Flexible Elektronik" , oftmals auch als "Flexible Schaltungen" bezeichnet, ist eine zeitgemäße Technologie zum Montieren von elektronischen Schaltungen.

06.12.2018 | Berni


 

Aktuelle PHP Scripte

SMT

Server Monitoring & Management Tool Das SMT wurde von einem Administrator für Administratoren entwickelt, es vereinfacht den Alltag in der klassischen Administration und Verwaltung. Mit dem SMT kannst Du alle Deine Server & Dienste verwalten und überwach

04.09.2020 palle_1977 | Kategorie: PHP
numaeks Web-Farbmixer

Die RGB-Farben lassen sich hier auf unterschiedliche Weise mischen. Zur Einstellung werden auch die Dreh- und Schieberegler mit Canvas verwendet. Gespeichert werden die Farben in einem Cookie.

04.09.2020 numaek | Kategorie: JAVASCRIPT/ Tools
phplinX-Erotikportal 4 ansehen phplinX-Erotikportal 4

Erweiterbares Portal speziell für Erotik mit den Modulen Webkatalog, Bannermanagement und Kleinanzeigenmarkt. Sämtliche Module können über einen einzigen Adminbereich verwaltet werden.

18.06.2020 Cosinus14 | Kategorie: PHP/ Anzeigenmarkt
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 08:23 Uhr.