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-10-2007, 21:01
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard mysql insert mit php

Hallo,
leider bekomme ich es nicht hin in eine mysql tabelle zu schreiben.

PHP-Code:
if 
(
preg_match('#\s(\w\w\w\w\s\w+\s\d+\/\d\d)#',$content,$target5)) 
{      
foreach (
$target5 as $value){  
$query "insert into referenceNumbe(feedId,reference)
values ('" 
$feedid[0] . "','" $value "')" ."<br>";
echo 
$query;
mysql_query($query) . mysql_error();  
}}  
else{
echo 
"keine Übereinstimmungen";
}
  unset(
$content);  

ich kann auch definitiv auf die tabelle zugreifen. leider bekomme ich keinerlei fehlermeldung.
echo gibt folgendes aus
Code:
insert into referenceNumber (feedId,reference) values ('2',' III ZA 7/06')
wenn ich diesen insert im mysql querybrowser ausführe funktioniert es auch.
also stimmen auch die anzahl der felder mit den values überein. ich habe keinen anhaltspunkt. thx

Geändert von iberican (22-10-2007 um 21:06 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 22-10-2007, 21:11
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

error_reporting den Regel gemäß oben?
PHP-Code:
mysql_query($query) . mysql_error(); 
Was möchtest du damit erreichen? Meinst du so werden Fehler ausgeben?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #3 (permalink)  
Alt 22-10-2007, 21:47
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok, nachdem ich nun folgenden mysql error bekomme

Code:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '  ' 
at line 1
insert into referenceNumber (feedId,reference) values ('2',' III ZA 7/06')
habe ich nun ein addslashes vor das query, doch auchdas geht nicht
PHP-Code:
addslashes($query 
"insert into referenceNumber (feedId,reference) 
values ('" 
$feedid[0] . "','" $value "')" "<br>"); 
Mit Zitat antworten
  #4 (permalink)  
Alt 22-10-2007, 22:29
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Beschäftige dich mit Grundlagen
Code:
$query = "insert into referenceNumbe(feedId,reference)
values ('" . $feedid[0] . "','" . $value . "')" ."<br>";
Das ist 100% nicht das was du per echo ausgeben hast. Was soll der Server mit dem <br> anfangen? Was willst du mit addslashes bewirken? Wenn du diese Fragen beantworten kannst oder merkst das beides einfach Unsinn ist kannst du wiederkommen.
Code:
addslashes($variable = '...');
So passiert einfach nichts. wenn dann musst du addslashes vor der Zuweisung anwenden: $variable = addslashes ( '...' ); - in diesem Fall erreichst du damit natürlich nur Fehler. Wenn du irgendwas escapen solltest dann die Eingaben die aus dem Regex kommt und das am besten mit mysql_real_escape_string.
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #5 (permalink)  
Alt 23-10-2007, 23:16
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard

@tontechniker
das war nix mit dem br am ende..
funktioniert netzt, doch leider wird bei jedem regex treffer doppelt in die db geschrieben.wie beschränke ich es auf einmal?
Mit Zitat antworten
  #6 (permalink)  
Alt 23-10-2007, 23:59
tontechniker
 PHP Senior
Links : Onlinestatus : tontechniker ist offline
Registriert seit: Jul 2005
Beiträge: 1.972
tontechniker ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
wie beschränke ich es auf einmal?
Nur einmal matchen?
__________________
Die Regeln | rtfm | register_globals | strings | SQL-Injections | []
Mit Zitat antworten
  #7 (permalink)  
Alt 24-10-2007, 00:01
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das sind alles unerschiedlich regex.
doch in meinem dokument kommt das pattern nur einmal vor und trotzdem bekomme ich es 2x ausgegeben..
Mit Zitat antworten
  #8 (permalink)  
Alt 24-10-2007, 10:35
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich habe dir schon einmal geschrieben, du sollst deinen Code lesbar formatieren. Wenn ich Zeilen sehe, wie diese:
Code:
{{
bekomm ich das nackte Grausen. Wenn du den Code anständig eingerückt hättest, hättest du auch die überflüssige Klammer sofort gesehen.
Aber nun zu deinem Problem:
Zitat:
preg_match schreibt:
$treffer[0] enthält dann den Text, der auf das komplette Suchmuster passt, $treffer[1] den Text, der auf das erste eingeklammerte Teilsuchmuster passt und so weiter
Deshalb ist es logisch, dass zwei Einträge in die DB geschreiben werden, wenn auch mit unterschiedlichen Werten. Warum machst du überhaupt eine Schleife, wenn du weisst, dass es nur eine Übereinstimmung gibt? Das würde doch genügen (einfach auch noch um zu zeigen, wieviel lesbarer eingerückter Code ist):
PHP-Code:
if preg_match('#s(wwwwsw+sd+/dd)#'$content$target5)){      
    
$query "INSERT INTO referenceNumbe(feedId, reference)
              VALUES($feedid[0], '$target5[1]')" 
;
    
mysql_query($query) or die(mysql_error());  
}  
else{
    echo 
"keine Übereinstimmungen";

__________________
Gruss
H2O
Mit Zitat antworten
  #9 (permalink)  
Alt 24-10-2007, 11:47
PHP-Desaster
 PHP Expert
Links : Onlinestatus : PHP-Desaster ist offline
Registriert seit: Mar 2006
Beiträge: 3.105
PHP-Desaster befindet sich auf einem aufstrebenden Ast
Standard

OffTopic:
Wenn du schon auf richtige Einrückung des Codes pochst, solltest du deine Strings mal vernünftig verketten! Und eine öffnende Klammer hast du hinter dem if auch noch vergessen
Mit Zitat antworten
  #10 (permalink)  
Alt 24-10-2007, 12:28
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Mit der Klammer hast du natürlich recht, die ist irgenwo untergegangen. Und über die Stringverkettung wurde schon sehr viel diskutiert, die mach ich aber sehr bewusst so. Selbstverständlich ist es jedem überlassen, dass mit den entsprechenden Operatoren zu machen (dann wenigstens mit Leerzeichen drum, damit man sie auch sieht).
__________________
Gruss
H2O

Geändert von H2O (24-10-2007 um 12:30 Uhr)
Mit Zitat antworten
  #11 (permalink)  
Alt 24-10-2007, 18:42
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ok,danke für die tipps. das skript läuft nun einwandfrei.
thx

ja leider muss ich das korrigieren, denn ich muss noch doch mit der foreach schleife arbeiten, denn das pattern trifft auf verschiedene strings zu, und diese sollen jeweils ausgegeben werden.
folgenden text wird z.bsp. gescannt
Code:
it {Urteil vom 8.2.2007 - I ZR 59/04 -} 
hat der B05 - {I ZR 231/01}, {GR
fogende schleife trifft nun auf beide pattern zu

PHP-Code:
if (preg_match('#(\w\s\w+\s\d+\/\d\d)#',$content,$target3)) {
foreach (
$target3 as $value){  
$update "update feeds set matched = 'y' where id=" .$feedid[0];              
mysql_query($update) or die(mysql_error());              
$query "insert into referenceNumber (feedId,reference,regEx) values ('" $feedid[0] . "','" $value "','3')";              
echo 
$query "<br>\n";              mysql_query($query) or die(mysql_error().'<hr />'.$query.'<hr />');              
$hilfsvar true;  }  } 
also im array habe ich laut debugger folgende werte
$target3=Array[2]
0=I ZR 59/04
1=I ZR 59/04

und mein regex evaluator gibt mir folgendes
0.0: (I ZR 59/04)
0.1: (I ZR 231/01)
1.0: (I ZR 59/04)
1.1: (I ZR 231/01)
also werden 2 pattern getroffen...
danke für eure hilfe !!!

Geändert von iberican (25-10-2007 um 01:14 Uhr)
Mit Zitat antworten
  #12 (permalink)  
Alt 25-10-2007, 11:35
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich bezweifle, ob du überhaupt liesst, was man dir schreibt. preg_match() findet nur die erste Übereinstimmung, und die Resultate sind genau so im Array, wie ich es dir geschrieben habe. Was du für einen Validator benutzst, weiss ich nicht, aber der braucht wahrscheinlich preg_match_all(). Und deinen Code schaue ich mir vorläufig nicht mehr an.
__________________
Gruss
H2O
Mit Zitat antworten
  #13 (permalink)  
Alt 25-10-2007, 13:51
iberican
 Newbie
Links : Onlinestatus : iberican ist offline
Registriert seit: Dec 2005
Beiträge: 76
iberican ist zur Zeit noch ein unbeschriebenes Blatt
Standard

ich benutze http://www.rexv.org/ als validator


Falls der Parameter Treffer angegeben wurde, wird er mit den Suchergebnissen gefüllt. $treffer[0] enthält dann den Text, der auf das komplette Suchmuster passt, $treffer[1] den Text, der auf das erste eingeklammerte Teilsuchmuster passt und so weiter.

und so weiter lässt aber schon darauf schließen, dass mehrere gefunden werden?
und das der code immer so sch+++ aussieht ärgert auch mich. aber immer wenn ich copy und paste mache, haut es mir beim einfügen unnötige umbrüche rein.
Mit Zitat antworten
  #14 (permalink)  
Alt 25-10-2007, 16:16
H2O
 PHP Junior
Links : Onlinestatus : H2O ist offline
Registriert seit: Jul 2007
Beiträge: 937
H2O ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von iberican
i$treffer[0] enthält dann den Text, der auf das komplette Suchmuster passt, $treffer[1] den Text, der auf das erste eingeklammerte Teilsuchmuster passt und so weiter.
und so weiter heisst, das nächste Element enthält den nächsten Klammerausdruck und das übernächste den übernächsten .... Da du aber nur einen Klammerausdruck hast, gibts auch nur Treffer 0 und 1. Ausserdem begreife ich deinen Regulären Ausdruck nicht, und kann mir darum nicht vorstellen, warum überhaupt etwas augegeben werden soll.
__________________
Gruss
H2O
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

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

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ADSMAN V3 - Werbe-Manager ansehen ADSMAN V3 - Werbe-Manager

ADSMAN V3 - mehr als nur ein Bannermanager! Banner, Textanzeigen und PagePeel Manager! Mit ADSMAN PRO haben Sie die Marketinglösung für eine effektive und effiziente Werbeschaltung mit messbaren Ergebnissen. Unterstützt werden Bannerformate in beliebi

25.10.2018 virtualsystem | Kategorie: PHP/ Bannerverwaltung
PHP News und Artikel Script V2

News schreiben, verwalten, veröffentlichen. Dies ist jetzt mit dem neuen PHP News & Artikel System von virtualsystem.de noch einfacher. Die integrierte Multi-User-Funktion und der WYSIWYG-Editor (MS-Office ähnliche Bedienung) ermöglichen...

25.10.2018 virtualsystem | Kategorie: PHP/ News
Top-Side Guestbook

Gästebuch auf Textbasis (kein MySQL nötig) mit Smilies, Ip Sperre (Zeit selbst einstellbar), Spamschutz, Captcha (Code-Eingabe), BB-Code, Hitcounter, Löschfunktion, Editierfunktion, Kommentarfunktion, Kürzung langer Wörter, Seiten- bzw. Blätterfunktion, V

22.10.2018 webmaster10 | Kategorie: PHP/ Gaestebuch
 Alle PHP Scripte anzeigen

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