php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-05-2007, 14:30
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard dynamische Editierseite

Hi,

habe eine dynamische Editierseite versucht zu implementieren. Dabei sollen die Spaltenbezeichner als Textfeld und die Inhalte der Zeile der Inhalt der Textfelder sein.
Nur leider funktioniert mein Code leider nicht.
1. Frage: Geht so eine Abfrage: $abfrage="SELECT *FROM bauteil WHERE nameteile='$welche'"; ? Also kann ich alle Spalten auswählen ohne alle im Select explizit zu nennen um hinterher ein Where zu benutzen?
2. Frage: Ich vermute das in der Schleife irgendwas nicht stimmt. Nur bisher habe ich den Fehler nicht gefunden...findet spontan jemand einen Fehler?

Schonmal danke für eure Antworten!

PHP-Code:
<?
session_start
();
include 
'sessionhelpers.inc.php';

if (!
logged_in())
{
    echo 
'Sie sind nicht eingeloggt.<p />';
echo 
'<a href="index.php?section=login">Start</a>';
exit;
}
?> 

<?
include("dbconnect.php");

$welche=$_GET['id'];

$abfrage="SELECT *FROM bauteil WHERE nameteile='$welche'";

$result mysql_query($abfrage) or die(mysql_error());

$row mysql_fetch_row($result);





echo 
' <form action=index.php?section=aendern method="post"> ';
echo 
' <table border ="0"> ';


for (
$i 0$i mysql_num_fields($result); $i++){

echo 
' <tr>
 echo ' 
<td>'.mysql_field_name($result,$i).':</td';
      echo ' 
<td><input type="text" name="'.mysql_field_name($result,$i).'" size="45" value="<?php echo $row[$i];  ?>"';

echo ' 
</td';
echo '
</tr> ;

}

?>

</table>

 <input type="submit" value="Diese Werte ändern"> 
  </form>
</body> 
</html> 

</body>
</html>
Mit Zitat antworten
  #2 (permalink)  
Alt 09-05-2007, 14:32
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

aufgrund des syntax-highlightnings hätte dir das hier schon auffalen sollen:
PHP-Code:
echo  <tr
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #3 (permalink)  
Alt 09-05-2007, 16:58
pekka
 PHP Master
Links : Onlinestatus : pekka ist offline
Registriert seit: Jun 2001
Ort: Köln
Beiträge: 6.608
pekka befindet sich auf einem aufstrebenden Ast
Standard

... und *FROM ohne Leerzeichen dazwischen geht auch nicht.
Mit Zitat antworten
  #4 (permalink)  
Alt 10-05-2007, 11:57
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wow, vielen Dank für eure Hilfe:

Jetzt hab ich nur noch ein kleines Problem in meiner aendern.php: Irgendwie scheint diese
Zeile in meinem Code nicht zu funktionieren:
$name[$i]= "'.mysql_field_name($result,$i).'"; // Name des Textfeldes
Obwohl ich genau gleich vorgegangen bin wie in dem editieren.php....

PHP-Code:
<?
session_start
();
include 
'sessionhelpers.inc.php';

if (!
logged_in())
{
    echo 
'Sie sind nicht eingeloggt.<p />';
echo 
'<a href="index.php?section=login">Start</a>';
exit;
}
?> 


<?php

include("dbconnect.php");


$welche=$_GET["welche"];

$abfrage 'SELECT * FROM bauteil WHERE nameteile LIKE "%' $welche '%"';

$result mysql_query($abfrage) or die(mysql_error());

$row mysql_fetch_row($result);



for (
$i 0$i mysql_num_fields($result); $i++){

$name[$i]= "'.mysql_field_name($result,$i).'"// Name des Textfeldes

$zwischen[$i] = $_POST["$name[$i]"];  //Post Wert des Textfeldes
 

$aendern "UPDATE bauteil Set $name[$i] = '$zwischen[$i] ' WHERE nameteile = '$welche'";

$update mysql_query($aendern)  or die(mysql_error());

}

?>

Die Daten wurden geändert.


<br>
Mit Zitat antworten
  #5 (permalink)  
Alt 10-05-2007, 11:59
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 25.236
wahsaga befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von JCDenton
Irgendwie scheint diese
Zeile in meinem Code nicht zu funktionieren:
PHP-Code:
$name[$i]= "'.mysql_field_name($result,$i).'"// Name des Textfeldes 
Was heisst funktioniert nicht, und was soll sie denn bewirken, diese Zeile ...?
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #6 (permalink)  
Alt 10-05-2007, 11:59
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$name[$i]= "'.mysql_field_name($result,$i).'"// Name des Textfeldes 
informier dich mal über zeichenkettenverknüfungen

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #7 (permalink)  
Alt 10-05-2007, 12:00
MelloPie
 PHP Master
Links : Onlinestatus : MelloPie ist offline
Registriert seit: Jan 2002
Ort: Hessen
Beiträge: 4.380
MelloPie ist zur Zeit noch ein unbeschriebenes Blatt
Standard

mach halt mal die "' weg
__________________
Beantworte nie Threads mit mehr als 15 followups...
Real programmers confuse Halloween and Christmas because OCT 31 = DEC 25
Mit Zitat antworten
  #8 (permalink)  
Alt 10-05-2007, 12:35
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Die Variable name ist gleichzeitig auch der Spaltenbezeichner in meiner MySQL Tabelle. Deswegen taucht auch die Variable name in dem SQL Befehl bei Set auf.

Habe die " " entfernt, aber der Code läuft trotzdem noch nicht
Mit Zitat antworten
  #9 (permalink)  
Alt 10-05-2007, 12:40
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Wenn es nicht läuft, wird es ja sicher ne Fehlermeldung geben ...?
__________________
ich glaube
Mit Zitat antworten
  #10 (permalink)  
Alt 10-05-2007, 12:46
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nein, es passiert nichts. Bevor "nichts" passiert ist, habe ich den SQL Code
$aendern = "UPDATE bauteil Set $name[$i] = '$zwischen[$i] ' WHERE nameteile = '$welche'";
durch
$aendern = "UPDATE bauteil Set $name[$i] = '$zwischen[$i]' WHERE nameteile LIKE "%' . $welche . '%"';
ersetzt, weil es eine MySQL Fehlermeldung gab.
Aber jetzt passiert nichts. Weder wedern Daten in der MySQL Tabelle eingetragen noch erscheint der Text "Die Daten wurden geändert.".
Also schätze ich mal, dass PHP davor noch einen Fehler findet.....

Hier nochmal mein ganzer Code:

PHP-Code:
<?
session_start
();
include 
'sessionhelpers.inc.php';

if (!
logged_in())
{
    echo 
'Sie sind nicht eingeloggt.<p />';
echo 
'<a href="index.php?section=login">Start</a>';
exit;
}
?> 


<?php

include("dbconnect.php");


$welche=$_GET["welche"];

$abfrage 'SELECT * FROM bauteil WHERE nameteile LIKE "%' $welche '%"';

$result mysql_query($abfrage) or die(mysql_error());

$row mysql_fetch_row($result);



for (
$i 0$i mysql_num_fields($result); $i++){

$name[$i]= '.mysql_field_name($result,$i).'// Name des Textfeldes

$zwischen[$i] = $_POST["$name[$i]"];  //Post Wert des Textfeldes
 
$aendern "UPDATE bauteil Set $name[$i] = '$zwischen[$i]' WHERE nameteile LIKE "%' . $welche . '%"';

$update = mysql_query($aendern)  or die(mysql_error());

}

?>

Die Daten wurden geändert.


<br>
Mit Zitat antworten
  #11 (permalink)  
Alt 10-05-2007, 12:52
penizillin
 PHP Guru
Links : Onlinestatus : penizillin ist offline
Registriert seit: Feb 2004
Beiträge: 10.166
penizillin ist zur Zeit noch ein unbeschriebenes Blatt
Standard

1. was ergibt mysql_num_rows auf die erste query (select)?
2. wie sieht diese query aus?
3. wie ist error_reporting eingestellt?
4. die zuweisung von $name[$i] ist immer noch absoluter blödsinn. denk dir noch ein paar sonderzeichen aus, vielleicht errätst du ja die richte schreibweise.
5. kommst du in die zweite for-schleife?
6. wie sieht die zweite zusammengestellte query aus?

beantworte alle fünf fragen und lern daraus.
Mit Zitat antworten
  #12 (permalink)  
Alt 10-05-2007, 12:55
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.721
Kropff befindet sich auf einem aufstrebenden Ast
Standard

PHP-Code:
$name[$i]= '.mysql_field_name($result,$i).'// Name des Textfeldes
...
$zwischen[$i] = $_POST["$name[$i]"]; 
zeichenketten verdammt noch mal.
PHP-Code:
$aendern "UPDATE ..."
hier sollte dir wieder mal auffalen, dass das syntax-highlightning auf einen fehler aufmerksam macht. und setzt an den anfang deines scriptes mal ein
PHP-Code:
error_reporting (E_ALL); 
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #13 (permalink)  
Alt 13-05-2007, 20:12
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard

nach Stundenlangem rumprobieren mit den zeichketten bekomme ich leider immernoch keine Lösung hin die funktioniert. Von der Funktionalitätes des Codes bin ich eigentlich überzeugt, wüßte nicht warum dort Fehler drin sein sollten. Also kann es meiner meinung nach nur an der Syntax hapern. Kann bitte nicht jemand die zeilen mit den falschen zeichenketten einfach korrigieren, denn ich bin total kirre von den ganzen Zeichen! Das wäre wirklich sehr nett und hilfreich!
Mit Zitat antworten
  #14 (permalink)  
Alt 13-05-2007, 20:23
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
PHP-Code:
 $name[$i]= '.mysql_field_name($result,$i).'// Name des Textfeldes
...
$zwischen[$i] = $_POST["$name[$i]"]; 
Preisfrage: was gehört in Anführungszeichen? Richtig, Strings!

Was von dem oben Genannten ist ein String?
__________________
ich glaube
Mit Zitat antworten
  #15 (permalink)  
Alt 13-05-2007, 21:14
JCDenton
 Newbie
Links : Onlinestatus : JCDenton ist offline
Registriert seit: Jan 2007
Beiträge: 50
JCDenton ist zur Zeit noch ein unbeschriebenes Blatt
Standard

das ist ja gerade mein Problem herauszufinden was der String ist und was dabei maskiert wird...
Also ich habe das so verstanden, dass der Rückgabewert von '.mysql_field_name($result,$i).' der eigentliche String ist, der der Variable name zugeorndet wird....aber was da jetzt genau maskiert werden muss ist mir wirklich ein Rätsel.
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

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 05:07 Uhr.