WinFuture-Forum.de: Datenbanksätze Mit $_post Nach Übereinstimmungen überprüfen - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 3 Seiten +
  • 1
  • 2
  • 3

Datenbanksätze Mit $_post Nach Übereinstimmungen überprüfen

#16 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 14. August 2008 - 22:32

Ich weiß, ich mach das immer sehr umständlich mit meinen Anführungszeichen aber meine funtionierende Suche ging einfach so:

mysql_query("SELECT * FROM `tabelle` WHERE `".$suche."` LIKE '%".$suchwort."%';")



und dann mit

$text = str_ireplace($suchwort,"<span style=\"background-color:#FFFF99;\">".$suchwort."</span>", $text);


noch schön das Suchwort im Ergebnis hervorheben.

Dieser Beitrag wurde von Gitarremann bearbeitet: 14. August 2008 - 22:36

Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

Anzeige



#17 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. August 2008 - 22:32

Jo, das war schonmal ein Fehler, meine Schuld war zu unübersichtlich, aber der Syntax ist doch falsch oder?

Zitat

SELECT de,en FROM hp_photoshop WHERE de LIKE '%'entfernen'%' OR en LIKE '%'entfernen'%'

0

#18 Mitglied ist offline   lloiser 

  • Gruppe: aktive Mitglieder
  • Beiträge: 92
  • Beigetreten: 13. August 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. August 2008 - 22:39

kommt bei deinem ein richtiges Ergebnis raus?
wenn nicht dann versuchs mal damit
SELECT de,en FROM hp_photoshop WHERE de LIKE '%entfernen%' OR en LIKE '%entfernen%'

Denken ist Arbeit
Arbeit ist Energie
und Energie soll man sparen
0

#19 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. August 2008 - 22:43

So, jetzt hab ich schon den ersten Erfolg zu verzeichnen :-)

$sql="
	SELECT 
de,en 
	FROM 
`hp_photoshop`
 	WHERE 
`de` LIKE '%".$_POST['suche']."%'
	OR
`en` LIKE '%".$_POST['suche']."%'
";

echo $sql;

$query=mysql_query($sql);
$result=mysql_fetch_array($query);

echo "<br />Ihre Suche nach <b>".$_POST['suche']."</b> ergab:<br />";

while($row=mysql_fetch_array($query))
{
echo $row[de]." - ".$row[en]."<br />";
}


Er gibt zwei Ergebnisse aus:

Zitat

Suchergebnisse: SELECT de,en FROM `hp_photoshop` WHERE `de` LIKE '%entfernen%' OR `en` LIKE '%entfernen%'
Ihre Suche nach entfernen ergab:
Schwarz entfernen - Remove Black Matte
Weiß entfernen - Remove White Matte


Nur leider sind es 3!
Es gehört noch "Rand entfernen - Defringe" dazu!

Wo ist denn der dritte Eintag geblieben?
0

#20 Mitglied ist offline   lloiser 

  • Gruppe: aktive Mitglieder
  • Beiträge: 92
  • Beigetreten: 13. August 08
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. August 2008 - 22:50

sicher das in der Datenbank "Rand entfernen steht"?
weil sonst weiß ich momentan nicht mehr weiter
Denken ist Arbeit
Arbeit ist Energie
und Energie soll man sparen
0

#21 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 14. August 2008 - 22:51

Beitrag anzeigenZitat (Toasterfraktion: 14.08.2008, 23:43)

...

Er gibt zwei Ergebnisse aus:


Nur leider sind es 3!
Es gehört noch "Rand entfernen - Defringe" dazu!

Wo ist denn der dritte Eintag geblieben?


Manchmal sind es so ganz simple Sachen wie Rechtschreibfehler bzw. Vertipper. Aus Versehen "Rand entfrenen" geschrieben und schon wird es über "entfernen" nicht gefunden.
Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#22 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 14. August 2008 - 23:09

hm doch richtig geschrieben ist es:
Angehängtes Bild: entfernen.JPG
0

#23 Mitglied ist offline   Mr_Maniac 

  • Gruppe: aktive Mitglieder
  • Beiträge: 770
  • Beigetreten: 29. Juli 02
  • Reputation: 1
  • Geschlecht:Männlich
  • Interessen:Vieles rund um den Computer
    Musik

geschrieben 15. August 2008 - 05:50

Beitrag anzeigenZitat (lloiser: 14.08.2008, 22:34)

IN funktioniert auch mit Spalten? ich hät glaubt nur mit werten also [spalte] in (wert1, wert2, ... wert n)

Ja, das funktioniert auch mit "'string' IN (spalte1, spalte2)". Ich habe nur den Fehler gemacht, dass man DANN natürlich NICHT mit wildcards arbeiten kann. Das geht ja dann nur mit LIKE...

