PHP Multidimensionales Array Löschen

Ich bin gerade irgendwie durcheinander. Bastel gerade an einen kleinen Warenkorb, wobei die "Bestellungen" erst über Session laufen und dann nach "Bestellung" in einer Datenbank gestored werden.

Nun soll der Benutzer beim Warenkorb auch die Anzahl der Artikel ändern können. Wie folgt überprüfe ich also: Artikelanzahl - Eingabe = Anzahl der neuen bzw. zu löschenden Elemente:

if(isset($_POST['payment'])) {
    $double = array_count_values($articlecount);
    for($i = 0; $i < count($_POST['article']); $i++) {
        $article = mysql_fetch_assoc(mysql_query("SELECT * FROM `wp_shop_articles` WHERE article='" . $_POST['article'][$i] . "' LIMIT 1"));
        print "<br>" . $_POST['article'][$i] . ", Vorher: " . $double[$_POST['article'][$i]] . ", Nachher: " . $_POST['quantity'][$i] . " = " . ($_POST['quantity'][$i] - $double[$_POST['article'][$i]]);

        // ADD
        if($_POST['quantity'][$i] - $double[$_POST['article'][$i]] >= 1) {
            for($a = 0; $a < $_POST['quantity'][$i] - $double[$_POST['article'][$i]]; $a++) {
                $_SESSION['cart']['articles'][] = array("id" => $_POST['article'][$i], "price" => $article['article_price']);
            }

        // DELETE
        } else if($_POST['quantity'][$i] - $double[$_POST['article'][$i]] <= -1) {
            for($a = 0; $a < abs($_POST['quantity'][$i] - $double[$_POST['article'][$i]]); $a++) {
                // $_POST['article'][$i]
            }
        }
    }
}

Als erstes wird halt überprüft, wieviele Artikel insgesamt in der Session vorhanden sind und ob diese doppelt sind ($double).

Wenn nun der Wert über +1 ist, dann soll dieser dementsprechend die anzahl X an Artikeln in der Session hinzufügen. Klappt wunderbar.

Jezt stellt sich bei mir die Frage (Da ich gerade irgendwie nicht klar denken konnte), wie ich nun eine X beliebige Anzahl wieder aus einem Array "löschen" kann (ja, usort möchte ich danach auch verwenden).

Mein denkstoß verlief erst so: Nehme X array-Artikel heraus (löschen mittels unset) die die ID Y besitzen und sortiere den index neu.

Das Array ist folgendermaßen aufgebaut:

cart => (
articles => (
    [0]     =   array(id => artikel_id_1, preis => 0.99 €)
    [1]     =   array(id => artikel_id_2, preis => 2.99 €)
    [2]     =   array(id => artikel_id_1, preis => 0.99 €)
    [3]     =   array(id => artikel_id_2, preis => 2.99 €)
    [4]     =   array(id => artikel_id_1, preis => 0.99 €)
)

)

Bei mir stellt sich nun eigendlich die Frage, wie ichs am besten mache: Im Artikelarray sind sooft die Artikel angegeben, wie der Kunde auch bestellen möchte. Angenommen dieser würde nun 2 Artikel entfernen (Beispielswese 2x den Artikel mit der ID artikelid2).. Wie muss ich nun vorgehen, dass (egal von welcher Position nun) einer der artikel entfernt werden.

Ich benötige eigendlich nur ein kleinen Denkstoß, vielleicht kann mir ja jemand Ideen herüberschieben. Vielen Dank.

...zum Beitrag

warum schreibst dir das in die session und nicht in die datenbank?

mach dir doch ne tabelle in der db und schreib dir die productid und die dazugehörige sessionid da mit rein. dann kannst wunderbar löschen, sortieren, mengen, preise berechnen etc und das alles mit mysql. wenn der user angemeldet ist kannst dir auch noch zusätzlich die user_id mit in die tabelle schreiben. dann kannst den warenkorb auch wieder herstellen wenn der user sich abgemeldet hat aber noch nicht bestellte produkte hat und sich bei der nächsten anmeldung die session geändert hat ;)

...zur Antwort

Versuch mal statt $REMOTE_ADDR

 $_SERVER['REMOTE_ADDR'];

