php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 22-02-2003, 11:45
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard explode einzelne Daten aus DB

hallo Leute,

habe in DB mittels implode Daetn in einem Feld mit der Bezeichnung anz_kategorie stehen, und zwar in der Form Name1,Name2,Name3,....

ich möchte nun dieses Feld über eine Suchfunktion abfragen, und zwar soll der User aus mehreren Möglichkeiten wählen (Name1 oder Name2 oder....)

Kann man das mit explode lösen, und wenn ja wie?

bisher habe ich folgenden code:

while(list($anz_id,$an_kategorie)=mysql_fetch_row($ergebnis)) {


$kat=explode(",",$anz_kategorie);

.......


echo "<td align=center><font color=#000000 face=verdana size=-2></font>$kat</td>";

Gruss

Martin
Mit Zitat antworten
  #2 (permalink)  
Alt 22-02-2003, 11:47
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

hilft dir in_array weiter?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #3 (permalink)  
Alt 22-02-2003, 12:41
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry, hilft mir momentan noch nicht entscheidend weiter
Mit Zitat antworten
  #4 (permalink)  
Alt 22-02-2003, 12:49
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

der user gibt z.b. "hasu" und "auto" ein. diese usereingabe hast du in deinem skript im array $_POST['gesucht'] stehen.
PHP-Code:
while(list($anz_id,$an_kategorie)=mysql_fetch_row($ergebnis))
{
  
$kat=explode(",",$anz_kategorie);
  for (
$i=0;$i<count($_POST['gesucht']);$i++)
    if (
in_array($_POST['gesucht'][$i],$kat)
    {
      
$gefunden=true;
      break;
    }

so in etwa? oder willst du was anderes?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #5 (permalink)  
Alt 24-02-2003, 19:26
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe den code lt. Angabe verändert in

Usereingabe:


PHP-Code:
if (!empty($HTTP_POST_VARS['anz_kategorie']))

  
$where.="anz_kategorie='".$HTTP_POST_VARS['anz_kategorie']."' AND "

PHP-Code:

while(list($anz_id,$anz_kategorie)=mysql_fetch_row($ergebnis)) { 
if (
$anz_datum){
           
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$anz_datum$dat);

{
$kat=explode(",",$anz_kategorie);
for (
$i=0;$i<count ($HTTP_POST_VARS['anz_kategorie']);$i++)
     if (
in_array($HTTP_POST_VARS['anz_kategorie'] [$i],$kat)
     {
               
$katgef=true;
               break;
     }
}




Der echobefehl für diese Zeile lautet:

echo "<td align=center><font color=#000000 face=verdana size=-2></font>$katgef</td>";




Es ersccheint folgende Fehlermeldung:

Fatal error: Call to unsupported or undefined function in_array() in /home/strato/www/ho/www.ho......................./search.php3 on line 99

Zur Verdeutlichung nochmals:


1. In der DB stehen im feld anz_kategorie mehrere Werte durch , getrennt.

2. Im Suchscript kann der User aus der Vielzahl der Werte einen einzigen aussuchen.

3. Daraufhins soll das Feld anz_kategorie nach dem gewählten Wert auf sein Vorkommen durchsucht werden , und wenn er gefunden wird mittels echo-Befehl ausgegeben werden.

Ich hoffen, dass ich mich verständlich machen konnte und mir jemand weiterhelfen kann.

Bis dann

Martin
Mit Zitat antworten
  #6 (permalink)  
Alt 24-02-2003, 20:27
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

was für ne php-version hast du?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #7 (permalink)  
Alt 24-02-2003, 20:28
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

php3
Mit Zitat antworten
  #8 (permalink)  
Alt 24-02-2003, 20:33
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

und da willst du nicht updaten?

naja, probier's mal damit
PHP-Code:
function in_array($needle,$haystack)
{
  foreach (
$haystack as $key => $value)
           if (
stristr($value$needle))
              return 
true;
  return 
false;

PHP3 is übrigens uralt, sicher dass du nicht vielleicht doch 4.x hast?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #9 (permalink)  
Alt 24-02-2003, 20:39
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mein provider bietet auch php 4 an, aber die file, die ich als Grundlage für mein prog habe sind alle *.php3.

Frage kann ich die 3er und 4er Version mischen?

Versteh zwar im Moment nur Bahnhof, versuchs aber gleich einmal mit dem neuen code, vielleicht bekomm ichs ja hin.

Danke

Martin
Mit Zitat antworten
  #10 (permalink)  
Alt 24-02-2003, 20:40
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

benenne die um in *.php, dann sollte es gehen

Oder hast du nen speziellen grund dafür, php3 zu nutzen?
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #11 (permalink)  
Alt 24-02-2003, 21:51
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habe die Dateien und die Verweise innerhalb der Dateien von *.php3 in *.php umbenannt und den erstgeposteten code eingefügt:

nachfolgend einmal der komplette code

PHP-Code:
<?
// 
// Hier keine Veränderungen vornehmen
// Datenbankverbindung

include("config.php");
include(
"db_connect.php");

// Löschen von alten Anzeigen

// include("expire.php");

// Datenbank auslesen

// echo '$HTTP_POST_VARS:<br />';

// var_dump($HTTP_POST_VARS);

// echo '<hr />$HTTP_POST_VARS:<br />';

// var_dump($HTTP_POST_VARS);

$where='';

if (!empty(
$HTTP_POST_VARS['anz_plz']))

  
$where.="anz_plz='".$HTTP_POST_VARS['anz_plz']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_ort']))

  
$where.="anz_ort='".$HTTP_POST_VARS['anz_ort']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_kategorie']))

  
$where.="anz_kategorie='".$HTTP_POST_VARS['anz_kategorie']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_kategorie2']))

  
$where.="anz_kategorie2='".$HTTP_POST_VARS['anz_kategorie2']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_preiskat']))

  
$where.="anz_preiskat='".$HTTP_POST_VARS['anz_preiskat']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_livemusik']))

  
$where.="anz_livemusik='".$HTTP_POST_VARS['anz_livemusik']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_kueche']))

  
$where.="anz_kueche='".$HTTP_POST_VARS['anz_kueche']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_freizeit']))

  
$where.="anz_freizeit='".$HTTP_POST_VARS['anz_freizeit']."' AND ";

if (!empty(
$HTTP_POST_VARS['anz_rubrik']))

  
$where.="anz_rubrik='".$HTTP_POST_VARS['anz_rubrik']."' AND ";

$where=substr($where,0,strlen($where)-4);

$abfrage="SELECT * FROM anzeigen WHERE $where ORDER BY anz_name ASC";

// echo '<hr />$abfrage hat den Wert: '.$abfrage.'<br />';

// echo '$where hat den Wert: '.$where.'<hr />';

$ergebnis=mysql_query($abfrage) or die(mysql_error());

// Ergebnisse ausgeben

echo "<html>";
echo 
"<head>";
echo 
"</head>";
echo 
"<body bgcolor=\"#EEECE4\" text=#000000>";
echo 
"<center>";
echo 
"<table border=0 cellspacing=1 width=800 bordercolor=#000000>";
echo 
"<tr><p><font size=-2 color=#000000 face=verdana><b>Nachfolgende Lokalitäten stimmen mit Ihrer Suchdefinition überein.<br>";
echo 
"Zur Detailansicht auf mehr... klicken !</font></p></tr>";
echo 
"<tr>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Bild</b></font></td>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Name</b></font></td>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Ort</b></font></td>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Kategorie</b></font></td>";        
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Kontakt</b></font></td>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Homepage</b></font></td>";
        echo 
"<td align=center bgcolor=#C0C0C0><b><font color=#FFFFFF face=verdana size=+0>Details</b></font></td>";
echo 
"</tr>";


while(list(
$anz_id,$anz_datum,$anz_name,$anz_inhaber,$anz_strasse,$anz_plz,$anz_ort,$anz_land,$anz_staat,$anz_email,$anz_page,$anz_link,$anz_tel,$anz_fax,$anz_partner,$anz_kategorie,$anz_kategorie2,$anz_offen,$anz_preiskat,$anz_livemusik,$anz_stil,$anz_kredkarte,$anz_lieferservice,$anz_zimmerzahl,$anz_zimmerpreis,$anz_sitzplatz,$anz_nebenraum,$anz_ruhetag,$anz_seminar,$anz_biere,$anz_kueche,$anz_spezial,$anz_rubrik,$anz_freizeit,$anz_text,$anz_bild1,$anz_bild2,$anz_bild3,$anz_bild4,$anz_chiffre)=mysql_fetch_row($ergebnis)) { 
if (
$anz_datum){
           
ereg ("([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})"$anz_datum$dat);

{
$kat=explode(",",$anz_kategorie); 
for (
$i=0;$i<count ($HTTP_POST_VARS['anz_kategorie']);$i++) 
if (
in_array($HTTP_POST_VARS['anz_kategorie'] [$i],$kat

$katgef=true
break; 
     }
}

}
echo 
"<tr align=center>";
      echo 
"<td align=center><font color=#000000 face=verdana size=-2><img src='$anz_bild1' width=\"80\" height=\"60\"></font></td>";
        echo 
"<td align=center><font color=#000000 face=verdana size=-2>$anz_name</font></td>";
        echo 
"<td align=center><font color=#000000 face=verdana size=-2></font>$anz_ort</td>";
        echo 
"<td align=center><font color=#000000 face=verdana size=-2></font>$katgef</td>";
        echo 
"<td align=center><a href='../script/reply.php?anz_chiff=$anz_chiff&anz_name=$anz_name' target=details ONCLICK=window.open('','details','scrollbars=yes,width=600,height=480')><img src=../image/mail.gif width=17 height=14 border=0></a></td>";
        echo 
"<td align=center><font color=#000000 face=verdana size=-2></font><a href='$anz_page' target='_blank'>$anz_page</a></td>";
        echo 
"<td align=center><font color=#000000 face=verdana size=-2><a href='../script/detail.php?anz_name=$anz_name&anz_id=$anz_id' target=details ONCLICK=window.open('','details','scrollbars=yes,width=800,height=600')>mehr ...</a></font></td>";
   echo 
"</tr>";
         
}
echo 
"<tr><td><br><br><input type=button value=zurück onClick=history.back()></td></tr>";
echo 
"</table><br><br>";
echo 
"<td align=center><img src=\"../../images/teiler.jpg\" width=\"596\" height=\"25\"></td>";


echo 
"</center>";
echo 
"</body>";
echo 
"</html>";

// Datenbank schliessen

mysql_close$link );

?>
es erscheint folgende Fehlermeldung:

Parse error: parse error in /mnt/ls1/12/696/00000010/htdocs/easy_classifieds/script/search.php on line 100


Zeile 100 ist das

{

vor
$katgef=true;
Mit Zitat antworten
  #12 (permalink)  
Alt 24-02-2003, 21:56
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

hast eine schließende runde klammer vergessen (zeile 98)

if ( in_array( ) )

du hast: if (in_array()
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #13 (permalink)  
Alt 24-02-2003, 22:06
Martin5000
 Junior Member
Links : Onlinestatus : Martin5000 ist offline
Registriert seit: Jun 2002
Ort: Achern
Beiträge: 168
Martin5000 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Danke war wohl mal wieder zu schnell, und hab noch einen Fehler gefunden

in der Zeile

echo "<td align=center><font color=#000000 face=verdana size=-2></font>$katgef</td>";

muss es heissen

echo "<td align=center><font color=#000000 face=verdana size=-2></font>$anz_kategorie</td>";


Wenn ich nun z.B. nach PLZ suche erscheint das Formular mit den richtigen Einträgen

suche ich aber z.B. exklusiv im Feld kategorie, dann kommt

You have an error in your SQL syntax near 'ORDER BY anz_name ASC' at line 1

Woran kann das liegen?
Mit Zitat antworten
  #14 (permalink)  
Alt 24-02-2003, 22:11
mrhappiness
 PHP Guru
Links : Onlinestatus : mrhappiness ist offline
Registriert seit: Oct 2002
Beiträge: 14.890
mrhappiness ist zur Zeit noch ein unbeschriebenes Blatt
mrhappiness eine Nachricht über AIM schicken mrhappiness eine Nachricht über Yahoo! schicken
Standard

kommtm ir irgendwie bekannt vor *g*

beim ersten mal lags glaub ich dadran, dass ich dir gesagt hab: "verwende $_POST"
das ging nicht, da es als PHP3 interpretiert wurde

PHP4 wird wahrscheinlich nix mit $HTTP_POST_VARS anfangen können
__________________
Ich denke, also bin ich. - Einige sind trotzdem...
Mit Zitat antworten
  #15 (permalink)  
Alt 24-02-2003, 22:13
Wurzel
 Master
Links : Onlinestatus : Wurzel ist offline
Registriert seit: Jul 2002
Ort: double-u-upper-valley
Beiträge: 7.477
Wurzel ist zur Zeit noch ein unbeschriebenes Blatt
Standard

versuchs mal mit:

PHP-Code:
$abfrage="SELECT * FROM anzeigen WHERE '$where' ORDER BY anz_name ASC"
vorausgesetzt in where steht drin was drin stehen soll

gruss wurzel
__________________
Kissolino.com
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

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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni


 

Aktuelle PHP Scripte

Newsmanager

Der Newsmanager ist ein Newssystem und Newsletter in einem. Mit WYSIWYG Editor und E-Mail import aus einer bestehenden MySql Datenbank sowie dynamische Kategorien / Themen Filter.

11.09.2019 Stephan_1972 | Kategorie: PHP/ News
Modelmanager

Der Modelmanager ist ein Webtool für Fotografen, kann als komplette Homepage oder als Webtool installiert werden.

11.09.2019 Stephan_1972 | Kategorie: PHP/ Webservice
ContentLion - Open Source CMS ansehen ContentLion - Open Source CMS

ContentLion ist ein in PHP geschriebenes CMS, bei dem man Seiten, Einstellungen usw. in Ordnern lagern kann

22.08.2019 stevieswebsite2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:50 Uhr.