Seite 1 von 3

Such Script

Verfasst: 29.08.2004 01:16
von Matt
Hi leute ich brauche n code oder script was auf meine datenbank zugreift
wo die user nach sachen suchen können.

Handelt sich um bücher.

Db sieht so aus;

Name, Art, Preis, Datum, ISBN

möchte halt das sie wenn sie einen namen eingeben

Alle bücher mit Preis erscheinungs datum und ISBN nummer aufgelistet bekommen

Wenn sie nach Preis suchen das gleiche alle bücher die den preis haben mit datum und ISBN oder bzw bis zu dem Preis

Und bei datum und typ das gleiche.

Kennt da jemand eines oder kann mir eines schreiben?
habe es scho versucht kreige das net hin :(

MFG

Verfasst: 29.08.2004 01:37
von D@ve

Code: Alles auswählen

if (isset ($name))
{
  sql = "SELECT art, preis, datum, isbn from tabelle WHERE name = '$name'";
}

elseif (isset ($art))
{
  sql = "SELECT name, preis, datum, isbn from tabelle WHERE art = '$art'";
}

elseif (isset ($preis))
{
  sql = "SELECT name, isbn, datum, isbn from tabelle WHERE preis = '$preis'";
}

usw.
.
.
.
$result = mysql_query($sql);

 
Gruß, Dave

Verfasst: 29.08.2004 11:00
von Matt
muss ch dem net irgendwie sagen auf welche db der zugreifen soll?
so?:

Code: Alles auswählen

<?PHP
$db = mysql_connect();
   $sqlab .= " from buch where";

if (isset ($name)) 
{ 
  sql = "SELECT art, preis, datum, isbn from tabelle WHERE name = '$name'"; 
} 
elseif (isset ($art)) 
{ 
  sql = "SELECT name, preis, datum, isbn from tabelle WHERE art = '$art'"; 
} 
elseif (isset ($preis)) 
{ 
  sql = "SELECT name, isbn, datum, isbn from tabelle WHERE preis = '$preis'"; 
}
?>

und wo baue ich das im formula ein?

auch so?

Code: Alles auswählen

<html>
<head>
<title>Buecher Neuerscheinungen</title>
<link rel=stylesheet type="text/css" href="feedback.css">
</HEAD>
<body>
<center>
Im moment befinden sich Infos bis April 03 in der Datenbank
</br></br>
<table width="500" border="0" cellspacing="2" cellpadding="3">
 <tr>
  <th colspan="2" align="left" class="head" valign="top">
   Buecher Neuerscheinungen &raquo;
  </th>
 </tr>
<FORM ACTION="buch.php" METHOD="POST">
 <tr>
  <TD><B>Buch:</B></TD>
<TD><INPUT TYPE="text" NAME="Buch" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Art Band, Artbook etc.</B></TD>
<TD><INPUT TYPE="text" NAME="Art" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Preis ca.:</B></TD>
<TD><INPUT TYPE="text" NAME="Preis" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Datum:</B></TD>
<TD> <INPUT TYPE="text" NAME="Datum" class="tab" SIZE="30">
  </td>
 </tr>
 <tr>
 <TD><INPUT TYPE="submit" class="head" VALUE="Go !"></TD><TD></TD></TR>
  </td>
 </tr>
 </form>
</table>
</body>
</html>
bzw kann ich den code auch dierekt im formula einbinden ohne eine weitere php seite zu machen?

wenn ich den code über den header werfe kann ich den dann so ein setzen?

Code: Alles auswählen

<?PHP
$db = mysql_connect();
   $sqlab .= " from buch where";

if (isset ($name)) 
{ 
  sql = "SELECT art, preis, datum, isbn from tabelle WHERE name = '$name'"; 
} 
elseif (isset ($art)) 
{ 
  sql = "SELECT name, preis, datum, isbn from tabelle WHERE art = '$art'"; 
} 
elseif (isset ($preis)) 
{ 
  sql = "SELECT name, isbn, datum, isbn from tabelle WHERE preis = '$preis'"; 
}
elseif (isset ($preis)) 
{ 
  sql = "SELECT name, isbn, preis, isbn from tabelle WHERE preis = '$datum'"; 
}
?>

<html>
<head>
<title>Buecher Neuerscheinungen</title>
<link rel=stylesheet type="text/css" href="feedback.css">
</HEAD>
<body>
<center>
Im moment befinden sich Infos bis April 03 in der Datenbank
</br></br>
<table width="500" border="0" cellspacing="2" cellpadding="3">
 <tr>
  <th colspan="2" align="left" class="head" valign="top">
   Buecher Neuerscheinungen &raquo;
  </th>
 </tr>
<FORM ACTION="<?php $PHP_SELF ?>" METHOD="POST">
 <tr>
  <TD><B>Buch:</B></TD>
<TD><INPUT TYPE="text" NAME="Buch" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Art Band, Artbook etc.</B></TD>
<TD><INPUT TYPE="text" NAME="Art" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Preis ca.:</B></TD>
<TD><INPUT TYPE="text" NAME="Preis" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Datum:</B></TD>
<TD> <INPUT TYPE="text" NAME="Datum" class="tab" SIZE="30">
  </td>
 </tr>
 <tr>
 <TD><INPUT TYPE="submit" class="head" VALUE="Go !"></TD><TD></TD></TR>
  </td>
 </tr>
 </form>
</table>
</body>
</html>

Verfasst: 29.08.2004 13:02
von D@ve
stimmt im Prinzip alles, würde Dir allerdings den Tipp geben bei den Variablen/Feldbezeichnungen, auf Groß- und kleinschriebung zu verzichten und statt dessen alles kleinzuschreiben.

Beschreibung wie Du eine Verbindung zur DB aufbaust findest Du unter:
http://www.selfphp.info/funktionsrefere ... onnect.php


Gruß, Dave

Verfasst: 30.08.2004 02:10
von Matt
kann mir auch jemand sagen wie ich das dann in einer tabelle auslesen lassen kann??

wenn es geht alles in eine datei packen formula wie auslese.

Code: Alles auswählen

<?PHP 
 /* Datenbankserver - In der Regel die IP */
 $db_server = "localhost";

/* Datenbankname */
  $db_name = "manga";

/* Datenbankuser */
  $db_user = "root";

/* Datenbankpasswort */
  $db_passwort = "xxxx";
         
/* Erstellt Connect zu Datenbank her */
$db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen");
$db_check = @MYSQL_SELECT_DB($db_name);

if($db)

  echo "Verbindung zur Datenbank wurde hergestellt";

if (isset ($manga)) 
{ 
  $sql = "SELECT art, preis, datum, isbn from tabelle WHERE manga = '$manga'"; 
} 
elseif (isset ($art)) 
{ 
  $sql = "SELECT manga, preis, datum, isbn from tabelle WHERE art = '$art'"; 
} 
elseif (isset ($preis)) 
{ 
  $sql = "SELECT manga, isbn, datum, isbn from tabelle WHERE preis = '$preis'"; 
} 
elseif (isset ($datum)) 
{ 
  $sql = "SELECT manga, isbn, preis, isbn from tabelle WHERE preis = '$datum'"; 
} 

?> 

<html> 
<head> 
<title>Buecher Neuerscheinungen</title> 
<link rel=stylesheet type="text/css" href="feedback.css"> 
</HEAD> 
<body> 
<center> 
Im moment befinden sich Infos bis April 03 in der Datenbank 
</br></br> 
<table width="500" border="0" cellspacing="2" cellpadding="3"> 
 <tr> 
  <th colspan="2" align="left" class="head" valign="top"> 
   Buecher Neuerscheinungen &raquo; 
  </th> 
 </tr> 
<FORM ACTION="<?php $PHP_SELF ?>" METHOD="POST"> 
 <tr> 
  <TD><B>Buch:</B></TD> 
<TD><INPUT TYPE="text" NAME="manga" class="tab" SIZE="30"> 
  </td> 
 </tr> 
 <TR><TD><B>Art Band, Artbook etc.</B></TD> 
<TD><INPUT TYPE="text" NAME="art" class="tab" SIZE="30"> 
  </td> 
 </tr> 
 <TR><TD><B>Preis ca.:</B></TD> 
<TD><INPUT TYPE="text" NAME="preis" class="tab" SIZE="30"> 
  </td> 
 </tr> 
 <TR><TD><B>Datum:</B></TD> 
<TD> <INPUT TYPE="text" NAME="datum" class="tab" SIZE="30"> 
  </td> 
 </tr> 
 <tr> 
 <TD><INPUT TYPE="submit" class="head" VALUE="Go !"></TD><TD></TD></TR> 
  </td> 
 </tr> 
 </form> 
</table> 
</body> 
</html>

Verfasst: 30.08.2004 20:49
von Matt
Kann mir da kener weiter helfen?

Verfasst: 30.08.2004 21:43
von xabbuh
Die Kommentare sollten viel erklären.

Code: Alles auswählen

<?PHP
    $db_server = "localhost";
    $db_name = "manga";
    $db_user = "root";
    $db_passwort = "xxxx";

    $db = @MYSQL_CONNECT($db_server,$db_user,$db_passwort) or die ("Konnte keine Verbindung zur Datenbank herstellen");
    $db_check = @MYSQL_SELECT_DB($db_name);

    //  Formular abgeschickt?
    if($_POST['action'] == "search") {
    
        //  PHP- und HTML-Tags entfernen
        foreach($_POST as $var => $val) {
            $$var = trim(strip_tags($val));
        }
        
        //  Nach Manga suchen
        if(!empty($manga)) {
            $where = "manga = '" . $manga . "'";
        //  Nach Art suchen
        } elseif(!empty($art)) {
            $where = "art = '" . $art . "'";
        //  Nach Preis suchen
        } elseif(!empty($preis)) {
            $where = "preis = '" . $preis . "'";
        // Nach Datum suchen
        } elseif(!empty($datum)) {
            $where = "datum = '" . $datum . "'";
        }
        
        $sql = "SELECT
                    manga,
                    preis,
                    datum,
                    isbn
                FROM
                    tabelle
                WHERE " . $where;
        $result = mysql_query($sql);
    }

?>

<html>
<head>
<title>Buecher Neuerscheinungen</title>
<link rel=stylesheet type="text/css" href="feedback.css">
</HEAD>
<body>
<center>
Im moment befinden sich Infos bis April 03 in der Datenbank
</br></br>
<table width="500" border="0" cellspacing="2" cellpadding="3">
 <tr>
  <th colspan="2" align="left" class="head" valign="top">
   Buecher Neuerscheinungen &raquo;
  </th>
 </tr>
 
 <?php
    //  Suche gestartet? -> Ergebnisse anzeigen
    if($_POST['action'] == "search") {

        //  Keine Ergebnisse gefunden
        if(mysql_num_rows($result) == 0) {
            echo '<tr>';
            echo '<td colspan="2">Keine Ergebnisse gefunden</td>';
            echo '</tr>';

        //  Ergebnisse gefunden -> diese auflisten (muss von dir noch weiter ausgebaut werden, bis jetzt wird nur ISBN angezeigt)
        } else {
            while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
                echo '<tr>';
                echo '<td>ISBN:</td>';
                echo '<td>' . $row['isbn'] . '</td>';
                echo '</tr>';
            }
        }
 ?>
 <tr>
    <td>
 <?php
    //  Sonst Formular anzeigen
    } else {
 ?>
 
<FORM ACTION="<?php echo $_SERVER['PHP_SELF']; ?>" METHOD="POST">
<input type="hidden" name="action" value="search">
 <tr>
  <TD><B>Buch:</B></TD>
<TD><INPUT TYPE="text" NAME="manga" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Art Band, Artbook etc.</B></TD>
<TD><INPUT TYPE="text" NAME="art" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Preis ca.:</B></TD>
<TD><INPUT TYPE="text" NAME="preis" class="tab" SIZE="30">
  </td>
 </tr>
 <TR><TD><B>Datum:</B></TD>
<TD> <INPUT TYPE="text" NAME="datum" class="tab" SIZE="30">
  </td>
 </tr>
 <tr>
 <TD><INPUT TYPE="submit" class="head" VALUE="Go !"></TD><TD></TD></TR>
  </td>
 </tr>
 </form>
 
 <?php
    }
 ?>
 
</table>
</body>
</html>

Verfasst: 30.08.2004 22:11
von Matt
bekomme das immer

Code: Alles auswählen

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in D:\Apache\htdocs\WOA\test6.php on line 66
 Keine Ergebnisse gefunden 

Verfasst: 31.08.2004 11:28
von xabbuh
Dann setzt du in die Zeile hinter mysql_query noch das hier:

Code: Alles auswählen

echo mysql_error();
PHP gibt dir dann aus, was in der Abfrage falsch war.

Verfasst: 31.08.2004 16:31
von r4bbIt