SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 27.03.2003, 12:09:31
ttkman ttkman ist offline
Anfänger
 
Registriert seit: Mar 2003
Beiträge: 1
knifflig)Variable wird nicht in if-Anweisung übernommen

schon mal im vorraus sorry für das lange script... bin hier an nem projekt für siemens und absoluter php-newbie ... habe ein flexibles php-file geproggt, das je nach ausgewählter datenbank die eingabemaske anpasst ... dies steht in der else anweisung ... in der if-anweisung wird, sobald der button gedrückt wird ein datensatz in eine sql-datenbank eingefügt.

jetzt zum problem ... die auswahl der db geschieht durch ein script bei dem 2 variablen --> db_name und table übergeben werden --> da geht es auch schon los... die variablen werden in der else-anweisung geladen (überprüft mit echo), in der if-bedingung bleiben sie jedoch leer (auch mit echo überprüft) .. bitte checked mal das script und macht mir mal nen vorschlag wie ich das problem lösen kann .. hab keine zeit das ganze nochmal umzuschreiben....danke schonmal ...

ANBEI: SCRIPT1+SCRIPT2

SCRIPT 1:
<!doctype html public "-//W3C//DTD HTML 4.0 //EN">
<html>
<head>
<title>Datensatz zu hinzufuegen</title>

</head>
<body>
<?php

if($submit)

{
MYSQL_SELECT_DB($_SESSION["db_name"]);
$result = (mysql_query("SELECT * FROM $_SESSION['table']"));
$anz=mysql_num_fields($result);
$k=0;
$i=0;
$lname=mysql_field_name($result,$i);
do
{
$lname=mysql_field_name($result,$i);
$Inhalt[$k] = """.$Feld[$i].""";
$lname2[$k] = $lname;
if($k<$anz-1)
{
$text2=$text2.$Inhalt[$k].",";
}
else
{
$text2=$text2.$Inhalt[$k];
}
if($k<$anz-1)
{
$text=$text.$lname2[$k].",";
}
else
{
$text=$text.$lname2[$k];
}
$i++;
$k++;
}
while($i<$anz);
$ertl = mysql_query ("INSERT INTO $table ($text) VALUES ($text2)");
?>
<?php
}
else
{
$conn = MySQL_Connect("localhost","root","")or die ("ERROR - Konnte eine Verbindung zur
Datenbank herstellen");
if ($conn) echo " Verbindung zur Datenbank erfolgreich hergestellt";
MYSQL_SELECT_DB($db_name);
$result = (mysql_query("SELECT * FROM $_SESSION['table']"));
$anz=mysql_num_fields($result);
$i=0;
echo "<form action="$PHP_SELF"method="post">";
echo "<center><input type="Submit" name="submit" value="Eingabe"><BR><BR>";
do
{
$lname=mysql_field_name($result,$i);
echo "<center>$lname<center><input name="Feld[$i]" size=20 maxlength=5 value=><br>";
$i++;
}
while($i<$anz);
}
echo "</form>";
?>
</body>
</html>

SCRIP2:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN" //übergabescript
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>Bitte $db_name,$table angeben</title>
</head>


<form action="insert.php" method="post">"
<input type="text" size="17" name="db_name">
<input type="text" size="17" name="table">
<br><br>
<center>
<input type="submit" value="OK">
</center>
</form>

</html>
Mit Zitat antworten
  #2  
Alt 27.03.2003, 17:00:54
Progman Progman ist offline
Member
 
Registriert seit: Apr 2002
Beiträge: 821
Progman eine Nachricht über ICQ schicken
http://tut.php-q.net/
Das sieht verdammt unübersichtlich aus. Lies mal dieses Tutorial.
__________________
PHP-Tutorial - PHP-FAQ - PHP-Manual
HTMLWiki
Mit Zitat antworten
  #3  
Alt 29.03.2003, 19:47:36
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
@Progman:

das liegt daran, weil er nicht das [php] oder [code] tag verwendet hat.
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
  #4  
Alt 29.03.2003, 20:04:07
bbastix bbastix ist offline
Anfänger
 
Registriert seit: Mar 2003
Ort: Kassel
Beiträge: 10
Hi,

ich würde auch zunächst mal versuchen, das Skript ein wenig zu "entwirren"!

MySQL:
In der "if-Anweisung" fehlt der Verbindungsaufbau. Pack die MySQL-Geschichten doch erstmal in eine Klasse (dazu gibt es bestimmt einige freie im Netz, aber ansonsten ist sowas ja auch schnell zusammengeschrieben).

Übergebene Variablen:
Du liest $db_name einmal aus $_SESSION aus und einmal aus dem globalen Namensraum. Beides dürfte nicht funktionieren, da du weder eine Session laufen hast, noch die Variable irgendwo global gesetzt hast.

HTML-Tabellen und -Forms:
Die GUI würde ich in zumindest als "Pseudo-"Templates auslagern, sonst wirst du ja nicht mehr froh! Also lieber "oben" mit PHP-Code die Eingaben verarbeiten und Ausgabewerte in einen Variablen-Kontainer packen und dann "unten" oder in einem Include-File nur den HTML-Code ausgeben, ergänzt um die PHP-Variablen und ggf. auch -Schleifen und -Bedingungen.

Kodierungskonventionen:

Deine Variablen haben ja hübsch durcheinandere Bezeichnungen:

lname - db_name (mal mit Unterstrich, mal verbunden)
Inhalt, Feld (wobei ich garnicht weiß, woher die kommen) - und dann wieder Kleingeschriebenes
Und dann diese "text2" und "lname2" ... okay, Geschmackssache.

Aber lies mal ein bischen zu dem Thema, schau dich um, was so üblich ist und leg dich dann (zunächst ja im eigenen Interesse) auf bestimmte Regeln fest.

Kommentieren!!
Ich seh keinen einzigen Kommentar in dienem Skript. Besser solltest du jeden Schritt kommentieren, den du machst, sonst weißt du nach wenigen Tagen nicht mehr, was du gemacht hast bzw. du musst es erst wieder herausfinden, anstatt es einfach abzulesen!

...und dann bietet auch dieses Board die Möglichkeit Code entsprechend zu kennzeichnen, damit die Einrückungen nicht verloren gehen:

Anstatt:

Code:
if ($trallala) {

    if (!do_something($trallala)) {

        $error[] = "Don't like to do so";
    }
}
kommt dann halt sowas bei raus:

if ($trallala) {

if (!do_something($trallala)) {

$error[] = "Don't like to do so";
}
}

Ja, und zum konkreten Problem nochmal:
Wenn der gepostete Code alles ist, dann kann da einiges nicht gehen, ansonsten poste doch mal das ganze Skript (am besten nachdem du es etwas geordnet hast...)

Basti

Geändert von bbastix (29.03.2003 um 20:11:09 Uhr)
Mit Zitat antworten
  #5  
Alt 29.03.2003, 20:14:40
Benutzerbild von |Coding
|Coding |Coding ist offline
Administrator
 
Registriert seit: Apr 2002
Ort: Bergheim
Alter: 41
Beiträge: 5.255
|Coding eine Nachricht über Skype™ schicken
Zitat:
Original geschrieben von bbastix
...ansonsten poste doch mal das ganze Skript...
ich verweise jetzt, rein vorsichtshalber, mal auf diese seite: click
__________________
Gruß |Coding

---
Qozido® - Die Bilderverwaltung mit Logbuch für Taucher und Schnorchler.

www.qozido.de
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:08:21 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt