Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
Formular Abfrage PHP/Mysql [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
ebiz-webhosting
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Formular Abfrage PHP/Mysql


 
petro_0
27-01-2006, 12:04 
 
Halllo Zusammen! Ich habe folgendes Problem.

Ich möchte per Formular bestimmte Daten auf einer Mysql Tabellen abfragen, aber egal was ich versuche ich bekomme es nicht einfach nicht hin. Ich bekomme keine Daten.
MEin Grundsyntax ist:

(SELECT * FROM tabelle WHERE Link = 'abfrage');

und im Formular schreibe ich das,

<form type=text name=abfrage value=abfrage>
</form>

bekomme ich keine Daten abgefragt!
Der Wert- name= abfrage nuss sich doch auf den wert abfrage im Script beziehen oder?

Wer kann mir helfen?

 
piep83
27-01-2006, 12:44 
 
moin,

ist das nur ein schreibfehler von dir?

<form type=text name=abfrage value=abfrage>
</form>

sollte doch eigentlich so ausehen

<form name="deineabfrage" action="index.php" method="post">
<input type="text" name="abfrage" value="wert">
<input type="submit" value="abfrage senden">
</form>


Der Wert- name= abfrage nuss sich doch auf den wert abfrage im Script beziehen oder?

ist richtig, versuch doch mal nach absenden des formulars, bevor du
in die Abfrage gehst den übermittelten Wert auszugeben.

Oder versuch mal

SELECT * FROM tabelle WHERE Link LIKE '%$abfrage%'

 
WiZARD
27-01-2006, 13:27 
 
Also zwei Fragen dazu:

ist wird das Feld in der Tabelle auch wirklich Link geschrieben oder eventuell link ? Groß / Kleinschreibung beachten

desweiteren wäre interessant, ob auf Deinem Server die Globals an sind - ansonsten die Formulardaten auch wirklich mit $_POST['abfrage']; auswerten

 
petro_0
27-01-2006, 14:55 
 
hallo,

danke erstmal für die schnelle hilfe.

Zur ersten Antw.

ja ist richtig ich habe etwas weg gelassen (hatte leider nicht mehr syntax im kopf da ich im büro bin und mein rechner zu hause steht).

<form type=text name=abfrage value=abfrage>
</form>

Hier dachte ich wichtig wäre die erste zeile.

Jetz weis ich dem ist nciht so und falsch wars von meiner Seite aus auch noch ;o(

Ich werde das heute Abend mal versuchen und mal sehen..

 
petro_0
27-01-2006, 14:57 
 
Zur zweiten Antw.

Auch dir erstmal Danke!

ist wird das Feld in der Tabelle auch wirklich Link geschrieben oder eventuell link ? Groß / Kleinschreibung beachten

->ja ist es die Gross und Kleinschreibung passt.

->Es ist aber nicht das Feld sondern die Zeilenbeschreibung.

desweiteren wäre interessant, ob auf Deinem Server die Globals an sind - ansonsten die Formulardaten auch wirklich mit $_POST['abfrage']; auswerten

->Das schaue ich mal nach, aber ich glaube über xampp alles schon so eingestellt ist das es sozusagen passt.

Gruss petro

 
petro_0
30-01-2006, 07:33 
 
Guten Morgen!
Wollte nur mitteilen,die Tipps haben nicht geholfen.
Habe das ganze Wochenende gebastelt ich bekomme die Abfrage nicht hin.
Irgendwas läuft falsch.
Ich habe jetzt noch ein paar Ideen und verusche es erstmal weiter.


petro

 
piep83
30-01-2006, 20:31 
 
moin,

gibt mysql_error was zurück?
kommt der Wert nach absenden des Formulars an?
Wenn du die DB ohne das Formular abfragen willst,
gibt mysql dann Daten aus?

Habe das ganze Wochenende gebastelt ich bekomme die Abfrage nicht hin.
was hast du den versucht?

 
petro_0
31-01-2006, 07:26 
 
also ich habe alles mögliche was meine php bücher hergegeben haben versucht.
Ich werde jetzt aber hier natürlich nicht alles rein schreiben,will dir ja lesen ersparen.

Aber zu deinen Fragen,
also mysql bringt mir eigentlich keinen error.Ich bekomme meistens einen leeren bildschirm, nachdem ich die Abfrage abgeschickt habe.

ich vermute jetzt schon das die Abfrage in de rmysql tabelle einfach nicht passt.

-> also wenn ich die formular eingabe per $_GET['abfrage'] auswerte bekomme ich scon die von mir getätigte Eingabe.Das scheint also zu passen nur der Rest nicht!
Lange Rede kurzer Sinn. Hier mein kleines Script!

<?php
$Verbindung = mysql_connect("localhost", "root", "");
$Suchbegriff = "abfrage";
$SQLString = "SELECT * FROM metricapics WHERE beschreibung LIKE '"%abfrage%"'";
mysql_select_db("php_buch", $Verbindung);
$Ergebnis = mysql_query($SQLString, $Verbindung);
if ($Ergebnis) {
$Zeilen = mysql_num_rows($Ergebnis);
for ($n = 0; $n < $Zeilen; $n++)
{
echo mysql_result($Ergebnis, $n, '"$SQLString"');
}
}
else {
echo "Fehler bei der Abfrage";
}
?>

hmtl Seite:

<html>
<head>
<title>ubungsuche</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<form action="ubungsquery_1.php" method="post">
<input name="abfrage" type="text" value"" size="15">
<input name="image" type=image src="button.gif">
<input type="submit"><input type="reset" value="zurücksetzen">
</form>
<hr size="3" width="30%" color="#2242DB" align="left">
<hr size="2" width="30%" color="red" align="left">
<hr size="1" width="30%" color="#2242DB" align="left">
</body>
</html>

viell. hast du lust dir das mal anzusehen.

Danke

 
piep83
31-01-2006, 07:50 
 
moin moin,

das erste was mir auffällt, jetzt auch bei den vorghergehenden
Posts - das $ bei abfrage fehlt

$SQLString = "SELECT * FROM metricapics WHERE beschreibung LIKE '%$abfrage%'";

 
petro_0
31-01-2006, 08:03 
 
ach das muss auch bei dieser variante sag ich mal mit hin?? oh mann!
na gut ich versuche es heute abend, leider bin ich gerade im büro.
Aber sonst habe ich keinen Fehler? ich bin überrascht! ;o)

danke dir für die hilfe.

kleiner interessensfrage! Der Link zu dieser Firmenseite?? Deine Firma?

 
petro_0
31-01-2006, 09:51 
 
hab mir jetzt mal schnell alles auf arbeit eingerichtet.

Hier mein modifiziertes Script und die Ferhlmeldung die ich jetzt bekomme;o(

<?php
$Verbindung = mysql_connect("localhost", "root", "");
$Suchbegriff = "abfrage";
$SQLString = "SELECT * FROM metricapics WHERE beschreibung LIKE '%$abfrage%'";
mysql_select_db("php_buch", $Verbindung);
$Ergebnis = mysql_query($SQLString, $Verbindung);
if ($Ergebnis) {
$Zeilen = mysql_num_rows($Ergebnis);
for ($n = 0; $n < $Zeilen; $n++)
{
echo mysql_result($Ergebnis, $n, "$SQLString");
}
}
else {
echo "Fehler bei der Abfrage";
}
?>

Warning: mysql_result() [function.mysql-result]: SELECT * FROM metricapics WHERE beschreibung LIKE '%%' not found in MySQL result index 3 in C:\Programme\xampp\htdocs\testing\suche_1.php on line 11

Warning: mysql_result() [function.mysql-result]: SELECT * FROM metricapics WHERE beschreibung LIKE '%%' not found in MySQL result index 3 in C:\Programme\xampp\htdocs\testing\suche_1.php on line 11

Warning: mysql_result() [function.mysql-result]: SELECT * FROM metricapics WHERE beschreibung LIKE '%%' not found in MySQL result index 3 in C:\Programme\xampp\htdocs\testing\suche_1.php on line 11

Warning: mysql_result() [function.mysql-result]: SELECT * FROM metricapics WHERE beschreibung LIKE '%%' not found in MySQL result index 3 in C:\Programme\xampp\htdocs\testing\suche_1.php on line 11

 
wahsaga
31-01-2006, 10:00 
 
http://www.php-resource.de/forum/showthread.php?s=&threadid=50455

 
petro_0
31-01-2006, 10:03 
 
danke aber der link verweist mich auf die hauptseite;o(

 
wahsaga
31-01-2006, 10:40 
 
Original geschrieben von petro_0
danke aber der link verweist mich auf die hauptseite;o(
Nein, das tut er nicht - gerade noch mal kontrolliert.


Aber sorry, ich seh gerade, das Problem liegt ja ganz woanders - du rufst mysql_result mit unsinnigen Parametern auf.

 
petro_0
31-01-2006, 11:09 
 
jetzt habe ich alle Strings in result versucht immer der gleiche Fehler!
Sollte ich mal etwas anderes als result versuchen?

Zum Beispiel-> Aktuellelr Versuch... geht aber natürlich nicht..

echo mysql_result('$%abfrage%', $n);

 
wahsaga
31-01-2006, 11:13 
 
Original geschrieben von petro_0
jetzt habe ich alle Strings in result versucht immer der gleiche Fehler!
Welche "alle"?

Hast du verstanden, was du als dritten Parameter anzugeben hast?

 
petro_0
31-01-2006, 11:17 
 
alle heist ich habe alle parameter versucht.
aktuell habe ich den
echo mysql_result($Ergebnis, $n, $abfrage);
dann bekomme ic hals result: 1191016 ?????

Also welchen benötige ich den?

danke ;o)

 
wahsaga
31-01-2006, 11:29 
 
Original geschrieben von petro_0
alle heist ich habe alle parameter versucht.
Das sagt immer noch nichts aus.
aktuell habe ich den
echo mysql_result($Ergebnis, $n, $abfrage);
dann bekomme ic hals result: 1191016 ?????
Und was steht in $abfrage?
Also welchen benötige ich den?
Einen, der laut Funktionsbeschreibung im Manual dort sinnvoll ist.

 
petro_0
31-01-2006, 11:49 
 
na dann kann php die Daten die vom Formular übergeben werden nicht interpretieren und aus mysql auslesen.

ich bastel dann einfach mal weiter. Wird schon weden.


danke für deine hilfe!

 
petro_0
31-01-2006, 12:41 
 
will mir sonst noch einer der Anwesenden weiter helfen.
Ich wäre sehr verbunden;o)

 
jahlives
31-01-2006, 12:52 
 
<?php
$Verbindung = mysql_connect("localhost", "root", "");
$Suchbegriff = "abfrage";
$SQLString = "SELECT * FROM metricapics WHERE beschreibung LIKE '%$abfrage%'";
mysql_select_db("php_buch", $Verbindung);
$Ergebnis = mysql_query($SQLString, $Verbindung);
if ($Ergebnis) {
while($erg=mysql_fetch_array($Ergebnis)){
foreach($erg as $wert){
echo $wert;
}
}
}
?>

$erg ist bei jedem Durchlauf ein Array mit allen betroffenen Zellen dieser Zeile. Danach geht die while-Schleife eine Ergebniszeile weiter.
Du musst also bei jedem Durchlauf $erg in ein Array speichern oder mittels echo ausgeben.
Das foreach() ist nicht nötig und soll nur die Funktionsweise des Codes erläutern bzw alle Treffer in der DB werden ausgegeben.

Gruss

tobi

 
petro_0
01-02-2006, 07:03 
 
guten morgen!
danke dir für den tip!
damit kann ichendlich was anfangen.
ich habe gestern nicht mehr viel gebastelt nur mal schnell deinen syntax so wie er da steht ausprobiert und er gibt mir wenigstens schonmal alles aus.
Jetzt werde ich ihn noch modifizieren.

 
petro_0
08-02-2006, 14:34 
 
Hallo Zusammen,
bin mal weiter mit meinem Script!
Danke erstmal für die konstruktive Hilfe!

Jetzt bin ich dabei "Fehlerfälle" in mein Script einzubauen.
Es funktioniert aber leider nur fallweise!
Das soll heisen, ich möchte eine Variante wenn das FELD leer ist. In diesem Fall soll eine Errormeldung kommen, das das Feld zu befüllen ist.
Andereseits soll eine Meldung kommen, wenn die Eingabe kein Ergebnis bringt!

Soweit bin ich aktuell. Mir klar das was fehlt!!

<?php
$Erg = true;
if ($Erg = true){

$Verbindung = mysql_connect("localhost", "root", "");
$Suchbegriff = "abfrage";
$SQLString = "SELECT * FROM netzelemente WHERE NE LIKE '$abfrage'";
mysql_select_db("php_buch", $Verbindung);
$Ergebnis = mysql_query($SQLString, $Verbindung);
{
if ($Ergebnis) {
$Zeilen = mysql_num_rows($Ergebnis);
$Spalten = mysql_num_fields($Ergebnis);
echo "<body bgcolor=\"#4D4D4D\">";
echo "<center>";
echo "<h3><font color=\"#00FF00\">Gefundene NE`s</h3></font>";
for ($n= 0; $n <$Zeilen; $n++) {
echo "<br>";
for ($i = 0; $i <$Spalten; $i++) {
echo mysql_result($Ergebnis, $n ,$i), "<br>";
echo "<hr align=\"center\" width=\"150\" color=\"#00FF00\">";
}
}
}
}
}
else {
echo "<body bgcolor=\"#4D4D4D\">";
echo "<br><br>";
echo "<font color=\"#00FF00\">Es liegen keine Daten zu dem $abfrage Netzelement vor!</font>";
}
?>


WER KANN MIR HELFEN?

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 20:25 Uhr.