php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 20.11.2008, 21:42  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 7
coder90 befindet sich auf einem aufstrebenden Ast
Standard fehler in forschleife und mysql

guten abend leute,

erstmal mein script:
PHP-Code:
//Mit dieser Funktion ist es möglich, eine bestimmten Datensatz aus einer MySql Tabelle auszulesen 

function mysql_get_row($table$fields$add){ //Wir definieren die Funktion 


  
$query "SELECT ".$fields." FROM ".$table." ".$add." LIMIT 0 , 1"//Wir weisen der Variable $query Sqlcode zu, den wir durch die an die Funktion übergebenen Daten vervollständigen 
   
  
$result mysql_query($query); //Wir senden ihn an die Datenbank 
   
  
$row=mysql_fetch_array($result); //und lassen den Datensatz in ein Array packen 

return $row//Wir geben als Rückgabewert das Array mit dem Datensatz an 





$textfeld $_POST['textfeld'];

//Diese Funktion trennt einen String in ein Array auf.
//('\n' steht beim Textfeld für neue Zeile)
$textfeld explode("\n"$textfeld);


//Zählen, aus wie vielen Elementen das Array besteht
//Dann testweise ausgeben
$num count($textfeld);


//wenn du nicht willst,
//dass leere Zeilen ausgegeben werden,
//baue am besten noch eine Kontrollstruktur ein:

echo "<br>Nun ohne Leerzeilen:<br>";

for(
$i 0$i <= $num$i++) {
//das trim() sorgt dafür, dass auch zeilen, die nur Leerzeichen enthalten gelöscht werden
if(!trim($textfeld[$i]) == "") {
$tf $textfeld[$i];
$nummer mysql_get_row("products""*""WHERE products_model = '".$textfeld[$i]."'");

echo 
$textfeld[$i];
echo 
" + ";
echo 
$nummer["products_id"];
echo 
mysql_error();
echo 
"<br>";



$sql "INSERT INTO products_to_categories (products_id, categories_id) VALUES ('".$nummer["products_id"]."', '4');"

mysql_query($sql);


}

in einem textfeld werden mehrere artikelnr. eingegeben. pro zeile eine artikel nr. mit der funktion explode() werden die artikelnr "getrennt". danach wird anhand der artikelnr die id aus der tabelle rausgesucht. hiernach sollen die beiden werte ausgegeben werden.
PHP-Code:
echo $textfeld[$i];
echo 
" + ";
echo 
$nummer["products_id"]; 
leider habe ich das problem, dass immer die id von der LETZTEN artikelnr raussucht und anzeigt. bei den anderen bleibt´s leer.
Code:
Nun ohne Leerzeilen:
101350 +
101351 +
101352 +
1013521 +
101353 +
887743C + 12096
hab schon alle mögliche varianten versucht um die werte aus der datenbank auszulesen, aber nichts bringt das richtige ergebnis.
gruß coder90
coder90 ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 20.11.2008, 22:13  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard Sieht irgendwie so aus...

als würde es einige Artikelnummern nicht geben oder die entsprechenden Product-Ids sind leer oder nicht vorhanden.
drsoong ist offline  
Alt 20.11.2008, 22:15  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 7
coder90 befindet sich auf einem aufstrebenden Ast
Standard

dachte ich auch erstmal.
hab es dann "per hand" in der datenbank nachgeguckt und es gibt die doch.

wenn ich bei
PHP-Code:
];
$nummer mysql_get_row("products""*""WHERE products_model = '".$textfeld[$i]."'"); 
die anführungsstriche von products_model = $textfeld[$i] wegenehme dann funktioniert es, aber auch nur artikelnr die aus zahlen bestehen.
coder90 ist offline  
Alt 20.11.2008, 22:34  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.988
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Ähhhm
Zitat:
LIMIT 0,1
__________________
--
One pixel is still too big. Please make it smaller. ASAP.

Initiative Mittelstand.
Die wichtigste Gestaltungsregel im Screendesign ist Pi mal Daumen des Arbeitgebers.
--
nikosch ist offline  
Alt 20.11.2008, 22:36  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard Jetzt klingt das nach...

einem Problem mit impliziter Typenkonvertierung.

Ich komme aber ehrlich gesagt nicht drauf, wo hier das konkrete Problem liegt.
drsoong ist offline  
Alt 20.11.2008, 22:38  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard

Zitat:
Zitat von nikosch Beitrag anzeigen
Ähhhm
Warum soll das ein Problem sein?
drsoong ist offline  
Alt 20.11.2008, 22:42  
Neuer Benutzer
 
Registriert seit: 20.11.2008
Beiträge: 7
coder90 befindet sich auf einem aufstrebenden Ast
Standard

@ drsoong
das problem ist, dass ich nur bei dem letzten artikel die id aus der tabelle products bekomme. obwohl es bei jedem sein sollte, oder zumindest bei denen die es auch in der tabelle gibt. (es sind alle artikel in der tabelle vorhanden, sodass überall die id erscheinen müsste.)

wenn ich zum beispiel in dem textfeld vor dem absenden
1
2
3
4
5
eingebe, würde ich nur
1 +
2 +
3 +
4 +
5 + 150

bekommen

@nikosch
das LIMIT 0,1 müsste doch kein problem sein?
dachte bei der forschleife wird die variable immer überschrieben? oder liege falsch?
coder90 ist offline  
Alt 20.11.2008, 22:48  
Erfahrener Benutzer
 
Benutzerbild von David
 
Registriert seit: 05.09.2007
Beiträge: 5.044
David wird schon bald berühmt werden
Standard

Erstmal
Zitat:
erstmal mein script:
Das glaube ich nicht Den Kommentaren nach ist es zusammenkopiert. Quelle(n)?

Du kannst auch gleich alle entsprechenden Datensätze abholen mit dem Vergleichsoperator IN.
WHERE artikelnr IN (3,8,95,1045,6841)
Dann darf da natürlich kein LIMIT stehen.
David ist offline  
Alt 20.11.2008, 22:52  
Erfahrener Benutzer
 
Benutzerbild von drsoong
 
Registriert seit: 05.08.2008
Beiträge: 1.127
drsoong wird schon bald berühmt werden
Standard Das ist jetzt eher ...

geraten.

Vielleicht stimmt was mit Deinem explode nicht.

Kannst ja mal testweise versuchen, Dein Array $textfeld per Hand zu füllen, um mal zu schauen, ob im explodierten String vielleicht noch irgendwelche Wagenrückläufe oder so drin sind.
drsoong ist offline  
Alt 21.11.2008, 08:42  
Moderator
 
Benutzerbild von cycap
 
Registriert seit: 13.02.2008
Beiträge: 6.816
PHP-Kenntnisse:
Fortgeschritten
cycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nettcycap ist einfach richtig nett
Standard

Ich habe den Verdacht, das du beim speichern in die Datenbank nen Zeilenumbruch o.ä. mit zur Artikelnr speicherst und deshalb der Vergleich fehlschlägt.

Probier mal folgendes:
PHP-Code:
$nummer mysql_get_row("products""*""WHERE products_model LIKE '%".$textfeld[$i]."%'"); 
cycap 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
Fehler von Formular in MySQL luckynuts PHP Tipps 2008 21 17.11.2008 17:44
MySQl - kein Fehler -- kein Upload wers1 PHP Tipps 2008 8 10.09.2008 16:13
mysql Datei import bei strato / FEHLER freakymiky Datenbanken 12 05.09.2008 10:16
Mysql fehler Crazystep PHP Tipps 2008 6 28.07.2008 14:55
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
mysql fehler meldung: basicx Datenbanken 1 22.07.2008 09:48
mysql + confixx fehler - mysql geht plötzlich nicht mehr Datenbanken 2 31.12.2006 11:41
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
MySQL Fehler inu Datenbanken 5 11.05.2006 15:22
Fehler beim Wechsel von MySQL 4 nach 5 JK Datenbanken 2 09.12.2005 18:43
[Erledigt] Mysql Fehler Datenbanken 3 04.09.2005 16:58
mySQL Fehler Datenbanken 1 27.02.2005 13:51
Problem bei MYSQL / Update Resource #id Fehler PHP Tipps 2004 2 29.09.2004 13:09
array_push nur in begrenzter Anzahl ausführen ? PHP Tipps 2004 2 07.09.2004 09:05
[Erledigt] MySQL fehler(?) Datenbanken 2 24.07.2004 20:10


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:23 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