SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Websites optimieren für Google & Co.

Websites optimieren für Google & Co. zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)
Hilfe Community Kalender Heutige Beiträge Suchen

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 20.07.2004, 16:03:47
Lerian Lerian ist offline
Anfänger
 
Registriert seit: Jul 2004
Beiträge: 22
Suchfunktion in der Datenbank

Moin moin,

ich komme mal wieder nicht zurecht und hoffe auf Hilfe
Code:
	<?php
		while (list($key,$value) = each($HTTP_POST_VARS))
			{
			if ($key == "suche") {$suche = $value;}
			}
		require 'db.php';
		$connection = mysql_connect($dbhost, $dbuser, $dbpw) or die($errmsg1);
		$db_select = mysql_select_db($tname, $connection) or die($errmsg2);
		$result = mysql_query("SELECT * FROM para_content WHERE 'stichworte' LIKE '$suche' ORDER BY content_id DESC");
		while ($eintrag = mysql_fetch_array($result)) 
			{
			$cid=$eintrag['content_id'];
			$datum=$eintrag['content_time'];
			$autor =$eintrag['content_autor'];
			$title=$eintrag['content_title'];
			$kategorie=$eintrag['content_cat'];
		$result1 = mysql_query("SELECT * FROM para_contentcat WHERE contentcat_id = $kategorie");
		while ($kat_name = mysql_fetch_array($result1))
			{
			$kat=$kat_name['contentcat_name'];
			}
		echo date("d M Y - h:i:s",$datum)." - $kat - <a href='autor.php'>$autor</a> - <a href='beitrag.php?cid=$cid'>$title</a><br>";
			}
	
		mysql_close;
	?>
Was ich machen möchte:
Webseite ( index.html) wird ein Wort eingegeben dies wird an eine *.php seite (search.php) übergeben und das soll dann in einer DB , sprich Spalte ( content_text) eines Tables ( para_content) gesucht werden und alle Beiträge ( Datum, Kategorie, Autor, Titel) anzeigen.

Mein Problem ist, dass die Seite ( search.php)keinen Fehler anzeigt. Also weder Fehler noch den Inhalt.
Sicherlich ist es wieder nur was einfaches, aber für mich halt nicht und ich habe wieder den ganzen Tach damit verbracht neue php Seiten zu entdecken, um das Prob in den Griff zu bekommen, aber leider Fehlanzeige.

Vielleicht könnt Ihr mir helfen.

Danke schohmal im voraus

Lerian
Mit Zitat antworten
  #2  
Alt 20.07.2004, 16:07:39
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Wenn er Dir Fehler anzeigen soll, dann muss er auch was davon wissen!
PHP-Code:
$result=mysql_query('blubb') or die(mysql_error()); 
Sollte die Abfrage fehlerhaft sein, wird Dir die Meldung von MySQL ausgespuckt. So wie die Abfrage bisher aussieht, wirst Du eine dieser Meldungen erhalten... ;)


Übrigens: Ein Lob an Deine Problembeschreibung. Findet man nicht oft so etwas brauchbares!
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 20.07.2004, 16:25:45
Lerian Lerian ist offline
Anfänger
 
Registriert seit: Jul 2004
Beiträge: 22
Hm.....
Es wirft keinen Fehler raus. Einfach nur eine weise Seite. In dem Verlaufsprotokoll zeigt es auch nichts an.

Danke wegen dem Lob. Aber das mit der Problembeschreibung habe ich mir auch mehrmals durchgelesen und mehrmals korrigiert. Ich habe schon viel gelesen und oft taucht auf, könntest Du Dein Problem genauer schildern. Also lese ich mir doch meine Beschreibung leiber ein zweites mal oder ein drittes Mal durch, bevor ich es abschicke. ;)

Übrigens, gibt es irgendwie auch ein internes Log von phpMyAdmin über das ich in die Konsole ( W2k, cmd) nachschauen kann?
Mit Zitat antworten
  #4  
Alt 20.07.2004, 16:29:33
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Das enttäuscht mich jetzt ein wenig, dass kein Fehler kommt. Das ist nämlich falsch: WHERE 'stichworte' LIKE Die ' müssen weg! MySQL denkt, dass Du eine Zeichenkette meinst, dabei meinst Du doch aber eine Spalte!

