Funktion VS. SQL INSERT

asmodis!

Mitglied
Hallo Leutz,

ich bin am verzweifeln, endlich habe ich mich mal mit demThema
function() in PHP befasst, und schon funktioniert es nicht mehr so
richtig wie ich will.

(script weiter unten)


Ich will einen Eintrag in die Datenbank vornehmen, es kommt keine
Fehlermeldung, garnix, er trägt mir die Daten nur eben nicht ein.
Nachdem ich mich noch nicht sooo toll auskenne, möcht ich euch auch
noch bitten mir ein paar Tipps zu geben, was meinen Programmierstil
betrifft, ich bin für jede Kritik dankbar.

Das Script sieht folgendermaßen aus(entschuldigt bitte die Länge):

functions.php_______________________________________

PHP:
<?

$timestamp=time();


function sqlselect($tabelle, $sql2){

GLOBAL $timestamp;
GLOBAl $verbindung;
GLOBAL $$tabelle;
GLOBAL $ergebnis;
GLOBAL $sql;

$sql= "SELECT * FROM $tabelle " . $sql2;
$ergebnis=mysql_query($sql, $verbindung);

}

function sqlinsert($tabelle, $sql2){

GLOBAL $timestamp;
GLOBAl $verbindung;
GLOBAL $$tabelle;
GLOBAL $ergebnis;
GLOBAL $sql;


$sql= "INSERT INTO $tabelle " . $sql2;
mysql_query($sql, $verbindung);
return $sql;
}

function sqlupdate($tabelle, $sql2){

GLOBAL $timestamp;
GLOBAl $verbindung;
GLOBAL $$tabelle;
GLOBAL $ergebnis;
GLOBAL $sql;

$sql= "UPDATE $tabelle SET " . $sql2;
$ergebnis=mysql_query($sql, $verbindung);

}


function session($PHPSESSID, $domain, $user){

  GLOBAL $timestamp;
  GLOBAl $verbindung;
  GLOBAL $PHPSESSID;
  GLOBAL $ergebnis;
  GLOBAl $domain;
  GLOBAL $user;

  sqlselect("session", "WHERE session='$PHPSESSID'");

  $anzahl=mysql_num_rows($ergebnis);

  if($anzahl==0){

    sqlinsert("session", "( `session` , `user` , `domain` , `time`
)VALUES ('$PHPSESSID', '$user', '$domain', '$timestamp'");
    }
    else{

    sqlupdate("session", "`user` = '$user',`domain` = '$domain',
`time` = '$timestamp' WHERE `session` = '$PHPSESSID' LIMIT 1");

  }

};


?>
______________________functions.php



und so rufe ich es auf:

index.php_______________________________________

PHP:
<?
session_start();
include("config.php");
include("functions.php");
sqlselect("code", "");
session($PHPSESSID, $domain, $user);

?>
____________________________index.php




MFG
asmo
 
falls du in config.php keine datenbankverbindung öffnes ist das der fehler ...

my_sql_connect und mysql_select_db müssen da gemacht werden ist das so?
 
Meine Config sieht so aus:

PHP:
<?

$server="localhost";
$benutzer="";
$passwort="";
$verbindung= mysql_connect($server, $benutzer, $passwort);
$DB="iswmedia";
mysql_select_db ($DB, $verbindung);

?>


an dem liegts net, abfragen klappen auch, nur eben nicht wenn ich die ganzen sachen in eine/mehrere Funktion(en) packe....
 
Warum setzt du die Variablen die du eh' per Parameter übergibst auf global ?

Machs besser so:

PHP:
<?php
function sqlselect($tabelle, $fields = "*", $sql = "") {
    global $verbindung;
    return mysql_query("SELECT " . $fields . " FROM " . $tabelle . ($sql ? " " . $sql : ""), $verbindung);
}
?>

Das hat ca 100 mal mehr sinn :)
Aufruf:
PHP:
<?php
$verbindung = mysql_connect("...","...","...");
mysql_select_db("...",$verbindung);
$sql = sqlselect("news","id, titel, zeit","WHERE (id='1')");
while($row = mysql_fetch_array($sql)) {
    echo $row["id"] . " - " . $row["titel"] . "<br />\n";
}
?>

Nicht böse sein ;)
 
*gg* wieso böse sein? ich hab mich am Freitag das erste mal mit Funktionen befasst, so gesehn weis ich das die hälfte (wenn nicht mehr) meines Programmierstils schwachsinnig is und bin über jegliche (konstruktive) Kritik dankbar.

Die Frage ist allerdings obs jetzt funktioniert, ich test es einfach nochmal durch und wenn ich was weis sag ich bescheid.


achja, kennt jemand ein gutes(deutsches) Tutorial über den (sinnvollen) Einsatz von Funktionen?
 
Hmm, ich glaube nen Tutorial gibt's da nicht, man muss sich halt nur überlegen, was die Funktion machen soll, und ob es sinnvoll ist, sie einzusetzen.

Sinnvoll sind Funktionen zB wenn man sie Rekursiv aufrufen will, wie in dem Tutorial von asphyxia.

Das ist eine sinnige Anwendung von Funktionen. Du kannst ja einfach fragen, wenn du dir nicht sicher bist. :)

Oft hilft es auch, andere scripte anzugucken, und daraus zu lernen.

Edit: Link; php.net rulez ;)
 
Zuletzt bearbeitet:
Zurück