php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2005

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 24.02.2005, 18:43  
Gast
 
Beiträge: n/a
Standard Suchscript

hallo zusammen.
Ich hab in PHP so einen Suchscript gemacht. Der Script soll 4 Datenbanken (dw_tutorials; dw_scripts; dw_grafik und dw_tests) auslesen und dann alles auflisten, was mit dem Suchwort übereinstimmt.
Aber wenn man die Suche benutzt, dann werden alle Inhalte der 3 Datenbanken aufgelistet. $such ist das Suchwort. Könnt ihr den Fehler finden? Wenn ihr nicht durchblickt, dann teilt es mir bitte mit. Index 0 ist das normale auflisten, Index 1 ist wenn man den verkürzten Text vollständig lesen möchte.
Die Includes enthalten auch die Zugangsdaten der Datenbank.

Code:
<?php 
include('scripts/oben.php'); 
IF ($index == 0){ 
$login =0; 

$abfrage = "SELECT * FROM dw_tutorials WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl1 = mysql_numrows($result); 

$abfrage = "SELECT * FROM dw_scripts WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl2 = mysql_numrows($result); 

$abfrage = "SELECT * FROM dw_tests WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl3 = mysql_numrows($result); 

$abfrage = "SELECT * FROM dw_grafik WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl4 = mysql_numrows($result); 

echo " 
<font class=font01> 

$anzahl Suchergebnisse:

 
<table border=0 cellspacing=0 cellpadding=0 width=80% align=center>"; 

$abfrage = "SELECT * FROM dw_tutorials WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl = mysql_numrows($result); 

$a; 
while($anzahl > $a){ 

$id= mysql_result($result,$a, ID); 
$uber= mysql_result($result,$a, Uber); 
$link = mysql_result($result,$a, Link); 
$besch= mysql_result($result,$a, Beschreibung); 
$von= mysql_result($result,$a, Von); 
echo " 
<tr> 
<td width=100%> 
$uber
 
<font class=font01>von $von

$besch[mehr...]

<hr></td> 
</tr>"; 
$a++; 
} 

$abfrage = "SELECT * FROM dw_scripts WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl = mysql_numrows($result); 

$a; 
while($anzahl > $a){ 

$id= mysql_result($result,$a, ID); 
$uber= mysql_result($result,$a, Uber); 
$link = mysql_result($result,$a, Link); 
$besch= mysql_result($result,$a, Beschreibung); 
$von= mysql_result($result,$a, Von); 

echo " 
<tr> 
<td width=100%> 
$uber
 
<font class=font01>von $von

$besch[mehr...]

<hr></td> 
</tr>"; 
$a++; 
} 

$abfrage = "SELECT * FROM dw_tests WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl = mysql_numrows($result); 

$a; 
while($anzahl > $a){ 

$id= mysql_result($result,$a, ID); 
$uber= mysql_result($result,$a, Uber); 
$link = mysql_result($result,$a, Link); 
$besch= mysql_result($result,$a, Beschreibung); 
$von= mysql_result($result,$a, Von); 

echo " 
<tr> 
<td width=100%> 
$uber
 
<font class=font01>von $von

$besch[mehr...]

<hr></td> 
</tr>"; 
$a++; 
} 

$abfrage = "SELECT * FROM dw_grafik WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 
$anzahl = mysql_numrows($result); 

$a; 
while($anzahl > $a){ 

$id= mysql_result($result,$a, ID); 
$uber= mysql_result($result,$a, Uber); 
$link = mysql_result($result,$a, Link); 
$besch= mysql_result($result,$a, Beschreibung); 
$von= mysql_result($result,$a, Von); 

echo " 
<tr> 
<td width=100%> 
$uber
 
<font class=font01>von $von

$besch[mehr...]

<hr></td> 
</tr>"; 
$a++; 
} 

echo " 
</table> 
 
<font class=font01>developerworld.de Suche 
"; 
} //                                     Ende Index 0 
IF ($index == 1){ 
$login =0; 

$abfrage = "Select * from $tabelle where ID = '$id'"; 
$result = mysql_db_query($dbname,$abfrage,$verbindung); 

echo " 
<table border=0 cellspacing=0 cellpadding=0 width=80% align=center>"; 

$id= mysql_result($result,$a, ID); 
$uber= mysql_result($result,$a, Uber); 
$link = mysql_result($result,$a, Link); 
$besch= mysql_result($result,$a, Beschreibung); 
$von= mysql_result($result,$a, Von); 

echo " 
<tr> 
<td width=100%> 
<font size=2>$uber

 
<font class=font01><font size=2>$besch<font size=1>

eingetragen von $von</td> 
</tr>"; 
echo "</table>"; 
} //                                    Ende Index 1 
include('scripts/unten.php'); 
?>
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 24.02.2005, 19:07  
Gast
 
Beiträge: n/a
Standard

Dieses Script deutet eindeutig auf einen Anfänger hin, das ist, sorry, grausam ohne Ende.

Du solltest erst mal das komplette Script überarbeiten. Die endlos vielen "Select *"-Abfragen sind absolut nicht nötig und zudem schlimm:

16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html

Und mysql_result in einer Schleife zu benutzen, ist ebenfalls ein Performance-Killer. Da werden jeweils 5 Zugriffe für einen Datensatz gemacht, statt einen Datensatz mit mysql_fetch_array zu holen.

Und dann kommt noch dazu, dass mysql_db_query veraltet ist, statt dessen sollte man mysql_select_db und mysql_query benutzen.

Wenn du das alles korrigiert hast, dann wird sich vermutlich dein Problem von alleine lösen.

Gruß
phpfan
 
Alt 24.02.2005, 20:53  
Waq
Erfahrener Benutzer
 
Registriert seit: 15.08.2004
Beiträge: 2.473
Waq
Standard

Zitat:
Zitat von phpfan
Und dann kommt noch dazu, dass mysql_db_query veraltet ist, statt dessen sollte man mysql_select_db und mysql_query benutzen.
Sowohl von mysql_db_query() als auch mysql_result() wurde schon abgeraten, als ich mit PHP angefangen habe, und das ist über 5 Jahre her.
Das gepostete Script würde ich mir so auch nicht ansehen wollen. Das lässt sich mit Sicherheit auf 10 Zeilen reduzieren, die den gleichen Fehler reproduzieren. Zumindest wenn mal mysql_fetch_array/row/assoc() verwendet werden.


Der Beitrag wurde verschoben, wegen...
... Postings im falschen Forum.

Bemerkung:
Die gestellte Frage entspricht nicht dem Wissensstand eines/einer Fortgeschrittenen.

moved to PHP - Anfänger
__________________
mod = master of disaster
Waq ist offline  
Alt 24.02.2005, 22:32  
Gast
 
Beiträge: n/a
Standard

ich mach mal den code farbig:

PHP-Code:
<?php
include('scripts/oben.php');
IF (
$index == 0){
$login =0;

$abfrage "SELECT * FROM dw_tutorials WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl1 mysql_numrows($result);

$abfrage "SELECT * FROM dw_scripts WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl2 mysql_numrows($result);

$abfrage "SELECT * FROM dw_tests WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl3 mysql_numrows($result);

$abfrage "SELECT * FROM dw_grafik WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl4 mysql_numrows($result);

echo 
"
<font class=font01>

$anzahl Suchergebnisse:


<table border=0 cellspacing=0 cellpadding=0 width=80% align=center>"
;

$abfrage "SELECT * FROM dw_tutorials WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl mysql_numrows($result);

$a;
while(
$anzahl $a){

$idmysql_result($result,$aID);
$ubermysql_result($result,$aUber);
$link mysql_result($result,$aLink);
$beschmysql_result($result,$aBeschreibung);
$vonmysql_result($result,$aVon);
echo 
"
<tr>
<td width=100%>
[url="
suche.php?index=1&id=$id"]$uber[/url]

<font class=font01>von $von

$besch [url="
suche.php?index=1&tabelle=dw_tutorials&id=$id"][mehr...][/url]

<hr></td>
</tr>"
;
$a++;
}

$abfrage "SELECT * FROM dw_scripts WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl mysql_numrows($result);

$a;
while(
$anzahl $a){

$idmysql_result($result,$aID);
$ubermysql_result($result,$aUber);
$link mysql_result($result,$aLink);
$beschmysql_result($result,$aBeschreibung);
$vonmysql_result($result,$aVon);

echo 
"
<tr>
<td width=100%>
[url="
suche.php?index=1&id=$id"]$uber[/url]

<font class=font01>von $von

$besch [url="
suche.php?index=1&tabelle=dw_scripts&id=$id"][mehr...][/url]

<hr></td>
</tr>"
;
$a++;
}

$abfrage "SELECT * FROM dw_tests WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl mysql_numrows($result);

$a;
while(
$anzahl $a){

$idmysql_result($result,$aID);
$ubermysql_result($result,$aUber);
$link mysql_result($result,$aLink);
$beschmysql_result($result,$aBeschreibung);
$vonmysql_result($result,$aVon);

echo 
"
<tr>
<td width=100%>
[url="
suche.php?index=1&id=$id"]$uber[/url]

<font class=font01>von $von

$besch [url="
suche.php?index=1&tabelle=dw_tests&id=$id"][mehr...][/url]

<hr></td>
</tr>"
;
$a++;
}

$abfrage "SELECT * FROM dw_grafik WHERE Uber LIKE '%$such%' or Beschreibung LIKE '%$such%' or Autor LIKE '%$such%'";
$result mysql_db_query($dbname,$abfrage,$verbindung);
$anzahl mysql_numrows($result);

$a;
while(
$anzahl $a){

$idmysql_result($result,$aID);
$ubermysql_result($result,$aUber);
$link mysql_result($result,$aLink);
$beschmysql_result($result,$aBeschreibung);
$vonmysql_result($result,$aVon);

echo 
"
<tr>
<td width=100%>
[url="
suche.php?index=1&id=$id"]$uber[/url]

<font class=font01>von $von

$besch [url="
suche.php?index=1&tabelle=dw_grafik&id=$id"][mehr...][/url]

<hr></td>
</tr>"
;
$a++;
}

echo 
"
</table>
            
<font class=font01>developerworld.de Suche
"
;
//                                     Ende Index 0
IF ($index == 1){
$login =0;

$abfrage "Select * from $tabelle where ID = '$id'";
$result mysql_db_query($dbname,$abfrage,$verbindung);

echo 
"
<table border=0 cellspacing=0 cellpadding=0 width=80% align=center>"
;

$idmysql_result($result,$aID);
$ubermysql_result($result,$aUber);
$link mysql_result($result,$aLink);
$beschmysql_result($result,$aBeschreibung);
$vonmysql_result($result,$aVon);

echo 
"
<tr>
<td width=100%>
[url="
$link"]<font size=2>[b]$uber[/b][/url]


<font class=font01><font size=2>$besch<font size=1>

eingetragen von $von</td>
</tr>"
;
echo 
"</table>";
//                                    Ende Index 1
include('scripts/unten.php');
?>
 
Alt 25.02.2005, 03:19  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

*schauder* das is echt gruselig. kommt mir sehr nach php3 vor. sonen code musste ich neulich portieren. ne gesamte internetpraesenz
__________________
Was ist validität?
fantast ist offline  
Alt 25.02.2005, 05:47  
Gast
 
Beiträge: n/a
Standard

Zitat:
Zitat von fantast
sonen code musste ich neulich portieren.
Portieren? Schade um die Zeit: löschen und neu schreiben.
 
Alt 25.02.2005, 13:50  
Erfahrener Benutzer
 
Registriert seit: 14.01.2004
Beiträge: 2.543
fantast
fantast eine Nachricht über ICQ schicken
Standard

lief dann auch darauf hinaus. da sind teilweise aus 3kb 1kb geworden
__________________
Was ist validität?
fantast ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine 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
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fragen zum Suchscript Hilfloser PHP Tipps 2006 3 04.06.2006 19:34
Problem mit Suchscript PHP Tipps 2007 5 28.12.2005 17:12
Suchscript Beitragsarchiv 3 14.07.2005 09:03
Suchscript mit und/oder Auswahlen PHP Tipps 2005 3 06.01.2005 21:50
[Erledigt] hilfe zum suchscript PHP-Fortgeschrittene 7 17.12.2004 22:34
[Erledigt] kleines suchscript PHP Tipps 2004-2 2 25.11.2004 02:00
Probleme mit nem Suchscript PHP Tipps 2004-2 5 23.11.2004 12:03
[Erledigt] problem mit suchscript PHP Tipps 2004 3 04.11.2004 15:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php suchscript datenbank, mysql_db_query() veraltet, suchscript was möglichkeiten auflistet

Alle Zeitangaben in WEZ +2. Es ist jetzt 09:13 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.