phpMyAdmin verfügt meines Wissens nach über keine Log-Funktion. Läuft ja eh mit PHP und das logt genug, wenn nötig.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 20.07.2004, 23:09:04
Lerian Lerian ist offline
Anfänger
 
Registriert seit: Jul 2004
Beiträge: 22
Hm....

Ich habe das auch schon ohne das LIKE und das stichworte versucht, sprich nur mal mit reinen buchstaben.

.....WHERE content_text='suchwort' AND content_stat='1' ORDER ....

wobei in der datenbank extra in einem feldder spalte content_text ich das wort suchwort eingegeben habe.
Aber er hat wiederum keinen Fehler gebracht sondern einfach nur eine weise Seite.aber leider hat er auch net das ergebniss angezeigt. vielleicht liegt es aber auch nur an der ausgabe....
Das wird sicherlich wieder sowas kleines sein und ich komm net drauf und seh´s net.... ;)

Geändert von Lerian (20.07.2004 um 23:11:51 Uhr)
Mit Zitat antworten
  #6  
Alt 21.07.2004, 08:27:28
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Welche PHP-Version nutzt Du?

Hat $suche kurz vor dem mysql_query() auch wirklich den gewünschten Wert?

Wie sieht das aktuelle Skript aus? Bitte [ php ] statt [ code ] nutzen.

Schreib auch mal an den Anfang des Skriptes das:
PHP-Code:
error_reporting(E_ALL); 
Was gibt er Dir nun alles aus?
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 21.07.2004, 13:44:09
Lerian Lerian ist offline
Anfänger
 
Registriert seit: Jul 2004
Beiträge: 22
Moin moin,

hier der aktuelle Code:
PHP-Code:
    <?php
        error_reporting
(E_ALL);
        while (list(
$key,$value) = each($HTTP_POST_VARS))
            {
            if (
$key == "suche") {$suche $value;}
            }
        require 
'db.php';
        
$connection mysql_connect($dbhost$dbuser$dbpw) or die($errmsg1);
        
$db_select mysql_select_db($tname$connection) or die($errmsg2);
        
$result mysql_query("SELECT * FROM para_content WHERE content_text='$suche' ORDER BY content_id DESC") or die(mysql_error());
        while (
$eintrag mysql_fetch_array($result)) 
            {
            
$cid=$eintrag['content_id'];
            
$datum=$eintrag['content_time'];
            
$autor =$eintrag['content_autor'];
            
$title=$eintrag['content_title'];
            
$kategorie=$eintrag['content_cat'];
        
$result1 mysql_query("SELECT * FROM para_contentcat WHERE contentcat_id = $kategorie");
        while (
$kat_name mysql_fetch_array($result1))
            {
            
$kat=$kat_name['contentcat_name'];
            }
        echo 
date("d M Y - h:i:s",$datum)." - $kat - <a href='autor.php'>$autor</a> - <a href='beitrag.php?cid=$cid'>$title</a><br>";    
            }
        
mysql_close;
    
?>
Als Fehler wirft er folgendes raus:
Notice: Use of undefined constant mysql_close - assumed 'mysql_close' in c:programmeapache groupapachehtdocstestsearch.php on line 25

Zeile 25 ist: mysql_close;

Mal ne allgemeine Frage. Kann ich die Übergabe ( index.php)des Wortes und die Übernahme ( search.php) anstat mit dem (form name="suche" action="search.php") auch mit dem eigentlichen Übergabebefehl (a href=.....search.php?name=$suche) oder geht das bei Formularen nicht?

Ich habe irgendwie das so im Urin ( verzeiht den Ausdruck), dass es mit der Übergabe zusammenhängt, weil ansonsten würde er ja nen echten Fehler rausbringen. Oder aber er sucht irgendwas irgendwo, wo aber nichts ist. Weil closen sollte ich schon die connection....also warum dann der Fehler?

Meine Versionen:
phpMyAdmin: 2.5.7
PHP Version: 4.3.7
Apache: 1.3.31
hoffe dass das so passt... ;)