Und @Toasterfraktion:
Das mit dem "übersichtlicher" hast du ein wenig falsch verstanden.
Es war nicht gemeint, dass du das mysql_real_escape_string weglässt (das ist u.U. nämlich wichtig! Gerade bei Nutzereingaben!) und nur das $_POST hinschreibst, sondern dass du diese POST-Variablen erst mal in eine temporäre Variable legst...
Also in etwa so:
$suchstring = mysql_real_escape_string(strtolower($_POST['suche']));
$sql="
	SELECT
de,en
	FROM
`hp_photoshop`
	WHERE
`de` LIKE '%".$suchstring."%'
	OR
`en` LIKE '%".$suchstring."%'
";

Das strtolower kann man, soweit ich weiß, weg lassen, da "LIKE" case insensitive ist (AFAIK!).
0

#24 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. August 2008 - 09:20

Zitat

Das mit dem "übersichtlicher" hast du ein wenig falsch verstanden.

Ne, ich habe mysql_real_escape_string nur erstmal weggelassen da als erstes erstmal alles Funktionieren soll, dann hätte ich es natürlich eingefügt.

Zitat

POST-Variablen erst mal in eine temporäre Variable legst...

Joar, kann man machen! Häte ich auch gemacht, aber erst zum Schluss!

Also die Suchanfrage ist noch ncih so wie ich es möchte, wenn cih zum Beispiel Schwarz entfernen eingebe liefert er gar kein Ergebnis...
0

#25 Mitglied ist offline   Gitarremann 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.263
  • Beigetreten: 04. Juni 06
  • Reputation: 3
  • Geschlecht:Männlich
  • Wohnort:Trebnitz

geschrieben 15. August 2008 - 11:08

Beitrag anzeigenZitat (Toasterfraktion: 15.08.2008, 00:09)

hm doch richtig geschrieben ist es:
Anhang entfernen.JPG


Du hast doch bei der Suche mit phpmyAdmin nach "entfernen" alle drei Datensätze bekommen, dann kopier dir doch einfach die Abfrage in deinen PHP-Code. Ah nee falsch gelesen, aber such doch einfach in phpmyAdmin nach irgendwas und übernimm dann die Abfrage entsprechend. Mach ich fast immer so.

Dieser Beitrag wurde von Gitarremann bearbeitet: 15. August 2008 - 11:09

Der Pessimist sagt: "Das Glas ist halb leer,"
Der Optimist sagt: "Das Glas ist halb voll."
Der Realist sagt: "Bedienung, zwei Neue!"
0

#26 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. August 2008 - 11:37

Hm ich habe mir den Query in PHP ausgeben lassen! Den hab ich dann in phpmyadmin und in PHP verarbitet nur es kommen verschiedene Ergebnisse heraus!
0

#27 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 15. August 2008 - 20:59

Hat keiner eine Ahnung wie ich das mit der Suche machen kann?
0

#28 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 16. August 2008 - 10:14

Das Problem ist offensichtlich:
$query=mysql_query($sql);
$result=mysql_fetch_array($query); //Diese Zeile nimmt immer einen Eintrag weg, der nicht angezeigt wird

echo "<br />Ihre Suche nach <b>".$_POST['suche']."</b> ergab:<br />";

while($row=mysql_fetch_array($query))
{
echo $row[de]." - ".$row[en]."<br />";
}


Also entferne einfach diese Zeile:
$query = mysql_query($sql);

echo '<br />Ihre Suche nach <b>'.$_POST['suche'].'</b> ergab:<br />';

while ($row = mysql_fetch_array($query)) {
	echo $row[de].' - '.$row[en].'<br />';
}


Gruß,
Stefan
0

#29 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 16. August 2008 - 15:16

Ups, danke! :-)
0

#30 Mitglied ist offline   ps915 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.119
  • Beigetreten: 17. Mai 07
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 19. August 2008 - 12:00

Hallo,
ich habe noch ein Problem. Ich möchte gerne wenn nichts gefunden wurde "Es wurde nichts gefunden" ausgeben! Habe die Suchergebnisse in einer Tabelle, nur mit meiner Lösung bleibt "<td><b>Deutsch</b></td>
<td><b>Englisch</b></td>" ja stehen und die Meldung darunter!

Wie kann ich entweder die Tabelle mit den Ergebnissen oder die Meldung ausgeben?

$i=1;
while($row=mysql_fetch_array($query))
{
$i=$i + 1;
echo "
  <tr>
	<td style='border-right:1px solid black;'>".htmlentities($row[de])."</td>
	<td>".htmlentities($row[en])."</td>
  </tr>
";
}

echo "</table>";
if($i == 1){
echo "Es wurde nichts gefunden!";
}


Gruß,
Toasterfraktion
0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0