bzw statt $HTTPUSER_AGENT

$_SERVER['HTTP_USER_AGENT']

zu verwenden oder wo hast die Variablen definiert?

Schreib das ganze doch einfach in eine MySQL Datenbank - ist einfacher und kannst dabei auch noch für später mal ganz einfach eine Besucherstatistik erstellen ;)

...zur Antwort

Entweder du prüft den Wert mit nem AJAX Request (schau dir mal jQuery an) auf ne Datei die die Eingabe validiert, nachdem der User den kompletten Namen eingetippt hat und das Feld verlassen hat, oder du prüft nachdem das Formular abgeschickt wurde vor dem INSERT in die DB ob bereits ein Eintrag vorhanden ist.

Das Prüfen ob der Eintrag vorhanden ist könnte so aussehen

$query = mysql_query(SELECT * FROM user WHERE name = "Max");

if(mysql_num_rows($query) == 0 ) {
  mysql_query('INSERT INTO user (name) VALUES ("Max")');
  $user_id = mysql_insert_id();
} else {
  echo 'Fehler: Name bereits vorhanden";
}
...zur Antwort

sorry glaube hier versteht keiner genau was du machen willst :)

...zur Antwort
komische mail was bedeutet sie?

ich bekomme ab und zu so ne komische mail auf einer sprache die ich nkicht verstehe. kann sie jemand übersetzen einen übersetzungslink schicken oder sagen wie ich die los werde? es ist zudem eine junk-mail

Pokud se Vám email neotevřel, klikněte zde.
Pyunik 2.pedkolo ter, 12.7., 17:00

Viktoria Plze
Pyunik Jerevan X Viktoria Plze
4,00 = 4.000 Kč 3,40 = 3.400 Kč 1,80 = 1.800 Kč
Jak zskte Vai szku bez rizika:

1) Zaregistrujte se 2) Vsate si za 1000 Kč na jakýkoliv zápas/y 3) Pokud vyhrajete, je celá suma Vaše 4) Pokud nevyhrajete, vrátíme Vám Váš vklad ihned nazpět - nemůžete ták nic ztratit !

Vsate si 1000,- bez rizika prohry
Dal vbr z utkn 2. pedkola Ligy mistr
ter 20:45 Slovan Bratislava - Tobol Kostanay 1200,- Vsate si Steda 20:00 Dynamo Zheb - Neftchi 1200,- Vsate si
Steda 20:30 Sturm Graz - Videoton 1700,- Vsate si Steda 20:30 Skonto Riga - Wisla Krakow 1400,- Vsate si
Steda 20:45 Linfield - Bate Borisov 1450,- Vsate si Vaše první sázka je tak pojištěn a až do výše 1.000 Kč! Jedinečný uvítací bonus - sázka bez rizika.
Betclic Poker

BetClic Limited je společnost registrovaná na adrese Portomaso Business Tower, 6th floor, St. Julian's PTM01, Malta, pod číslem C40330 a licencí od řadu Malta Lotteries and Gaming Authority platné pro celé Evropské společenství pod čísly LGA/CL1/288/2006; LGA/CL2/288/2006; LGA/CL3/288/2006; LGA/CL1/588/2009 (LOI).

Nabdka plat pro nov zkaznky BetClic star 18ti let!

S Vasimi dotazy můžete kontaktovat náš zákaznicky servis a to e-mailem.

Tento email byl zasln dle podmnek smlouvy pi tv registraci na www.sms.cz Dal monosti szen na musste leider fast alle links entfehrnen

...zum Beitrag

gib den text in http://translate.google.de/ ein.

ist tchechisch. am besten den spam filter besser einstellen und gleich in papierkorb verschieben :)

...zur Antwort
MySQl und PHP

Ich habe folgenden Code, der mir die Inhalte der einzelnen Einträge ausliest: [php] Editieren sie hier ihre Einträge



<?php

//oben wieder das ganze Verbindungszeugs

$connid = @mysql_connect($mysqlhost, $user, $passwort) OR die("Error: ".mysql_error());
mysql_select_db($datenbank) OR die("Error: ".mysql_error());

$ergebniss = mysqlquery("SELECT * FROM texte ORDER BY id") or die(mysqlerror()); // Abrufen der Daten aus der Datenbank while($row=mysqlfetchobject($ergebniss)) {