NACHTRAG:
Ob das $suche den gewünschten Wert hat, weiß ich net. Wie gesagt, an sich ins eiskalte Wasser geworfen und nun da stehen: Deshalb weiß ich net, wie ich das überprüfen kann. Aber ich such mal ein wenig nach und mach das dann, weil ich glaube da was gelesen zu haben, das man die Übergabe überprüfen kann. Ich meld mich gleich nochmal.

Geändert von Lerian (21.07.2004 um 13:46:31 Uhr)
Mit Zitat antworten
  #8  
Alt 21.07.2004, 15:22:50
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
PHP-Code:
// Einfach hier mal per echo ausgeben...
echo '<font size="7" color="red">'.$suche.'</font>';
// probier mal LIKE in Verbindung mit dem MySQL-Plathalter %
$result mysql_query("SELECT * FROM para_content WHERE content_text LIKE '%$suche%' ORDER BY content_id DESC") or die(mysql_error());
#$result = mysql_query("SELECT * FROM para_content WHERE content_text='$suche' ORDER BY content_id DESC") or die(mysql_error());


//...

// Irgendwo hast Du in Deinen Skripten in etwa sowas: $Verbindungskennung = mysql_connect(...)
mysql_close($Verbindungskennung); 
Mit Zitat antworten
  #9  
Alt 21.07.2004, 15:52:04
Lerian Lerian ist offline
Anfänger
 
Registriert seit: Jul 2004
Beiträge: 22
Oh mann.....ich hatte in der index.html anstatt body habe ich /body geschrieben, da hat er natürlich nicht mehr das form angenommen und gesendet. O.K. Also, Danke an Chris, er sendet nun das Wort.
Hier nun der aktuelle Code
PHP-Code:
    <?php
        error_reporting
(E_ALL);
        while (list(
$key,$value) = each($HTTP_POST_VARS))
            {
            if (
$key == "$suche") {$suchen $value;}
        require 
'db.php';
        
$connection mysql_connect($dbhost$dbuser$dbpw) or die($errmsg1);
        
$db_select mysql_select_db($tname$connection) or die($errmsg2);
        
$result mysql_query("SELECT * FROM para_content WHERE content_text='$suchen' ORDER BY content_id DESC") or die(mysql_error());
        while (
$eintrag mysql_fetch_array($result)) 
            {
            
$cid=$eintrag['content_id'];
            
$datum=$eintrag['content_time'];
            
$autor =$eintrag['content_autor'];
            
$title=$eintrag['content_title'];
            
$kategorie=$eintrag['content_cat'];
        
$result1 mysql_query("SELECT * FROM para_contentcat WHERE contentcat_id = $kategorie");
        while (
$kat_name mysql_fetch_array($result1))
            {
            
$kat=$kat_name['contentcat_name'];
            }
        echo 
date("d M Y - h:i:s",$datum)." - $kat - <a href='autor.php'>$autor</a> - <a href='beitrag.php?cid=$cid'>$title</a><br>";    
            }
        
mysql_close;
    
?>
Ich habe folgende Änderungen durchgeführt: In der index.html habe ich den name des inputs geändert ( vorher: name="suche" jetzt name="$suche")
Er übernimmt nun das Wort und zeigt es mir ( Danke nochmal an Chris) auch an.
In dem oberen Code habe ich nun nur noch das $ bei suche eingefügt um somit eine Anzeige zu bekommen, was aber nicht passiert dafür bringt er mir folgenden Fehler:
Parse Error: parse error, unexpected $end in c:programmeapache groupapachehtdocstestsearch.php on line 25
Line 25 ist das mysql_close mal wieder....

Hm...is schon ne witzige Sache.
Denoch danke für die Hilfe... ;)

NACHTRAG:
Auch wenn ich Deine Vorschlage mache ( mysql_close($connection) und LIKE in Verbindung mit Platzhalter) wirft er mir die Fehlermeldung mit der Line 25 aus. Habe also es gemacht, aber leider immer noch Fehler...aber das Handtuch werde ich nich, und wenn es das Letzte is wonach ich suchen werde... ;)

Geändert von Lerian (21.07.2004 um 16:01:31 Uhr)
Mit Zitat antworten
  #10  
Alt 21.07.2004, 15:54:50
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Da fehlt eine schließende geschweifte Klammer am Ende. Schau mal genau nach welche!

mysql_close() mit Klammern!
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


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

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:48:48 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt