phpbar.de logo

Mailinglisten-Archive

[php] [mysql][php][array] echte Knacknuss

[php] [mysql][php][array] echte Knacknuss

Jonas Dübi php_(at)_phpcenter.de
Fri, 22 Feb 2002 11:33:19 +0100


Hallo

Ich bin gerade dran ein script zu schreiben, dass mir zu
einer unbekannten mysqltabelle ein tabelle erzeugt (also
html) sowie ein formular und das ganze dann noch in die
tabelle schreibt. Das ganze ist daher interessant, da man
alles algemein machen muss, und das script muss alles selber
herausfinden, z.B: merkt es wenn eine spalte autoinkrement
ist und macht dazu kein formularfeld... Ich backe das ganze
in funktionen, da ich diese dann für das admintool meiner
webseite benutze...
Auf jeden fall habe ich zwei Probleme:
(natürlich dokumentiert :)
---> wenn man sich nicht mit mysql befasst, einfach nur
problemstellung 2 anschauen

1. wiso geht das nicht:

function deb_query ($query = ""){
       if (empty($query)) {return FALSE;}
       else{
           $result = mysql_query($query)
               or die("ERROR:<br>"
                   ." <li> errorno=".mysql_errno()
                   ." <li> error=".mysql_error()
                   ." <li> query=".$query()
               );
           return $result;
       }
}
//diese Funktion hat den Vorteil, dass sie einem
//detailierte Informationen über die mysqlfehlermeldung
//gibt... Verhält sich aber kein bischen anders als das
//normale mysql_query, man muss lediglich die 'dies' nicht
//schreiben...

--------------
//ich schreibe bewusst nicht das ganze script rein, nicht
//weill ich nicht will das jemand es sieht, sondern weil ich
//selbs zu lange mails nicht gerne habe :)
$keys = "("; 	// in diese variable werden die Spaltennamen
//gespeichert
$values = "(";  //und hier die Eingabe
//und jetzt die Eingabe plus die Spaltennamen //zusammenfühgen:
foreach($insert as $key => $value){
//das array insert sieht so aus :
//insert[spaltenname] = Eingabe
//also der schlüssel für die eingabe ist der spaltenname...
       $keys .= ",".$key;
       $values .= ",".$value;
}

$keys = "(" . substr($keys,2). ")";
$values = "(" . substr($values,2). ")";
//da wir ein ',' zu viel haben, schneiden wir den Teil
//einfach ab, wiso wir am anfang eine ( in den die variablen
//geschrieben haben, ist da man an eine lere variable nicht
//sich selber anhängen kann :). wir hätten auch ein h
//reinschreiben können, aber ich habe das genommen was
//sowiso reingehört

//hier basteln wir den query zusammen (selbsterklärend)
$query = "insert into " . $table . " ". $keys . " values " .
$values;

// so jetzt geben wir der variable $check deb_query und das
// query
$check = deb_query("$query");

//"hat es funktionier?"
if($check == TRUE){
       echo "Writting was succesfull!";
       include("view.php");
}
else{
       echo $check;
       echo "<br> \n ERROR, UNABLE TO WRITE DATA";
}

//also bei mir kommt immer eine Fehlermeldung... dass insert
//into ... eine undeklarierte funktion ist etc.
//ihr könnte es nachvollziehen in dem ihr einfach ein array
//erzeugt, dass die spaltennamen als key und die eingabe als
//wert nimmt. wichtig ist, dass ihr das connacten des
//servers und das auswählen der db nicht vergesst :)

2. Ja da ist ein problem 2, aber ein ganz einfaches...

ich habe ein array und einen wert, ich will jetzt anhand
dieser angaben den key also das was in den [] steht
herausfinden und zwar den key der auf den wert zeigt...

Matematisch dargestellt sieht das so aus:
array[x] == wert
x ist gesucht

----- wenn du hier angekommen bist, dann hast du es gelesen,
danke fürs lesen----


php::bar PHP Wiki   -   Listenarchive