?>

<?echo " Titel:
"; ?> <?= $row-> titel ; ?> <? echo ""; ?>

  <?echo "<u><i>Editieren: </u> </i>: <br> <textarea name='ausdb' rows = '10' cols = '100'> ". $row->text ."</textarea> <br> <br> <u><i>Eintrag:  </u></i> <br>"; ?>


  <?= $row->text; ?> <!-- Den Text Ausgeben! //--> <br><br><br>

 <? echo "<i> <font size = \"1\"> Verfasst am: </i> " ;?>  <?= date("d.m.Y",$row->timestamp); ?> um <?= date("H:i",$row->timestamp); echo"<br>"; ?> <?echo "<br>"; ?>
       <!-- Datum und Uhrzeit des Verfass Datums Ausgeben //-->      <?echo " </font>"; ?>     <hr>              <!-- IP auf 3 Zeichen Gekürzt anzeigen //-->

<?php } // close while ?>

       <? echo "<br> <br>" ;?>


       <form action="edit_f.php" method="POST"> 
       <input type="submit" name="submit" value="Eintragen"/>
       </form>

[/php]

So, das liest mir alles aus, doch wie mache ich es jetzt, das, wenn ich auf den Button "Eintragen" ([php]

[/php] ), klicke, die entsprechenden Einträge, die in den Textfeldern sind und zu den einzelnen Einträgen gehören, so umändere, dass der alte Eintrag durch den neuen in der Textbox mit dem jetzigen Eintrag überschriben wird?

Lg

...zum Beitrag

Hallo,

schick dir doch die des Eintrags im POST mit den du bearbeiten willst.

<form action="edit_f.php" method="POST"> 
<input type="hidden" name="id" value="<?= $row->id; ?>">
<input type="submit" name="submit" value="Eintragen"/>
</form>

oder verlinke die Edit Seite mit den Link

<a href="edit_f.php?id=<?= $row->id; ?>">

Eintragen und lade dir den Eintrag für die ID in das Bearbeiten Formular.

wenn der erintrag erfolgreich gespechert wurde gehst wieder zurück auf die Übersicht seite.

...zur Antwort

Hi,

versuchs mal damit:

$('div.exif').animate({
    opacity: 0.0,
    height: 'toggle'
}, 400, function(){
    $('div.exif').hide();
});
...zur Antwort

hallo,

bist du sicher, dass der mysql server läuft? läuft der prozess auf deinem rechnet?

stimmt die config von deinem phpmyadmin?

bist du sicher dass der user mit dem du dich versuchst einzuloggen auf rechte hat über diese IP auf deinen rechner zuzugreifen?

...zur Antwort

hallo,

php lernst am besten, wenn du einfach mal "drauf los programmierst "und versuchst damit eine einfache seite zu basteln. ich programmiert ich seit fast 4 jahren hauptberuflich php und muss gestehen, dass ich auch nicht alle php funktionen auswendig kenne.

angefangen hab ich mit einem kleinen buch das beschreibt wie man eine php apache und mysql umgebung einrichtet und nach und nach beispiele wie gästebuch, kontaktformulare aus dem buch nachgebaut hab. mit ein bisschen übung geht das mit der zeit von allein....

falls ich irgend eine frage habe wie man was am besten umsetzt findet man in der regel gute infos bei google ;)

wenn du fragen hast kannst dich ja gerne melden

...zur Antwort

hallo, schau doch mal bei affili.net oder tradedoubler.de vorbei. hier kannst dich registrieren und dich für partnerprogramme anmelden. hier hast eine große auswahl an programmen, welche du nach zielgruppen auswählen kannst, was die chancen einen klick auf ein banner zu bekommen erhöht. die meisten anbieter bieten dort allerdings erst eine vergütung nachdem ein user, den du quasi geworben hast, beim partner etwas kauft oder sich registriert. an dem umsatz durch den kauf wirst du bei manchen anbietern entweder pauschal oder prozentual beteiligt.

