php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 15.04.2008, 11:59  
Neuer Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 9
Munsi1 befindet sich auf einem aufstrebenden Ast
Standard Abfrage einer Tabelle aus mysql

Hallo,

leider muß ich euch schon wieder um Hilfe bitten. Wie ich Daten richtig in meine Datenbank bekomme konnte ich dank des Forums lösen. Nun möchte ich die Datensätzte aber mit Hilfe einer Suche auch wieder angezeigt bekommen. Ich habe eine Seite mit zwei Eingabefeldern (Name und Novellname). Danach soll gesucht werden also nach Name oder Novellname. Die Daten stehe alle in einer Datenbank. Folgendes habe ich bisher geschrieben
PHP-Code:
<?php
if(isset($_POST)) {
$wert mysql_query("
                    SELECT 
                      name 
                    FROM 
                      anwender 
                    WHERE 
                      '.$name.'
                    "
)
                    ;
while(
$suche=mysql_fetch_array($wert))
{
echo 
"<tr><td>" .$suche[name]. "</td>";
echo 
"<tr><td>" .$suche[novellname]. "</td>";
echo 
"<tr><td>" .$suche[stoermanagement]. "</td>";
echo 
"<tr><td>" .$suche[unkraut]. "</td>";
echo 
"<tr><td>" .$suche[fpa]. "</td>";
echo 
"<tr><td>" .$suche[bereitschaft]. "</td>";
}
}
?> 
<br>Name, Vorname:
<br><input type="text" name="name">

<br>Novellname:
<br><input type="text" name="novellname">
<br>
<br><input type="submit" value="suchen">
Allerding bekomme ich die Meldung das die Variable name nicht bekannt ist. Wie muß ich die Variable definieren damit ich sie in die Abfrage zur Datenbank einbinden kann. Das zweite Problem ist wie kann ich es bewerkstelligen das nach Name oder Novellname gesucht wird. Kann ich das mit einer Schleife in php bewerkstelligen? Wenn jemand ein Beispielscript hätte wäre schön.

Vielen Dank.
Sebastian
Munsi1 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 15.04.2008, 12:32  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

$name ist auch nicht bekannt, wenn register_globals = off
-> $_POST['name']
btw mysql_error() fehlt und indexe bei associativen array gehören in einfache quotes ansonsten wird angenommen es handelt sich um eine KOnstante und erst wenn es keine KOnstante mit dem Namen gibt wird Text angenommen.
HPR1974 ist offline  
Alt 15.04.2008, 13:10  
Neuer Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 9
Munsi1 befindet sich auf einem aufstrebenden Ast
Standard

Ja ich weiß das es an den register_globals=off liegt. Daher ja meine Frage wie ich eine Variable in einer mysql Abfrage definieren muß damit sie abgefragt wird. Mit $_POST['name'] geht es nicht (hatte ich schon probiert aber nicht mit reingeschrieben, sorry). Mein Problem ist ich weiß nicht wie ich die Variable die in das Textfeld eingetragen wird in der sql Abfrage schreiben muß.
Sorry wenn ich mich falsch ausgedrückt habe

Grüße
Sebastian
Munsi1 ist offline  
Alt 15.04.2008, 13:13  
Erfahrener Benutzer
 
Registriert seit: 28.03.2008
Beiträge: 1.846
HPR1974 wird schon bald berühmt werden
Standard

SELECT
name
FROM
anwender
WHERE
'.$name.'


Eine where bedingung sieht so aus:
WHERE spaltenname='bedingung'
also schau noch mal wie das bei Dir aussieht und was da nicht stimmt. und statt $name dann $_POST['name'] verwenden
HPR1974 ist offline  
Alt 15.04.2008, 15:38  
Neuer Benutzer
 
Registriert seit: 12.04.2008
Beiträge: 11
dying_hero befindet sich auf einem aufstrebenden Ast
dying_hero eine Nachricht über ICQ schicken
Standard

Erstmal vorweg: Der HTML-Quellcode ist schrecklich. Sorry, aber das musste raus. Als "reiner" PHP-Programmierer ist das nicht so wichtig, aber ich würde dir trotzdem emfpehlen, valides HTML zu schreiben. Dazu gehört beispielsweise das Starten und Beenden der Tabelle mit <table> sowie nicht nur das Beginnen, sondern auch das Beenden einer Tabellenzeile mit <tr><td>Zelle</td></tr>.

Das Problem mit der Datenbankabfrage liegt daran, dass eine WHERE-Bedingung nach folgendem Schema aufgebaut sein muss: WHERE spaltenname = wert . Bei dir steht nur der Wert. Die Punkte zwischen den ' variable ' sind überflüssig, da die Variable sich innerhalb des Strings befindet und nicht mit ihm verknüpft wird. Wenn, dann sollte es so aussehen: WHERE spaltenname = '" . $_POST['name'] . "'.
Außerdem wählst du nur den "name" und verwendest in der While-Schleife dennoch andere Spalten. Ersetze also des SELECT name durch SELECT *, oder, ein wenig mehr Tipparbeit aber dafür ein schnelleres Script, mit SELECT und einer Auflistung aller benötigten Spalten.

Die Suche lässt sich ebenfalls mit eine WHERE-Bedingung bewerkstelligen:
Erstmal brauchst du dazu ein Formular, in dem der gesuchte Name und zwei Radiobuttons, mit denen man zwischen Name und Novellname wechseln kann, enthalten sind.

Das Auswertungsscript sieht dann in etwa so aus:
PHP-Code:
<?php
if($_POST['typ'] == "Novellname")
{
   
$sql 'SELECT * FROM anwender WHERE novellname = \'' $_POST['novellname'] . '\'';
   
$res mysql_query($res);
   echo 
"<table>";
   while(
$row mysql_fetch_assoc($res)
   {
      echo 
"<tr><td>" .$row[name]. "</td></tr>";
      echo 
"<tr><td>" .$row[novellname]. "</td></tr>";
      echo 
"<tr><td>" .$row[stoermanagement]. "</td></tr>";
      echo 
"<tr><td>" .$row[unkraut]. "</td></tr>";
      echo 
"<tr><td>" .$row[fpa]. "</td></tr>";
      echo 
"<tr><td>" .$row[bereitschaft]. "</td></tr>";
   }
   echo 
"</table>";
}
?>
Für die Suche nach dem normalen Namen gilt das gleiche, nur das eben die spezifischen Namen umgeändert werden müssen (also Novellname durch Name ersetzen in der IF und der WHERE-Bedingung).
dying_hero ist offline  
Alt 15.04.2008, 16:40  
Neuer Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 9
Munsi1 befindet sich auf einem aufstrebenden Ast
Standard

Ja ich weiß der html Code ist wirklich nicht toll. Werde ihn auch noch mal überarbeiten. Wenn dann will man ja sich ja gleich das ordendliche schreiben angewöhnen.
Denke für die Hilfe ich werde es mir in aller Ruhe ansehen und testen. Gebe auf alle Fälle eine Rückinfo.

Geändert von Munsi1 (15.04.2008 um 16:49 Uhr).
Munsi1 ist offline  
Alt 16.04.2008, 12:07  
Neuer Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 9
Munsi1 befindet sich auf einem aufstrebenden Ast
Standard

Hallo,

danke für dein Script war noch ein kleiner Fehler drin:
PHP-Code:
$res mysql_query($sql); 
Aber den habe ich schnell gefunden, damit lernt man auch das ganze besser zu verstehen.

Also Danke noch mal
Sebastian
Munsi1 ist offline  
Alt 16.04.2008, 15:17  
Neuer Benutzer
 
Registriert seit: 11.04.2008
Beiträge: 9
Munsi1 befindet sich auf einem aufstrebenden Ast
Standard

Ich habe jetzt noch ein Problem. Ich weiß nicht wie ich Tabellennamen in der Tabelle mitausgeben kann. Also bei Name, Name halt und so weiter. Wäre schön wenn du noch einen Tip für mich hast.

Danke
Sebastian
Munsi1 ist offline  
Alt 16.04.2008, 16:45  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Einfach oben drüber schreiben als html code
Code:
<table>
  <tr>
    <th>Tabelle: Name</th>
  </tr>
David ist offline  
Alt 17.04.2008, 13:30  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.034
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Und wenn du statt
Code:
SELECT * FROM anwender ...

SELECT
    name,
    novellname,
    stormanagement,
    unkraut,
    fpa,
    bereitschaft
FROM
    anwender
....
schreiben würdest, hättest du die Spaltenübschriften auch schon bereit
__________________
Gruss
L
lazydog 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
Frage: richtige SQL Abfrage von einer MySQL Spalte die SET werte besitzt Seb PHP Tipps 2008 2 29.05.2008 11:36
[Erledigt] MySQL Subquery Abfrage Kevz Datenbanken 6 09.05.2008 09:30
MySQL Abfrage macht Seite langsam Datenbanken 11 19.10.2006 19:38
MySQL - Abfrage: Unterschiedliche Ergebnisse aus PHP/manuell horstenpeter Datenbanken 3 16.07.2006 13:22
mysql abfrage in Schleife havok PHP Tipps 2006 6 09.05.2006 08:39
Abfrage bei mySQL 4 ApfeL Datenbanken 5 24.03.2006 18:53
MySQL Abfrage über 2 Tabellen Datenbanken 4 21.03.2006 11:44
[Erledigt] MySQL Server startet nicht mehr richtig... Datenbanken 16 03.03.2006 19:40
MySQL Abfrage aus 3 Tabellen funzt nicht! c-bass Datenbanken 6 17.01.2006 10:12
komplizierte mysql abfrage php_frage PHP Tipps 2007 5 28.12.2005 17:55
Problem mit mySQL Datenbanken 7 27.09.2005 12:06
Fehler beim erzeugen einer MySQL tabelle mit php Datenbanken 15 23.05.2005 16:25
SQL Abfrage in Tabelle wiedergeben PHP Tipps 2005 10 07.04.2005 21:24
[Erledigt] MYSQL Abfrage (mit Optimierter Datenbank) -&gt; PhP Datenbanken 2 02.03.2005 18:50
if - Abfrage in tabelle Anuschka PHP Tipps 2005 4 26.01.2005 16:26

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
stormanagement, mysql zelle in php-variable

Alle Zeitangaben in WEZ +1. Es ist jetzt 08:25 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