alternativ gibt es noch die möglichkeit pro bannereinblendung geld zu verdienen (http://eval-php.net/glossar/tkp-tausender-kontakt-preis). openinvetory.de ist zum beispiel einer dieser anbieter.

...zur Antwort

nimm den brief und wirf ihn weg. bloss nicht zahlen.

die webseite gehört zum inventar des frankfurter kreisels (google mal danach und auch nach michael burat). sind bekannte abo abzocker.

da wirst nie was von irgend einem anwalt hören. die schicken erstmal mahnungen und hoffen dich damit einschüchtern zu können. viele leute zahlen da einfach. ist für die ein lohnendes geschäft.

http://www.abzocknews.de/2010/05/01/wdr-markt-die-internetabzocke-„top-of-software-de-der-antassia-gmbh-video/

...zur Antwort

Hallo,

check am besten nochmal ob auch alle Karten richtig in ihrem Steckplatz drin sind. hatte das problem auch schonmal, dass rechner nicht mehr an ging nach transport. grafikkarte war danach nicht mehr richtig im steckplatz drinne :)

...zur Antwort

lösche mal den cache deines browsers. hört sich so an als könne da eine css-datei der webseite nicht geladen werden. sollte nach dem löschen wieder gehen. der browser legt manche dateien im zwischenspeicher ab. wenn da irgendwas nicht mehr passt kann es sein, dass die webseite zerschossen wird. durch das löschen des caches zwingst den browser dazu, die dateien neu zu laden.

...zur Antwort

Hallo,

normalerweise kannst du auch ohne feste IP Nummer auf deinen Anschluss zugreifen. Mit Hilfe von dyndns.com oder ähnlichen Services kann man viele DSL-Router so einstellen, dass man seinen eigenen DSL-Anschluss über eine feste URL erreichen kann. (Hier ist eine kurze Erklärung was DynDNS ist: http://eval-php.net/glossar/dyndns).

Über diese URL solltest Du dann theoretisch auf deine Webcams zugreifen können. Dazu musst du aber deinen Router entsprechend einrichten, dass dieser beim Aufruf der Url auf deine Webcams umleitet.

...zur Antwort

Hallo,

ist bei den Bildern die indiziert werden sollen der alt-Text gesetzt. Falls du eine robots.txt vewendest, solltest da nachschauen ob du vielleicht bei diesem Projekt den Ordner für die Indizierung ausschliesst.

...zur Antwort

Hallo,

in der Webentwicklung gibt es ein so Tool wie du beschrieben hast, mit welchem man ne Webseite testen kann, indem man z.B. Formulare etc automatisch ausfüllen lassen oder auf das Vorhandensein bestimmter Buttons oder Links prüfen kann.

Das Tool findet man unter http://seleniumhq.org/. Gibts auch als FireFox Plugin.

Allerdings hab ich das Teil noch nie selbst verwendet.

...zur Antwort

Hallo,

versuch mal dein Windows im abgesicherten Modus zu starten. Vielleicht gehst dann. Eventuell liegts auch daran, dass ein anderes Programm die Datei gerade darauf zugreift und die Datei blockiert. Das hatte ich zum Beispielt mal mit der hosts Datei bei XP. Die kann man eigetnlich immer editieren, aber ein installiertes Anti-Virusprogramm das automatisch bei Systemstart startet hat diese schreibgeschützt. Also am besten man im abgesicherten Modus versuchen ;)

...zur Antwort

Hallo,

hier steht glaube ich die Antwort für deine Frage.

http://www.rechtsrat.ws/lexikon/mietkaution.htm

Der Mieter muss nur dann eine Kaution bezahlen, wenn dies im Mietvertrag (oder in einem Zusatz zum Mietvertrag) vereinbart ist.

Die Kaution darf höchstens 3 Monatsmieten betragen. Zahlungen auf Nebenkosten sind dabei nicht mitzurechnen. Eine höhere Kaution kann nicht vereinbart werden.

Der Mieter ist berechtigt, die Kaution in 3 Monatsraten zu bezahlen.
Die erste Rate ist zu Beginn des Mietverhältnisses fällig. Eine abweichende Vereinbarung, nach der die gesamte Kaution sofort zu bezahlen ist, ist unwirksam. Umstritten ist, ob dann die gesamte Kautionsvereinbarung unwirksam ist oder nur die Fälligkeitvereinbarung.

...zur Antwort